簡體   English   中英

如何在TYPO3中的extbase(不是Fluid)中獲得翻譯的FAL圖像?

[英]How to get translated FAL image in extbase (not in Fluid) in TYPO3?

我試圖在extbase中獲得翻譯的FAL圖像,但它給了我默認語言FAL圖像。

我使用的是TYPO3 7.6.16。 它是一個多語言的網站。 我創建了2種網站語言1)英語,2)西班牙語,默認的是荷蘭語。

目前我從存儲庫中獲取數據,它為我提供了在翻譯版本和原始版本的記錄中具有相同FAL圖像的模型。

如何使用extbase(不在Fluid中)獲取翻譯的FAL圖像,因為我想將其返回給JSON響應?

這是代碼:

控制器:

$posts = $this->postRepository->findByLanguage($langId);

foreach($posts as $post) {
    $output[] = [
        'uid' => $post->getUid(),
        'title' => $post->getTitle(),
        'image' => $post->getImage()->getOriginalResource()->getOriginalFile()->getPublicUrl()
    ];
}

header('Content-Type: application/json');
echo json_encode($output);
exit();

這里我得到默認語言FAL圖像而不是本地化在線$post->getImage()->getOriginalResource()->getOriginalFile()->getPublicUrl()

庫:

/**
 * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface
 */
public function findByLanguage($langId, $postId = 0)
{
    $query = $this->createQuery();
    $query->getQuerySettings()->setRespectStoragePage(FALSE);
    $query->getQuerySettings()->setRespectSysLanguage(TRUE);
    $query->getQuerySettings()->setLanguageUid($langId); 
    if ($postId) {
        $query->matching(
            $query->equals('uid' , $postId)
        );
        return $query->execute()->getFirst();
    }
    return $query->execute();
}

模型:

/**
 * title
 *
 * @var string
 */
protected $title;

/**
 * image
 *
 * @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
 */
protected $image = null;

/**
 * @return bool $title
 */
public function getTitle() {
    return $this->title;
}

/**
 * @param string $title
 * @return void
 */
public function setTitle($title) {
    $this->title = $title;
}

/**
 * @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $image
 */
public function getImage() {
    return $this->image;
}

/**
 * @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image
 * @return void
 */
public function setImage(\TYPO3\CMS\Extbase\Domain\Model\FileReference $image) {
    $this->image = $image;
}

有一個錯誤,翻譯(復制翻譯)內容的FAL記錄(sys_file_reference)沒有得到翻譯的語言ID。 我為此做了一個錯誤修正: https//github.com/BenjaminBeck/bdm_bugfix_translatecopy - 也許這就是你的問題?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM