2016-03-31 1 views
0

私が書いたTypo3拡張機能に問題があります。私は異なるデザインと機能を持つページに製品を示します。設計と機能に関して、私はm:m関係表を作成しました。 製品オブジェクトにはfindByUid()がキャッチされています。すべてデフォルトの言語でうまく動作します。製品情報、デザイン、機能はすべてフロントエンドに正しく表示されます。 しかし、ローカライズされた製品オブジェクトを選択すると、デフォルト言語のデザインと機能がフロントエンドに表示されます。 説明が少し複雑です。バックエンドでは、製品オブジェクトを作成し、それに応じてローカライズされたデザインと機能を選択します。それもうまく動作します。 しかしフロントエンドでは、デザインと機能はデフォルトの言語オブジェクトから表示されますが、翻訳されます。他のすべての情報は正しいです。Extbase:l10n_parentを使用すると、findByUidが間違ったオブジェクトになる

ローカライズされた製品オブジェクトにl10n_parentを選択した場合にのみ問題が発生します。 l10n_parentが設定されていない場合は、フロントエンドですべての機能とデザインが正しいです。

私も試してみました:何も変更しませんでした

public function initializeObject() { 
    /** @var $querySettings \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings */ 
    $querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings'); 
    $querySettings->setRespectSysLanguage(FALSE); 
    $this->setDefaultQuerySettings($querySettings); 
} 

を。

EDIT: https://forge.typo3.org/issues/47192 私が原因PHP 7のサポートにLTS 8にアップグレードすることはできませんように、非常に良いではありません。 これは未確定バグである可能性があります。 l10n_parentがなければ、私の製品オブジェクトのバックエンドは完全にソートされておらず、管理が非常に複雑です。

答えて

0

基本的に、デフォルト言語でレコードのuidを使用し、指定された言語に基づいてオーバーレイを行うことができます

関連する問題