diff --git a/media_gallery.info b/media_gallery.info index 59eb78a..96211e7 100644 --- a/media_gallery.info +++ b/media_gallery.info @@ -8,6 +8,7 @@ dependencies[] = number dependencies[] = media (>=2.x) dependencies[] = taxonomy dependencies[] = multiform +dependencies[] = page_manager files[] = media_gallery.module files[] = media_gallery.admin.inc diff --git a/media_gallery.install b/media_gallery.install index 4d468fc..7135ef0 100644 --- a/media_gallery.install +++ b/media_gallery.install @@ -139,6 +139,15 @@ function media_gallery_requirements() { ); } } + + if (variable_get('page_manager_term_view_disabled', TRUE)) { + $requirements['page_manager_term_view_disabled'] = array( + 'title' => $t('Media gallery'), + 'description' => $t('Term view task must be enabled in Page Manager.', array('@href' => url('admin/structure/pages/nojs/operation/term_view/actions/enable', array('query' => drupal_get_destination())))), + 'severity' => REQUIREMENT_ERROR, + ); + } + return $requirements; } diff --git a/media_gallery.module b/media_gallery.module index 0ec5541..4f0b35d 100644 --- a/media_gallery.module +++ b/media_gallery.module @@ -183,12 +183,6 @@ function media_gallery_mg_item_load($fid, $nid) { * Implements hook_menu_alter(). */ function media_gallery_menu_alter(&$items) { - // Take over taxonomy term list pages by substituting our own callback. - // TODO: Use hook_entity_info_alter() to change the entity uri callback for - // gallery collections only. - $items['taxonomy/term/%taxonomy_term']['page callback'] = 'media_gallery_list_galleries'; - $items['taxonomy/term/%taxonomy_term']['file'] = 'media_gallery.pages.inc'; - $items['taxonomy/term/%taxonomy_term']['module'] = 'media_gallery'; // If you're viewing a media item in context somewhere (which we do inside // media gallery nodes), that means it's being used on your site, which means @@ -1781,6 +1775,18 @@ function media_gallery_ctools_plugin_api($owner, $api) { } /** + * Implements hook_page_manager_override(). + */ +function media_gallery_page_manager_override($task) { + if ($task == 'term_view') { + if (($term = menu_get_object('taxonomy_term', 2)) && isset($term->vid) && $term->vid == variable_get('media_gallery_collection_vid')) { + module_load_include('inc', 'media_gallery', 'media_gallery.pages'); + return 'media_gallery_list_galleries'; + } + } +} + +/** * Implements hook_file_default_displays(). * * Provides default display configurations for files displayed in gallery view diff --git a/media_gallery.pages.inc b/media_gallery.pages.inc index a56928f..61bb316 100644 --- a/media_gallery.pages.inc +++ b/media_gallery.pages.inc @@ -11,11 +11,6 @@ * TODO: When I grow up I want to be a View. */ function media_gallery_list_galleries($term) { - $collections_vid = variable_get('media_gallery_collection_vid', 0); - if ($term->vid !== $collections_vid) { - module_load_include('inc', 'taxonomy', 'taxonomy.pages'); - return taxonomy_term_page($term); - } // Add front-end resources for drag-and-drop sorting. if (user_access('administer media galleries')) {