Встала задача спрятать текущий язык в блоке выбора языков.
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) > 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;
}?>
и уоля.
Теперь в блоке выбора языка только ссылка на неактивный язык.
Комментарии
Котёнка не жалко? Маленький он ведь, а из-за Вас погибнет.
По делу: присвойте класс с аббревиатурой языка тегу body и скрывайте ссылку на активный язык (у неё такой же класс) через css. Вот и всё, хачить уже ничего не надо.
Хак - ЗЛО!!!!!
Скрывайть или через CSS или попробовать через hook_form_alter.
Плюс если уж пишите о хаках то хотя-бы модуль потрудитесь назвать правильно файл locale.module, а то начинающие потом покроются пока найдут в translation.module функцию которую менять надо.