diff --git a/functions.php b/functions.php index 309d9b7b..2aecb46c 100644 --- a/functions.php +++ b/functions.php @@ -605,6 +605,22 @@ function exhibit_builder_search_record_types($recordTypes) return $recordTypes; } +/** + * Show the Exhibits that each item is included in on the Item Browse page + * + * @param array $args An array of parameters passed by the hook + * @return void + */ +function exhibit_builder_item_detail($args) +{ + $item = $args['item']; + $exhibits = get_db()->getTable('Exhibit')->findByItem($item->id); + foreach($exhibits as $exhibit) + echo('
Appears in Exhibit: '.$exhibit['title'].'
'); +} + /** * Add exhibit title to item search filters. */ diff --git a/models/Table/Exhibit.php b/models/Table/Exhibit.php index 3de0333e..11e8a2fa 100644 --- a/models/Table/Exhibit.php +++ b/models/Table/Exhibit.php @@ -120,6 +120,30 @@ public function findBySlug($slug) return $this->fetchObject($select, array($slug)); } + /** + * Find all exhibits containing an item. + * + * @param string $slug + */ + public function findByItem($item_id) + { + if(is_object($item_id)) + $item_id = $item_id->id; + $db=$this->getDb(); + $select = $this->getSelect() + ->join(array('ep' => $db->ExhibitPage), + '`exhibits`.id = ep.exhibit_id', + array()) + ->join(array('epb' => $db->ExhibitPageBlock), + 'ep.id = epb.page_id', + array()) + ->join(array('eba' => $db->ExhibitBlockAttachment), + 'epb.id = eba.block_id', + array()) + ->where('eba.item_id = ?'); + return $this->fetchObjects($select,array($item_id)); + } + /** * Find whether an exhibit has a specific item. * diff --git a/plugin.ini b/plugin.ini index 038ead05..c2bfde82 100644 --- a/plugin.ini +++ b/plugin.ini @@ -7,5 +7,5 @@ link="http://omeka.org/codex/Plugins/ExhibitBuilder_3.0" support_link="http://omeka.org/forums/forum/plugins" omeka_minimum_version="2.3" omeka_target_version="2.3" -version="3.2.1" +version="3.2.2" tags="exhibit, pages, presentation" diff --git a/plugin.php b/plugin.php index 1a9db50e..a1443360 100644 --- a/plugin.php +++ b/plugin.php @@ -23,6 +23,7 @@ add_plugin_hook('admin_items_search', 'exhibit_builder_items_search'); add_plugin_hook('public_items_search', 'exhibit_builder_items_search'); add_plugin_hook('html_purifier_form_submission', 'exhibit_builder_purify_html'); +add_plugin_hook('admin_items_browse_detailed_each', 'exhibit_builder_item_detail'); add_filter('public_navigation_main', 'exhibit_builder_public_main_nav'); add_filter('admin_navigation_main', 'exhibit_builder_admin_nav');