- Add CSS class to body tag based on language, by Garrett Albright, #661448
authorJose Reyero
Thu, 4 Mar 2010 12:38:46 +0000 (12:38 +0000)
committerJose Reyero
Thu, 4 Mar 2010 12:38:46 +0000 (12:38 +0000)
- Added compatibility with ctools page manager, by Kars-T, #698942
- Added support for taxonomy_override_selector, by hefox, #619726

i18n.module
i18ntaxonomy/i18ntaxonomy.module

index a331ba1..d6bdebd 100644 (file)
@@ -487,6 +487,20 @@ function i18n_db_rewrite_where($alias, $type, $mode = NULL) {
 }
 
 /**
+ * Implementation of hook_preprocess_page().
+ *
+ * Add the language code to the classes for the <body> tag. Unfortunately, some
+ * themes will not respect the variable we're modifying to achieve this - in
+ * particular, Garland and Minelli do not.
+ */
+function i18n_preprocess_page(&$variables) {
+  if (isset($variables['body_classes'])) {
+    global $language;
+    $variables['body_classes'] .= ' i18n-' . $language->language;
+  }
+}
+
+/**
  * Implementation of hook_exit().
  */
 function i18n_exit() {
index 32915ea..2ad2f00 100644 (file)
@@ -101,10 +101,13 @@ function i18ntaxonomy_menu() {
  * Take over the taxonomy pages
  */
 function i18ntaxonomy_menu_alter(&$items) {
-  // Taxonomy term page. Localize terms.
-  $items['taxonomy/term/%']['module'] = 'i18ntaxonomy';
-  $items['taxonomy/term/%']['page callback'] = 'i18ntaxonomy_term_page';
-  $items['taxonomy/term/%']['file'] = 'i18ntaxonomy.pages.inc';
+  // If ctool's page manager is active for the path skip this modules override.
+  if (variable_get('page_manager_term_view_disabled', TRUE)) {
+    // Taxonomy term page. Localize terms.
+    $items['taxonomy/term/%']['module'] = 'i18ntaxonomy';
+    $items['taxonomy/term/%']['page callback'] = 'i18ntaxonomy_term_page';
+    $items['taxonomy/term/%']['file'] = 'i18ntaxonomy.pages.inc';
+  }
 
   // Localize autocomplete
   $items['taxonomy/autocomplete']['module'] = 'i18ntaxonomy';
@@ -431,7 +434,7 @@ function i18ntaxonomy_form_alter(&$form, $form_state, $form_id) {
       break;
     default:
       if (isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id
-        && ($node = $form['#node']) && isset($form['taxonomy']) ) {
+        && ($node = $form['#node']) && isset($form['taxonomy']) && !variable_get('taxonomy_override_selector', FALSE)) {
         // Node form. Translate vocabularies.
         i18ntaxonomy_node_form($form);
       }