Омека: Получить все предметы в контроллере

Я пишу Плагин Omeka и хочу получить список всех открытых Предметов со всеми их элементами в контроллере под моим плагином.

я пробовал get_items () но функция не существует, похоже, что функция доступна только для представлений — не знаю, как.

другой попыткой было вручную извлечь записи из базы данных, но это не стандартный способ.

Итак, вопрос в том, есть ли предопределенная функция / класс или способ получить все элементы в контроллере?

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);
}

Для элемента есть свойство public, которое сообщает вам, является ли оно открытым. Для того, чтобы получить текст элемента для элемента, я думаю, вам нужно сделать запрос на ElementText Таблица.

Для получения дополнительной информации, см. Omeka, прочитайте страницу документации для Table_Item, Omeka_Db_Table а также Item:

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]