diff --git a/menu_trail_by_path.admin.inc b/menu_trail_by_path.admin.inc index fbd5c8c..d9ef678 100644 --- a/menu_trail_by_path.admin.inc +++ b/menu_trail_by_path.admin.inc @@ -25,6 +25,12 @@ function menu_trail_by_path_form($form, &$form_state) { '#description' => t("If checked, menu-trail handling will also be active on ajax requests."), '#default_value' => MenutrailbypathConfig::get('menu_trail_active_on_ajax_requests'), ); + $form['menu_trail_by_path_menu_trail']['menu_trail_by_path_menu_trail_show_hidden'] = array( + '#type' => 'checkbox', + '#title' => t('Include disabled menu links'), + '#description' => t("If checked, menu-trail handling will include menu links that are disabled. Otherwise these will be ignored."), + '#default_value' => MenutrailbypathConfig::get('menu_trail_show_hidden'), + ); // Breadcrumb $form['menu_trail_by_path_breadcrumb'] = array( diff --git a/src/MenutrailbypathConfig.inc b/src/MenutrailbypathConfig.inc index 5c2cc98..f6ffdfa 100644 --- a/src/MenutrailbypathConfig.inc +++ b/src/MenutrailbypathConfig.inc @@ -11,6 +11,9 @@ class MenutrailbypathConfig { case 'menu_trail_active_on_ajax_requests': return variable_get(self::PREFIX . $variable, FALSE); break; + case 'menu_trail_show_hidden': + return variable_get(self::PREFIX . $variable, FALSE); + break; case 'breadcrumb_handling': return variable_get(self::PREFIX . $variable, TRUE); break; diff --git a/src/MenutrailbypathMenuHelper.inc b/src/MenutrailbypathMenuHelper.inc index d2d3b6d..2f64e45 100644 --- a/src/MenutrailbypathMenuHelper.inc +++ b/src/MenutrailbypathMenuHelper.inc @@ -26,11 +26,13 @@ class MenutrailbypathMenuHelper { $query = db_select('menu_links', 'ml') ->fields('ml') ->condition('link_path', $link_paths, 'IN') - ->condition('hidden', 0) // Only consider normal, visible menu links. ->orderBy('depth') ->orderBy('weight') ->orderBy('mlid'); + if (!MenutrailbypathConfig::get('menu_trail_show_hidden')) { + $query->condition('hidden', 0); // only consider normal, visible menu links. + } if (module_exists('i18n_menu')) { $query->condition('language', array(LANGUAGE_NONE, $this->language->language), 'IN'); } @@ -48,11 +50,13 @@ class MenutrailbypathMenuHelper { $query = db_select('menu_links', 'ml') ->fields('ml') ->condition('menu_name', $menu_name, '=') // Do not touch admin menu. - ->condition('hidden', 0) // Only consider normal, visible menu links. ->orderBy('depth') ->orderBy('weight') ->orderBy('mlid'); + if (!MenutrailbypathConfig::get('menu_trail_show_hidden')) { + $query->condition('hidden', 0); // only consider normal, visible menu links. + } if (module_exists('i18n_menu')) { $query->condition('language', array(LANGUAGE_NONE, $this->language->language), 'IN'); }