GELÖST - Sprachwahl mit Flaggen-Anzeige - Cookie

Gesperrt
ameise
Beiträge: 10
Registriert: Fr 22. Mai 2009, 07:20
Wohnort: Gelsenkirchen
Kontaktdaten:

GELÖST - Sprachwahl mit Flaggen-Anzeige - Cookie

Beitrag von ameise » Mi 24. Jun 2009, 08:30

Guten Morgen zusammen!

Habe ein 3-sprachiges 4.8.12er-Projekt laufen - deutsch (1), englisch (2), türkisch (3).
Da habe ich das Flaggen-Modul 2.2 von Alexander Zimmerhofer eingebaut. Allerdings war das einmal für die 4.4.x-Version konzipiert und scheint unter der 4.8.12er nicht ganz zu funktionieren...

BUG 1
Leider wird beim Seitenaufruf das Flaggen-Menü nicht angezeigt.
Erst bei händischem Aufruf (&changelang=2 bzw. 3 angefügt) einer anderen Sprache erscheinen die Flaggen für die übrigen Sprachen.

BUG 2
Es wird kein cookie gesetzt o.ä., dass sich das System "merkt", in welcher Sprache es sich befindet.
Da das Logo auf "front_content.php" = Home verweist, wechselt man von einer anderen Sprache immer wieder zurück in die deutsche Version.

Ich bin leider kein PHP/SQL-"Könner"... Auch arbeite ich erst seit einigen Wochen mit Contenido - kenne mich mit der System-Umgebung nicht wirklich aus.
Könnte sich jemand das Modul (Code unten angefügt) einmal anschauen und evtl. für meine "Wünsche" anpassen?
Fänd ich klasse!

Habe bisher noch nichts vergleichbares (ausser Sprachwechsler via dropdown-Liste) gefunden.

VIELEN DANK IM VORRAUS!!!

Beispielcode "Flaggenmenü" 2.2 für 4.4.x:

Code: Alles auswählen

<?php
//Sprachmodul - Version 2.2
//für Contenido 4.4.x
//Alexander Zimmerhofer - alexander(at)zimmerhofer.org

//Sprachmodul zeigt kleine Landesflaggen zum Umschalten der Sprache an, wenn die entsprechenden Kategorien sowie die entsprechenden Artikel online geschaltet sind.

//Konfiguration...
//Diese Zeilen konfigurieren das Modul...
//Aufbau: $picture["Sprach-ID"] = "PFAD zur Flagge";
$picture["1"] = "images/flags/de.png";
$picture["2"] = "images/flags/gb.jpng";
$picture["3"] = "images/flags/tr.png";



//AB HIER NICHTS MEHR ANDERN...
$mydb = new DB_Contenido;

$mydb ->query ("SELECT ARTLANG.idlang, ARTLANG.online, CATLANG.visible FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG WHERE ARTLANG.idart =  '20' AND CATLANG.idcat = '1' AND ARTLANG.idlang = CATLANG.idlang ORDER BY ARTLANG.idlang ASC");

while ($mydb -> next_record())
{
  while(list($lang_id,$picture_pfad) = each($picture))
  {
      if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent"))
      {
         if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id))
         {
            echo "<a href=".$sess->url("front_content.php?client=$client&changelang=".($mydb->f("idlang"))."&idart=$idart");
            echo "><img src=".$picture_pfad." border='0' /></a>&nbsp;";       
         }
      }
      else
      {
         if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id) and (($mydb->f("online")) == 1) and (($mydb->f("visible")) == 1))
         {
               echo "<a href=".$sess->url("front_content.php?client=$client&changelang=".($mydb->f("idlang"))."&idart=$idart");
               echo "><img src=".$picture_pfad." border='0' /></a>&nbsp;";
         }
      }
   }
   reset($picture);
}
?>
Zuletzt geändert von ameise am Mi 15. Jul 2009, 10:24, insgesamt 1-mal geändert.

