ich habe gerade das problem, das ich bei mehrsprachigkeit die navi ja nur durch offline setzen nicht anzeigen lassen kann
also im deutschen
nav1
nav2
nav3
alle online
im englischen möchte ich aber nur die
nav1
nav2
anzeigen lassen.
ok nav 3 einfach offline stellen.
aber wenn ich nun im deutschen auf nav3 bin und dann auf englisch klicke springt die nav in die englische version nav3 die es ja nicht gibt und zeigt eine leere seite da im englischen kein inhalt.
wie kann ich das realisieren, dass dann auf den startartikel der englischen seite gesprungen wird.
ich nutze diesen sprachswitsch von robert;
- Code: Alles auswählen
<?php
$tpl = array(
'list' => '<ul id="lang-switch">{ITEMS}</ul>',
'elem' => '<li id="lang-{ID}"><a href="{HREF}">{NAME}</a></li>',
'active-elem' => '<li id="lang-{ID}"><strong>{NAME}</strong></li>',
);
$out = '';
do {
// nur anzeigen, wenn mehr als eine Sprache
if(count($REX['CLANG']) <= 1)
break;
// evtl. vorhandene Parameter in der Sprachwahl-URL übergeben
$params = array();
foreach ($_GET as $key => $value)
{
if ($key == 'clang' OR $key == 'article_id')
if (!$article_id->isOnline()) continue;
continue;
$params[$key] = $value;
}
// aktuelle Sprache
$clang = rex_get('clang', 'int', REX_CLANG_ID);
$lang_elems_out = '';
foreach($REX['CLANG'] as $id => $name)
{
$tplkey = 'elem';
if($id == $REX['CUR_CLANG'])
$tplkey = 'active-elem';
// tpl: [active-]elem
$lang_elems_out .= str_replace(
array('{ID}', '{HREF}', '{NAME}'),
array(
strtolower(preg_replace('~[^a-zA-Z0-9_-]+~sm', '', $name)),
rex_geturl('', $id, $params),
htmlspecialchars($name)
),
$tpl[$tplkey]
);
}
// tpl: list
$out .= str_replace(
array('{ITEMS}'),
array($lang_elems_out),
$tpl['list']
);
} while(false);
echo $out;
?>
noch besser wäre natürlich eine sprachabhängige fehlerseite auf der dann in der angeklickten sprache halt steht: Leider ist dieser Inhalt nicht in Ihre Sprache übersetzt... oder so
danke gruß richy

