All pastes #2102643 Raw Edit

Mine

public diff v1 · immutable
#2102643 ·published 2012-01-12 14:37 UTC
rendered paste body
Index: menu_breadcrumb.module===================================================================--- menu_breadcrumb.module	(revision 403)+++ menu_breadcrumb.module	(working copy)@@ -300,13 +300,17 @@  * Set the active menu according to the current path.  */ function menu_breadcrumb_init() {+  global $language;+  $menu_lang_check = variable_get('menu_breadcrumb_determine_menu_language', 0);   if (variable_get('menu_breadcrumb_determine_menu', 1)) {     // Find the set of menus containing a link for the current page.     $menu_item = menu_get_item();-    $result = db_query("SELECT mlid, menu_name FROM {menu_links} WHERE link_path = '%s'", $menu_item['href']);-    $menu_link_menus = array();+    $result = db_query("SELECT mlid, menu_name, options FROM {menu_links} WHERE link_path = '%s'", $menu_item['href']);+    $menu_link_menus = $menu_link_options = array();     while ($menu_link = db_fetch_array($result)) {+      $temp_options = unserialize($menu_link['options']);       $menu_link_menus[$menu_link['menu_name']] = TRUE;+      $menu_link_options[$menu_link['menu_name']] = $temp_options['langcode'];     }      // Choose the highest-priority 'Enabled' menu.@@ -318,7 +322,15 @@       if ($is_pattern) {         // Look for each of the $menu_link_menus in the pattern match cache.         foreach (array_keys($menu_link_menus) as $menu_link_menu_name) {-          if (array_key_exists($menu_link_menu_name, $match_cache)+          if ($menu_lang_check+              && array_key_exists($menu_link_menu_name, $match_cache)+              && $match_cache[$menu_link_menu_name] == $menu_name+              && $menu_link_options[$menu_link_menu_name] == $language->language) {+            menu_set_active_menu_name($menu_link_menu_name);+            break 2;+          }+          else if (!$menu_lang_check+              && array_key_exists($menu_link_menu_name, $match_cache)               && $match_cache[$menu_link_menu_name] == $menu_name) {             menu_set_active_menu_name($menu_link_menu_name);             break 2;@@ -326,10 +338,17 @@         }       }       else {-        if (array_key_exists($menu_name, $menu_link_menus)) {+        if ($menu_lang_check+            && array_key_exists($menu_name, $menu_link_menus)+            && $menu_link_options[$menu_name] == $language->language) {           menu_set_active_menu_name($menu_name);           break;         }+        else if (!$menu_lang_check &&+                 array_key_exists($menu_name, $menu_link_menus)) {+          menu_set_active_menu_name($menu_name);+          break;+        }       }     }   }@@ -360,13 +379,26 @@  *   The settings form used by Menu breadcrumb.  */ function menu_breadcrumb_admin_settings_form() {-  $form['menu_breadcrumb_determine_menu'] = array(+  $form['menu_breadcrumb_determine_menu_fset'] = array(+    '#type' => 'fieldset',+  );++  $form['menu_breadcrumb_determine_menu_fset']['menu_breadcrumb_determine_menu'] = array(     '#type' => 'checkbox',     '#title' => t('Use menu the page belongs to for the breadcrumb.'),     '#description' => t('By default, Drupal 6 will use the Navigation menu for the breadcrumb. If you want to use the menu the active page belongs to for the breadcrumb, enable this option.'),     '#default_value' => variable_get('menu_breadcrumb_determine_menu', 1),   ); +  $form['menu_breadcrumb_determine_menu_fset']['menu_breadcrumb_determine_menu_language'] = array(+    '#type' => 'checkbox',+    '#title' => t('Also take current language into account when determening the menu item.'),+    '#description' => t('If you use a separate menu for each language, and you have activated the +	<strong>Menu translation</strong> of <strong>i18n</strong> you can take the menu language into account. <strong>Each menu item must have a language set.</strong>'),+    '#default_value' => variable_get('menu_breadcrumb_determine_menu_language', 0),+    '#disabled' => !module_exists('i18nmenu'),+  );+     $form['menu_breadcrumb_append_node_title'] = array(     '#type' => 'checkbox',     '#title' => t('Append page title to breadcrumb'),