_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Re: Sprachwahl mit Flaggen-Anzeige - Cookie (von 4.4.x -> 4.8.x)

Beitrag von _wiewo_ » Mi 24. Jun 2009, 18:13

einfach mal drübergeguckt

die abfragen für den backend fand ich irgendwie nich schlau ^^ kein sinn drin gesehen

Code: Alles auswählen

<?php
$aPictures["1"] = "./images/flags/de.png";
$aPictures["2"] = "./images/flags/gb.jpng";
$aPictures["3"] = "./images/flags/tr.png";

$db->query ("
SELECT 
	ARTLANG.idlang, 
	ARTLANG.online, 
	CATLANG.visible 
FROM 
	" . $cfg["tab"]["art_lang"] . " AS ARTLANG, 
	" . $cfg["tab"]["cat_lang"] . " AS CATLANG 
WHERE 
	ARTLANG.idart =  '{$idart}' 
AND 
	CATLANG.idcat = '{$idcat}' 
AND 
	ARTLANG.idlang = CATLANG.idlang 
ORDER BY 
	ARTLANG.idlang ASC
");

while ($db->next_record()) {

	foreach ($aPictures as $iLangID => $sPicturePath) {

		if (($db->f("idlang") != $lang && $db->f("idlang") == $iLangID) and ($db->f("online") == 1 && $db->f("visible") == 1)) {

			echo "<a href=" . Contenido_Url::getInstance()->build(array('client' => $client, 'changelang' => $db->f("idlang"), 'idart' => $idart)) . "><img src=" . $sPicturePath . " /></a>&nbsp;";

		}
	}

}
?>
PS : $picture["1"] = "./images/flags/de.png"; ist schneller als $picture["1"] = "images/flags/de.png";

border='0' hat da nicht zu suchen :) css ;)

sherman
Beiträge: 40
Registriert: Mi 29. Nov 2006, 00:44
Kontaktdaten:

Re: GELÖST - Sprachwahl mit Flaggen-Anzeige - Cookie

Beitrag von sherman » Mo 22. Mär 2010, 18:52

Hallo wiewo:

Ich habe deinen code mal in einer 4.8.12er Installation getestet:
Fatal error: Uncaught exception 'InvalidArgumentException' with message '$param[lang] must be set!' in /homepages/20/d264180393/htdocs/testcms/contenido/classes/Url/Contenido_Url.class.php:137 Stack trace: #0 /homepages/20/d264180393/htdocs/testcms/contenido/external/backendedit/front_content.php(959) : eval()'d code(489): Contenido_Url->build(Array) #1 /homepages/20/d264180393/htdocs/testcms/contenido/external/backendedit/front_content.php(959): eval() #2 {main} thrown in /homepages/20/d264180393/htdocs/testcms/contenido/classes/Url/Contenido_Url.class.php on line 137
Verstehe leider nicht die Fehlermeldung, koenntest du mir bitte helfen?!

Danke.
Sherman

_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Re: GELÖST - Sprachwahl mit Flaggen-Anzeige - Cookie

Beitrag von _wiewo_ » Mo 22. Mär 2010, 19:48

sorry

Code: Alles auswählen

echo "<a href=" . Contenido_Url::getInstance()->build(array('client' => $client, 'changelang' => $db->f("idlang"), 'lang' => $db->f("idlang"), 'idart' => $idart)) . "><img src=" . $sPicturePath . " /></a>&nbsp;";

sherman
Beiträge: 40
Registriert: Mi 29. Nov 2006, 00:44
Kontaktdaten:

Re: GELÖST - Sprachwahl mit Flaggen-Anzeige - Cookie

Beitrag von sherman » Di 23. Mär 2010, 23:27

Perfekt!!!
Klappt super :D

Vielen Dank!

_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Re: GELÖST - Sprachwahl mit Flaggen-Anzeige - Cookie

Beitrag von _wiewo_ » Di 23. Mär 2010, 23:40

kannst den client teil auch weglassen, idlang ist auch klientenspezifisch :)

Gesperrt