ЧТОБЫ ПЕРЕКЛЮЧАТЕЛЬ ТЕКУЩЕГО ЯЗЫКА ИСЧЕЗАЛ

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

Комментарии

Аватар пользователя temerazev temerazev 30 ноября 2011 в 8:06

Есть ли сниппет для 6ки? Нашел от 5ки, но в 6ке не работает ;-(

<?php<?
//get i18n module vars info
$query = drupal_query_string_encode($_GET, array('q'));
$lang = translation_get_links($_GET['q'], empty($query) ? NULL : $query);
$current_lang = i18n_get_lang(); // currently used language
$active_lang = i18n_languages('active'); // array with all active languages

// Find the name of the currently chosen language
$active_lang_name = $active_lang[$current_lang];
// Get rid of the array keys because we want the keys to be numeris as keys in $lang
$active_lang_values = array_values($active_lang);
// Find the key for the currently chosen language.
$find_key = array_search($active_lang_name,$active_lang_values);

foreach($lang as $key=>$value) {
    // As long as the find_key is different from the key, display the value (link to that language)
    if ($key <> $find_key) {
print $value;
    }
}
?>

Аватар пользователя neltharian neltharian 30 ноября 2011 в 15:58

"Lotar" wrote:
 Чтобыпереключательисчезал

а можно нормальным юзерам не юморить? я еще понимаю прикаливатся с такого вот ТС

Аватар пользователя temerazev temerazev 30 ноября 2011 в 18:16

"neltharian" wrote:
а можно нормальным юзерам не юморить? я еще понимаю прикаливатся с такого вот ТС

засунь свой юмор в свою нормальную пи**у

Аватар пользователя temerazev temerazev 30 ноября 2011 в 18:25

И если обилие воскл знаков это не значит, что я на ком то злость вымещаю! Вы не подумали, что просто хочу привлечь внимание к этому вопросу, т.к пересмотрел уже все топики про переключатели по этой теме нет ничего, хотя судя по коментам из них не одного меня этот вопрос интересует!

Аватар пользователя Lotar Lotar 30 ноября 2011 в 18:27

В снипете черным по белому написано. Можно вабще это сделать 1 строчкой в шаблоне. Если текущий язык 1, то переключатель языка 2 не показывать.

Аватар пользователя q2_faith q2_faith 30 ноября 2011 в 18:59

если мне память не изменяет, то текущему языку присваивается класс актив, и ничего не мешает сделать для него display: none

Аватар пользователя alex_shut alex_shut 30 ноября 2011 в 19:02

"temerazev" wrote:
просто хочу привлечь внимание к этому вопросу

Думаешь от этого все вот так ломанулись помогать? ))) Веди себя нормально.
Все, кто нормально пишет, получают адекватный ответ.

Аватар пользователя neltharian neltharian 1 декабря 2011 в 0:50

"temerazev" wrote:
засунь свой юмор в свою нормальную пи**у

я твой дом труба шаталь!!! можеш себя засунуть в жопу из которой тебя высрали

Аватар пользователя temerazev temerazev 3 декабря 2011 в 2:50

"neltharian" wrote:
я твой дом труба шаталь!!! можеш себя засунуть в жопу из которой тебя высрали

Повезло тебе что ты не из моего города. За то что ты в мой адрес написал тебя бы сука убили пидор украинский

Аватар пользователя temerazev temerazev 3 декабря 2011 в 3:26

Лотар, я не силен в рнр, но был бы благодарен, если указали как именно должен выглядеть сценарий? Нашел полностью рабочий сниппет для 6ки, но при активации альтернативного языка, не появляется ссылка на язык, который был до нажатия на переключатель, вместо этого светится ссылка активного языка. Вот сниппет:

<?php

  

// this is copy&paste from locale_block in locale.module
  
$languages language_list('enabled');
  
$links = array();
  foreach (
$languages[1] as $language) {
    if (
$language->language != $current) {
      
$links[$language->language] = array(
        
'href'       => $_GET['q'],
        
'title'      => $language->native,
        
'language'   => $language,
        
'attributes' => array('class' => 'language-link'),
      );
    }
  }

  

// this adds the real paths, i.e. if we are on a german page,
  // the british flag will point to en/english_alias instead of
  // en/node_with_german_content
  
translation_translation_link_alter($links$_GET['q']);

  

