Модуль locale. Прячем активный язык.

Главные вкладки

Аватар пользователя ichiro-Okada ichiro-Okada 16 октября 2009 в 19:40

Встала задача спрятать текущий язык в блоке выбора языков.
D6.
За основу взят материалл отсюда http://www.drupal.ru/node/15870.

Не судите строго, первый оппыт.

Итак, редактируем файл modules/translation/translation.module

Заменил родную функцию locale_block на следующие две:

<?php
function locale_block($op 'list'$delta 0) {
  if (
$op == 'list') {
    
$block[0]['info'] = t('Language switcher');
    
// Not worth caching.
    
$block[0]['cache'] = BLOCK_NO_CACHE;
    return 
$block;
  }
 
  
// Only show if we have at least two languages and language dependent
  // web addresses, so we can actually link to other language versions.
  
elseif ($op == 'view' && variable_get('language_count'1) > && variable_get('language_negotiation'LANGUAGE_NEGOTIATION_NONE) != LANGUAGE_NEGOTIATION_NONE) {
    
$languages language_list('enabled');
    foreach (
$languages[1] as $language) {
      
$links[$language->language] = array(
        
'href'       => $_GET['q'],
        
'title'      => $language->native,
        
'language'   => $language,
        
'attributes' => array('class' => 'language-link'),
      );
    }

    

drupal_alter('translation_link'$links$_GET['q']);
 
    
$block['subject'] = t('Languages');
    
$links locale_block_form($links);
    
$block['content'] = theme('links'$links, array());
    return 
$block;
  }
}

function 

locale_block_form($options){
  global 
$language;
  unset(
$options[$language->language]);
  return 
$options;
}
?>

и уоля.

Теперь в блоке выбора языка только ссылка на неактивный язык.

Комментарии

Аватар пользователя finder@drupal.org finder@drupal.org 18 октября 2009 в 2:09

Котёнка не жалко? Маленький он ведь, а из-за Вас погибнет.
По делу: присвойте класс с аббревиатурой языка тегу body и скрывайте ссылку на активный язык (у неё такой же класс) через css. Вот и всё, хачить уже ничего не надо.

Аватар пользователя glu2006 glu2006 17 октября 2009 в 8:54

Хак - ЗЛО!!!!!
Скрывайть или через CSS или попробовать через hook_form_alter.

Плюс если уж пишите о хаках то хотя-бы модуль потрудитесь назвать правильно файл locale.module, а то начинающие потом покроются пока найдут в translation.module функцию которую менять надо.