Thanks a lot to V@no for the original Mod: http://www.4homepages.de/forum/index.php?topic=4743.0
Danke vielmahls V@no für die Originale Mod: http://www.4homepages.de/forum/index.php?topic=4743.0*Funktioniert mit
alle 4images Versionen*
Diese Mod wurde von
Jan erstellt, wurde aber nie "officiell" veröffentlicht:
http://www.4homepages.de/forum/index.php?topic=3351.0(Dann wurde die Mod von V@no gepostet.)
------ Übersicht -------------------
Mit dieser mod können die Besucher die Sprache der Seite auswählen.
Es gibt zwei Versions-Arten der Mod:
A: Nutze Dropdown Menüs
B: Benutze Texte oder Bilder als Links
----- Installation -------------------
Step 1.--- Version
A ---
Öffne
/includes/page_header.phpFinde:
$site_template->register_vars(array(
"media_url" => MEDIA_PATH,
"thumb_url" => THUMB_PATH,
Füge davor ein:
$query_string = '';
if (!empty($HTTP_GET_VARS)) {
foreach ($HTTP_GET_VARS as $key => $val) {
if ($key != "l") {
$query_string .= ($query_string != '' ? '&' : '?').$key."=".$val;
}
}
}
// We add the session id with "&" not "&"
$lang_url = $site_sess->url($PHP_SELF.$query_string, '&');
// Now we can better remove the "l" parameter
$lang_url = preg_replace("/[?|&]l=[^?|&]*/", "", $lang_url);
// We replace "&" with "&" to make it valid XHTML
$lang_url = str_replace("&", "&", $lang_url);
$lang_select = "<form action=\"".$lang_url."\" method=\"post\">\n";
$lang_select .= "<select class=\"select\" name=\"l\" onChange=\"submit()\">\n";
// Now we open the "lang" folder, read out all available languages
// and add it as options to the dropdown.
$handle = opendir(ROOT_PATH."lang");
while ($folder = @readdir($handle)) {
if (@is_dir(ROOT_PATH."lang/".$folder) && $folder != "." && $folder != "..") {
$lang_select .= "<option value=\"".$folder."\"";
// If the folder name matches the current language,
// show the option as selected
if ($folder == $config['language_dir']) {
$lang_select .= " selected=\"selected\"";
}
$lang_select .= ">".$folder."</option>\n";
}
}
$lang_select .= "</select>\n</form>";
// Register the dropdown code for the template engine
$site_template->register_vars("lang_select", $lang_select);
--- Version
B ---
Öffne
/includes/page_header.phpFinde:
$site_template->register_vars(array(
"media_url" => MEDIA_PATH,
"thumb_url" => THUMB_PATH,
Füge davor ein:
$query_string = '';
if (!empty($HTTP_GET_VARS)) {
foreach ($HTTP_GET_VARS as $key => $val) {
if ($key != "l") {
$query_string .= ($query_string != '' ? '&' : '?').$key."=".$val;
}
}
}
$lang_url = $site_sess->url($PHP_SELF.$query_string, '&');
$lang_url = preg_replace("'&(amp|#38);'i", "&", $lang_url);
$lang_url = preg_replace("/[?|&]l=[^?|&]*/", "", $lang_url);
$lang_url = str_replace("&", "&", $lang_url);
$handle = opendir(ROOT_PATH."lang");
$lang_select = "";
while ($folder = @readdir($handle)) {
if (@is_dir(ROOT_PATH."lang/".$folder) && $folder != "." && $folder != "..") {
if ($folder != $config['language_dir']) {
$lang_select .= "<a class=\"lang\" href=\"".$lang_url.(preg_match("/english/i",$folder) ? "" : ((preg_match("/\?/", $lang_url) ? "&" : "?")."l=".$folder))."\" onMouseOver=\"(window.status='$folder'); return true\" onMouseOut=\"window.status=''; return true\"><img src=\"".TEMPLATE_PATH."/images/".$folder.".gif\" border=\"0\" alt=\"".$folder."\"></a> ";
}else{
$lang_select .= "<img src=\"".TEMPLATE_PATH."/images/".$folder."2.gif\" border=\"0\" alt=\"".$folder."\"> ";
}
}
}
// Register the dropdown code for the template engine
$site_template->register_vars("lang_select", $lang_select);
Step 2. (für beide Versionen)
Öffne eine Templatedatei, egal welche: (i.e.
/templates/<yourtemplate>/home.html) und füge folgenden Tag hinzu:
{lang_select}, dadurch können die User nun die Sprache wählen.
------- Final -----------------------
Dieses Skript scannt
/lang/ Ordner und erkennt ob sich dort ebenfalls Ordner befinden und führt diese hinterher in der Liste auf damit der User die Sprache auswählen kann.
------- Hinweis ------------------------
Version
B ist um Bilder dafür zu nutzen.
Der Name der Grafiken muss in etwas so aussehen:
language_folder_name.gif - für
not für das richtige auswählen der Sprache und
language_folder_name2.gif - für die gerade gewählte Sprache!
Dieser Version beruht auf Session. Das heisst, wenn der Browser geschlossen wird, geht auch die Sprachauswahl wieder verloren.
Es gibt aber auch eine Variante die auf Cookies aufgebaut ist. Hier ist aber auch ein Nachteil vorhanden und zwar, wenn du irgendwann die Cookies deines Browser löscht, geht die Sprachauswahl auch verloren, aber nur wenn genau dieses Cookie auch gelöscht wird.
------- Hier der Einbau für Cookies ------------------------
Öffne:
global.phpFinde:
if (isset($HTTP_GET_VARS['l']) || isset($HTTP_POST_VARS['l'])) {
$l = (isset($HTTP_GET_VARS['l'])) ? trim($HTTP_GET_VARS['l']) : trim($HTTP_POST_VARS['l']);
if (file_exists(ROOT_PATH.'lang/'.$l.'/main.php')) {
$config['language_dir'] = $l;
}
}
Ersetze mit:
if (isset($HTTP_GET_VARS['l']) || isset($HTTP_POST_VARS['l'])) {
$l = (isset($HTTP_GET_VARS['l'])) ? trim($HTTP_GET_VARS['l']) : trim($HTTP_POST_VARS['l']);
if (file_exists(ROOT_PATH.'lang/'.$l.'/main.php')) {
$config['language_dir'] = $l;
setcookie('4images_lang', $l, (time()+ 60 * 60 * 24 * 365), "/", "", 0);
}
}
else
{
if (isset($HTTP_COOKIE_VARS['4images_lang']) && file_exists(ROOT_PATH.'lang/'.$HTTP_COOKIE_VARS['4images_lang'].'/main.php'))
{
$l = $config['language_dir'] = $HTTP_COOKIE_VARS['4images_lang'];
}
}
Wenn du Version B
B nutzt, dann ersetze in includes/page_header.php dieses
$lang_select .= "<a class=\"lang\" href=\"".$lang_url.(preg_match("/english/i",$folder) ? "" : ((preg_match("/\?/", $lang_url) ? "&" : "?")."l=".$folder))."\" onMouseOver=\"(window.status='$folder'); return true\" onMouseOut=\"window.status=''; return true\"><img src=\"".TEMPLATE_PATH."/images/".$folder.".gif\" border=\"0\" alt=\"".$folder."\"></a> ";
mit diesem:
$lang_select .= "<a class=\"lang\" href=\"".$lang_url.(preg_match("/\?/", $lang_url) ? "&" : "?")."l=".$folder."\" onMouseOver=\"(window.status='$folder'); return true\" onMouseOut=\"window.status=''; return true\"><img src=\"".TEMPLATE_PATH."/images/".$folder.".gif\" border=\"0\" alt=\"".$folder."\"></a> ";
Finish