// This one adds extended languages, i.e. those that are not enabled.
  // Disable if you want only flags for enabled languages.
  
i18n_translation_link_alter($links$_GET['q']);
 
  
// now add or replace text links by flags, according to your i18n settings.
  
if (function_exists('languageicons_translation_link_alter'))
    
languageicons_translation_link_alter($links$_GET['q']); 

  

// Or do your own stuff, e.g. set the flags and no lang names,
  // no matter what the i18n icon settings say.
  //if ($icon = theme('languageicons_icon', $language, NULL)) {
  //   $links[$language->language]['title'] = theme('languageicons_place', $link['title'], $icon);
  //   $links[$language->language]['html'] = TRUE;          
  //}

  // remove the current language again. We cannot do that
  // earlier because i18n_translation_link_alter would add it
  // again, thinking it was an extendeg language because it
  // was not yet contained in $links. If you don't use
  // i18n_translation_link_alter, you can also make a case distinction
  // in the foreach loop
  

$current i18n_get_lang();
  unset(
$links[$current]);

  

// format as you like, e.g.
  
echo theme('links'$links, array());
?>

Взят отсюда Пытаюсь разобраться сам, чувствуется, что истина где то рядом, но если бы Вы ткнули носом, где и что нужно изменить в сценарии, был бы очень и очень признателен, т.к. в поисках данной проблемы мечусь уже несколько дней. Решение q2_faith работает прекрасно, но в теме типа герлянды, я покупал тему, сдесь его метод не прокатывает - почему то исчезают все переключатели, хотя явно правило указано только для класса актив ссылки.

Аватар пользователя temerazev temerazev 3 декабря 2011 в 3:29

"xxandeadxx" wrote:
неадекватный далбаёб

Если это в мой адрес, то у тебя очень большие проблемы с восприятием реальности... Серьезно

Аватар пользователя temerazev temerazev 3 декабря 2011 в 3:45

И еще, народ - если у кого то ко мне есть личная неприязнь - пишите в личку или открывайте новый тред, постив сюда, будете лишь подтверждать причастность себя к роду одноклеточных существ. Без обид! Wink

Аватар пользователя Lotar Lotar 3 декабря 2011 в 17:49

Там же и есть вариант решения

<?php
<div id="language-select-form">
        <
form action="" method="post">
        <
div>
        <
select id="language-select-list" onchange="document.location.href=this.options[this.selectedIndex].value;">
        <?
php
                $languages 
language_list('enabled');                        //get enabled languages
                
$current i18n_get_lang();                                   //get current language
                
$path1 drupal_get_normal_path($_GET['q']);                  //get normal path from q
                
$paths = array();
                
$path1 preg_replace('/^' $current '/'""$path1);      //delete language suffix if any, e.g.: /en/xxx/yyy -> xxx/yyy 
                
$paths translation_path_get_translations($path1);            //get translation paths
                
foreach ($languages[1] as $language) {
                        if (
preg_match('/^node/'$path1)) {
                          
$path drupal_get_path_alias($paths[$language->language], $language->language); //get path alias for transl. path
                        
} else {
                          
$path $path1;                                      //for non-node pages
                        
}
                
$path "/" $language->language "/" $path;
        
?>
        <option value="<?php print $path ?>"<?php if ($language->language === $current) print ' selected="selected"'?>><?php print $language->native ?></option>
        <?php ?>
        </select>
        </div>
        </form>
        </div>
?>

для темы не гарлданд нужно стили исправить на нужные

Аватар пользователя temerazev temerazev 4 декабря 2011 в 0:34

Лотар, этот код не работает:
Parse error: syntax error, unexpected '<' in /home/c/cl69582/public_html/sites/all/themes/theme386/page.tpl.php on line 141
конкретно, вот эта строка:
<div id="language-select-form">

"Lotar" wrote:
для темы не гарлданд нужно стили исправить на нужные

Я вообще удалял даже файл со стилями и писал конкретно правило - не работает....мистика:\

Аватар пользователя neltharian neltharian 4 декабря 2011 в 1:26

"temerazev" wrote:
Повезло тебе что ты не из моего города. За то что ты в мой адрес написал тебя бы сука убили пидор украинский

сысыш поц ты че буруеш? шо думаеш пантовый и такой из себя из другого города будеш вякать? яиц у тя ваще нет. чмо кацапське. высерок путинский.