2016-04-19 13 views
0

Omekaプラグインを作成していて、すべてのパブリックアイテムのリストをすべての要素とともに、プラグインの下のコントローラで取得したいと考えています。Omeka:コントローラ内のすべてのアイテムを取得

私はget_items()を試しましたが、機能が存在しません。機能はビューにのみ使用可能です。

もう1つの試みはデータベースからレコードを手動で取得することでしたが、これは標準的な方法ではありません。

質問には、あらかじめ定義された関数/クラスやコントローラ内のすべてのアイテムを取得する方法がありますか?

答えて

0

すべての要素テキストとともにアイテムを取得する関数があるかどうかはわかりませんが、コントローラ内にアイテムのリストが必要な場合は、次のような呼び出しを行うことができます。

$items = $this->_helper->db->getTable('Item')->findAll(); 

Omekaのドキュメントは、メモリーを大量に消費する可能性があるため、すべてのアイテムを一度に取得することを警告しています。つまり、項目をループすることができます。

$items = $this->_helper->db->getTable('Item'); 
$item = $items->findFirst(); 
while($item != NULL){ 
    // Do something 
    $item = $items->findNext($item); 
} 

アイテムには公開されているかどうかを示す「公開」プロパティがあります。アイテムの要素テキストを取得するには、ElementTextテーブルでクエリを作成する必要があると思います。詳細については

、OmekaはTable_ItemOmeka_Db_TableItemのためのドキュメントのページを読んで参照してください。

http://omeka.readthedocs.io/en/latest/Reference/libraries/Omeka/Db/Table.html http://omeka.readthedocs.io/en/latest/Reference/models/Table/Item.html http://omeka.readthedocs.io/en/latest/Reference/models/Item.html

関連する問題