0

CType='image'でtt_contentから生成されたすべてのオブジェクトのリストを必要とするExtbaseバックエンドモジュールを作成したいと思います。

今、私は単純なモデルを定義し始めました

class Tx_Myextension_Domain_Model_Content extends Tx_Extbase_DomainObject_AbstractEntity
{

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

    /**
     * @return the $header
     */
    public function getHeader()
    {
        return $this->header;
    }

    /**
     * @param string $header
     */
    public function setHeader($header)
    {
        $this->header = $header;
    }

}

およびリポジトリ

class Tx_Myextension_Domain_Repository_ContentRepository extends Tx_Extbase_Persistence_Repository
{

    public function initializeObject()
    {
        $querySettings = $this->objectManager->create('Tx_Extbase_Persistence_Typo3QuerySettings');
        $querySettings->setRespectStoragePage(FALSE);
        $this->setDefaultQuerySettings($querySettings);
    }
}

私の知る限り、initializeObjectメソッドは、どのpidを使用しているかに関係なく、すべてのコンテンツ要素を取得する方法です。

最後に、コンテンツクラスをtt_contentにマップしようとしました。

plugin.tx_myextension {
  persistence {
    classes {
      Tx_Myextension_Domain_Model_Content {
        mapping {
          tableName = tt_content
          recordType = Tx_Myextension_Domain_Model_Content
          columns {
            header.mapOnProperty = header
          }
        }
      }
    }
  }
}

module.tx_myextension {
    persistence < plugin.tx_myextension.persistence
}

いいえ、レポを使いたいです。例:countAll。残念ながら、常に0を返します。MySQLクエリを探すと、問題が見つかります。

SELECT COUNT(*) 
FROM tt_content  
WHERE (tt_content.CType='Tx_Myextension_Domain_Model_Content') 
  AND tt_content.deleted=0 AND tt_content.hidden=0 
  AND (tt_content.starttime<=1313073660) 
  AND (tt_content.endtime=0 OR tt_content.endtime>1313073660) 
  AND tt_content.sys_language_uid IN (0,-1) 
  AND tt_content.pid IN (0)

Typo 3またはExtbaseまたは何か別のものが、これらすべてのwhere句をクエリに追加しました。CType句とpid句を削除したいだけです。私が言ったように、私はレポで使用されている方法がpidを無視することにつながると思いましたが、明らかにそうではありません。

誰かが私を助けることができますか?私が欲しいのは、画像コンテンツ要素の配列です。前もって感謝します。

4

2 に答える 2

1

遅い答え:あなたはおそらく電話したいと思うでしょう

query->getQuerySettings()
    ->setRespectEnableFields(FALSE)
    ->setRespectSysLanguage(FALSE);

あなたの質問のために。リポジトリのinitializeObjectメソッド内のすべてのクエリに対して無効にすることができます。

$querySettings = $this->objectManager->create('Tx_Extbase_Persistence_Typo3QuerySettings');
$querySettings
    ->setRespectStoragePage(FALSE)
    ->setRespectEnableFields(FALSE)
    ->setRespectSysLanguage(FALSE);
$this->setDefaultQuerySettings($querySettings);

参照:TYPO3APIドキュメント

于 2012-09-16T11:31:10.973 に答える
0

永続性定義からノード「recordType」を削除してみてください。

于 2011-09-24T10:58:20.473 に答える