You are here

function faqpanels_faq_term_menu_alter in Panels Extras 7

Same name and namespace in other branches
  1. 6 faqpanels/plugins/tasks/faq_term.inc \faqpanels_faq_term_menu_alter()

Callback defined by faqpanels_faq_term_page_manager_tasks().

Alter the FAQ page with terms so that the FAQ page comes to us rather than the normal FAQ process. Menus to be altered are only the list faq display (faq-page,faq-page/%,faq-page/%/list,faq-page/list).

1 string reference to 'faqpanels_faq_term_menu_alter'
faqpanels_faq_term_page_manager_tasks in faqpanels/plugins/tasks/faq_term.inc
Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for more information.

File

faqpanels/plugins/tasks/faq_term.inc, line 45
Provides additional page manager tasks FAQ page for panels use

Code

function faqpanels_faq_term_menu_alter(&$items, $task) {
  if (variable_get('faqpanels_faq_term_disabled', TRUE)) {
    return;
  }
  $callback = $items['faq-page']['page callback'];

  // Override the faq term handler for our purpose.
  if ($callback == 'faq_page' || variable_get('page_manager_override_anyway', FALSE)) {
    $items['faq-page']['page callback'] = 'faqpanels_faq_term';
    $items['faq-page']['file path'] = $task['path'];
    $items['faq-page']['file'] = $task['file'];
  }
  else {
    variable_set('faqpanels_faq_term_disabled', TRUE);
    if (!empty($GLOBALS['faqpanels_enabling_faq_term'])) {
      drupal_set_message(t('Page manager module is unable to enable faq because some other module already has overridden with %callback.', array(
        '%callback' => $callback,
      )), 'warning');
    }
  }
  $callback = $items['faq-page/%']['page callback'];

  // Override the faq term handler for our purpose.
  if ($callback == 'faq_page' || variable_get('page_manager_override_anyway', FALSE)) {
    $items['faq-page/%']['page callback'] = 'faqpanels_faq_term';
    $items['faq-page/%']['file path'] = $task['path'];
    $items['faq-page/%']['file'] = $task['file'];
  }
  else {
    variable_set('faqpanels_faq_term_disabled', TRUE);
    if (!empty($GLOBALS['faqpanels_enabling_faq_term'])) {
      drupal_set_message(t('Page manager module is unable to enable faq-page/%tid/%faq_display because some other module already has overridden with %callback.', array(
        '%callback' => $callback,
      )), 'warning');
    }
  }
  $callback = $items['faq-page/%/list']['page callback'];

  // Override the faq term handler for our purpose.
  if ($callback == 'faq_page' || variable_get('page_manager_override_anyway', FALSE)) {
    $items['faq-page/%/list']['page callback'] = 'faqpanels_faq_term';
    $items['faq-page/%/list']['file path'] = $task['path'];
    $items['faq-page/%/list']['file'] = $task['file'];
  }
  else {
    variable_set('faqpanels_faq_term_disabled', TRUE);
    if (!empty($GLOBALS['faqpanels_enabling_faq_term'])) {
      drupal_set_message(t('Page manager module is unable to enable faq-page/%tid/%faq_display because some other module already has overridden with %callback.', array(
        '%callback' => $callback,
      )), 'warning');
    }
  }
  $callback = $items['faq-page/list']['page callback'];

  // Override the faq term handler for our purpose.
  if ($callback == 'faq_page' || variable_get('page_manager_override_anyway', FALSE)) {
    $items['faq-page/list']['page callback'] = 'faqpanels_faq_term';
    $items['faq-page/list']['file path'] = $task['path'];
    $items['faq-page/list']['file'] = $task['file'];
  }
  else {
    variable_set('faqpanels_faq_term_disabled', TRUE);
    if (!empty($GLOBALS['faqpanels_enabling_faq_term'])) {
      drupal_set_message(t('Page manager module is unable to enable faq-page/%tid/%faq_display because some other module already has overridden with %callback.', array(
        '%callback' => $callback,
      )), 'warning');
    }
  }
  return;
}