print $language block

eaposztrof képe

drupal 5.x
sajnos nem talalam megoldast arra, hogy sminkfajllal irassam ki a i18n nyelvvalaszto linkjeit, probaltam azt a function-t amelyet a block letrehozasanal hasznal, tehat ezt:

<?php function i18n_block($op = 'list', $delta = 0) {
  if ($op == 'list') {
    $blocks[0]['info'] = t('Language switcher');
  }
  elseif($op == 'view') {
    $blocks['subject'] = t('Languages');
    $query = drupal_query_string_encode($_GET, array('q'));
    $blocks['content'] = theme('item_list', i18n_get_links($_GET['q'], empty($query) ? NULL : $query));
  }
  return $blocks;
} ?>
de csak egy array-t kapok vissza. vadasztam hogy hogyan lehet meghivni a theme() api-val, de nem talaltam. egyszerubbnek lattam ezt a megoldast:
<div id="language">
	<?php
		$languages = (function_exists('locale')) ? locale_supported_languages() : array('name' => array());
		if ($user->language == '') {
		      $user->language = key($languages['name']);
		}
		$nolang_uri=array_splice(explode('/',request_uri()), 2);
		$nolang_url="";
		foreach($nolang_uri as $url){
			$nolang_url.="/".$url;
		}
		switch ($user->language ) {
			case 'en':
			   print '<div class="item-list"><ul><li><span class="i18n-link"><a class="active" href="/en/'.$nolang_url.'"><img width="16" height="12" alt="English" class="i18n-icon" src="/modules/i18n/flags/en.png"/></a> <a class="active" href="/en/'.$nolang_url.'">English</a></span></li></ul></div>';
			break;
			case 'hu':
			   print '<div class="item-list"><ul><li><span class="i18n-link"><a class="active" href="/hu/'.$nolang_url.'"><img width="16" height="12" alt="English" class="i18n-icon" src="/modules/i18n/flags/en.png"/></a> <a class="active" href="/en/'.$nolang_url.'">English</a></span></li></ul></div>';
			break;
			unset($url);
		}
	?>
</div>
Fórum: 
crt képe

Szia.

template.php-be:

function sminkneve_translation_links($class = 'links') {
  $output = '';
  if (function_exists('translation_get_links')) {
    $query = drupal_query_string_encode($_GET, array('q'));
    $items = translation_get_links($_GET['q'], empty($query) ? NULL : $query);
    $num_items = count($items);
    $i = 1;
 
    if ($num_items > 0) {
      $output .= '<ul class="' . $class . '">';
      foreach ($items as $item) {
        if ($i == 1)  $extra_class = 'first ';
        if ($i == $num_items)  $extra_class = 'last ';
        $output .= '<li class="' . $extra_class . $class . '">' . $item . '</li>';
        $i++;
      }
      $output .= '</ul>';
    }
  }
  return $output;
}

A page.tpl.php-ben pedig így hívod:

 print sminkneve_translation_links()

Szerintem így egyszerűbb és új nyelv esetén sem kell hozzányúlni.

Üdv: Zoli

0
0
pp képe

azt nem nézted meg, hogy mi abban a tömbben? :D

$query = drupal_query_string_encode($_GET, array('q'));
    $blocks['content'] = theme('item_list', i18n_get_links($_GET['q'], empty($query) ? NULL : $query));
echo $block['content'];

pp
(valamit félreértek?)

0
0