Sprachmodul

Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Sprachmodul

Beitrag von Alex »

Hallo!

Hier eine Entwicklung von mir...

Es ist ein kleines Sprachmodul... Es fügt, wenn der entsprechende Artikel in einer anderen Sprache vorhanden und online geschaltet ist, die entsprechende Flagge ein...

Viel Spaß damit... Für weitere Anregungen bin ich natürlich immer dankbar...

Alex

OUTPUT:

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.
//Im Editormodus wird die Umschaltmöglichkeit IMMER angeboten...

//Konfiguration...
//Diese Zeilen konfigurieren das Modul...
//Aufbau: $picture["Sprach-ID"] = "PFAD zur Flagge";
$picture["1"] = "upload/design/brd.gif";
$picture["3"] = "upload/design/gb.gif";




//AB HIER NICHTS MEHR ÄNDERN... 
$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 Alex am So 8. Aug 2004, 17:46, insgesamt 1-mal geändert.
Contenido 4.4.4 & 4.5.3-CVS
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

clever gemacht...
die grafiken im modul zu definieren ist ein kleines manko...
ich würde eine zusätzliche abfrage in der con_lang machen und das feld name für die grafik nutzen...
hätte den vorteil das man das modul nicht für jede weitere sprache ändern müsste...

ne andere kleine anmerkung -> im editor modus sollte der wert online = 1 ignoriert werden... dann ist ein wechsel im editor auf die andere sprache ebenso möglich (wenn die session id von contenido mit übergeben wird)

ich häng das mal mit nen anderen posting zusammen:
-> http://www.contenido.de/forum/viewtopic ... highlight=
*** make your own tools (wishlist :: thx)
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi!

Ich habe das Sprachmodul leicht überarbeitet. Es wird jetzt gecheckt, ob Kategorie online ist UND Artikel online ist. Nur wenn BEIDES gilt, wird die Flagge gezeigt.

Allerdings gilt dies nur, wenn die Seite außerhalb des Editors angezeigt wird. Im Editor wird die Flagge immer präsentiert.

Damit habe ich aber noch Probleme. Bei der Erstansicht im Editor ist alles okay (auch nicht onlinegeschaltete Artikel einer anderen Sprache werden per Falgge angezeigt). Klickt man dann auf die Flagge, schaltet man auf einen nicht-onlinegeschaltete um, dann scheint aber diese Editorausnahme nicht mehr zu funktionieren. Ist das denn normal?

Viele Grüße

Alex
Contenido 4.4.4 & 4.5.3-CVS
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

es muss die variable contenido beim link mitübergeben werden...
was du ja machst $sess->url...

hmm hab jetzt leider keine möglichkeit um das zu testen...
*** make your own tools (wishlist :: thx)
helix
Beiträge: 6
Registriert: So 15. Aug 2004, 14:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von helix »

hi

also ich hab das Modul grad bei mir eingebaut...aber irgendwie wills ned so recht wie ich will ;-).
Im Editor wird mir ne Flagge angezeigt (allerdings nur die für englisch obwohl der Artikel eigentlich nur in deutsch verfügbar ist). Geh ich dann auf vorschau oder schau mir den Artikel ganz normal an ist garkeine Flagge zu sehen....auch nicht die für deutsch zu der der Artikel ja gehört.

hat jemand ne Idee woran das liegen könnt....das Modul wär echt genau das was ich brauchen würde!!!!

zu finden ist meine Seite unter
http://euroball-cms.dps-lan.net/cms/

Danke schonmal!!!
Gruss Nils
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi helix.

Hast du das Modul auch konfiguriert? Die Sprach-ID müssen angepasst werden, die Pfade zu den Flaggen auch.

Die Flaggen werden nur angezeigt, wenn auch die entsprechende Kategorie und der Artikel online geschaltet sind...

Alex
Contenido 4.4.4 & 4.5.3-CVS
helix
Beiträge: 6
Registriert: So 15. Aug 2004, 14:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von helix »

ok.......war einfach nur blöd....man sollte vielleicht den Artikel auch auf online setzen!!! heldentat ;-)
Sorry
ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

Änderungen

Beitrag von ulisteinle »

Hallo Zusammen,

Ich habe das Sprachmodul etwas geändert:

Im Link wird jetzt auch die idcat angegeben.( - Ohne diese bekam ich immer eine Login-Seite zu sehen)
Im SQL Statement wurde:

Code: Alles auswählen

... WHERE ARTLANG.idart =  '20' AND CATLANG.idcat = '1' ...
durch

Code: Alles auswählen

WHERE ARTLANG.idart = $idart AND CATLANG.idcat = $idcat
ersetzt.
Zu den Bildchen ist ein ALT-Tag hinzugekommen, dass im Modul entsprechend der Sprache angepasst werden kann.

Das ganze sieht jetzt so aus:

Output:

Code: Alles auswählen

<?php 
//Sprachmodul - Version 2.3 
//für Contenido 4.4.x 
//Alexander Zimmerhofer - alexander(at)zimmerhofer.org 
//modified 01.12.2004: Uli Steinle

//Sprachmodul zeigt kleine Landesflaggen zum Umschalten der Sprache an, wenn die entsprechenden Kategorien sowie die entsprechenden Artikel online geschaltet sind. 
//Im Editormodus wird die Umschaltmöglichkeit IMMER angeboten... 

//Konfiguration... 
//Diese Zeilen konfigurieren das Modul... 
//Aufbau: $picture["Sprach-ID"] = "PFAD zur Flagge"; 
$picture["1"] = "upload/bilder/de_flagge.jpg"; 
$picture["2"] = "upload/bilder/us_en_flagge.jpg";
$picture["3"] = "upload/bilder/fr_flagge.jpg"; 

//Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang]
$alt["1"] = "Sprache 1";
$alt["2"] = "Sprache 2";
$alt["3"] = "Sprache 3";



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

$sql = "SELECT ARTLANG.idlang, ARTLANG.online, CATLANG.visible FROM ".$cfg["tab"]["art_lang"]." ";
$sql = $sql. "AS ARTLANG, ".$cfg["tab"]["cat_lang"]." ";
$sql = $sql. "AS CATLANG WHERE ARTLANG.idart = $idart AND CATLANG.idcat = $idcat AND ARTLANG.idlang = CATLANG.idlang ORDER BY ARTLANG.idlang ASC";

$mydb ->query ($sql); 
// echo $sql;



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&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
            echo "><img src=".$picture_pfad." border='0' alt='".$alt[$mydb->f("idlang")]."'></a> ";
         } 
      } 
      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?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
             echo "><img src=".$picture_pfad." border='0'  alt='".$alt[$mydb->f("idlang")]."'></a> ";
         } 
      } 
   } 
   reset($picture); 
} 
?> 
Ein großes "Danke" an Alex für das Modul!

Gruß
Uli
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Danke Uli!

Ich werde das Modul mal in den nächsten Tagen ausprobieren...

Viele Grüße

Aöex
Contenido 4.4.4 & 4.5.3-CVS
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Änderungen

Beitrag von Halchteranerin »

Hallo Uli,
ulisteinle hat geschrieben: Zu den Bildchen ist ein ALT-Tag hinzugekommen, dass im Modul entsprechend der Sprache angepasst werden kann.
hast du eine Ahnung, warum der ALT-Tag nur bei IE funktioniert? Ich kann mich dunkel erinnern, dass es Probleme gab, wenn ich mich nicht ganz taeusche, aber ich meine, das Problem schon mal geloest zu haben. Ich erinnere mich nur leider nicht, wie. :-( Ich hab's gerade mit dem name-Tag (zusaetzlich zu alt) probiert, aber das hat leider auch keine Auswirkung. Es waere schoen, wenn der Bildername auch bei Netscape/Mozilla funktionieren wuerde ...

Gruss
Christa
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Versuche title="Ein Text"

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

title war's, danke!
Das Modul scheint aber irgendwie noch eine Macke zu haben ... die Sprachen haben ja eine bestimmte Reihenfolge. Jetzt ist es nicht nur mir sondern auch meiner Mutter (anderer Ort, anderer Rechner :wink:) komischerweise bei derselben (4.) Sprache aufgefallen, dass wenn man eine der Unterseiten anklickt diese nicht in der 4. Sprache sondern in der 1. angezeigt wird. Die Seite existiert aber in der 4. Sprache, und die con_code habe ich zwischendurch geleert. In der errorlog steht "natuerlich" wieder mal nichts. Woran koennte DAS denn liegen? Ich werd's jedenfalls beobachten, ob es evtl. auch bei einer der anderen Sprachen (es sind 5 insgesamt) zwischendurch auftritt.
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi Halchteranerin,

verwendest du meine Version oder die von Uli?

Alex

PS: Kopier doch einfach meine Grundversion mal rein und check dann...
Contenido 4.4.4 & 4.5.3-CVS
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Hi Alex,

ich habe die von Uli genommen, weil ich bei deiner nicht wusste, was die idart 20 und idcat 1 sein soll, zumal sie in dem Bereich "AB HIER NICHTS MEHR AENDERN" stand. Das Problem mit dem Testen ist auch, dass das von mir beschriebene Problem nicht immer auftritt, also selbst, wenn ich jetzt deine Version naehme und die gerade funktioniert, heisst das leider noch nichts. :(

Gruss
Christa
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

hmm, ich habe jetzt Ulis und Alex' Version kombiniert und erweitert (dass der alt-Tag und zusaetzlich ein title-Tag angezeigt werden, dass die idart und idcat nicht mehr fest drin sind), und eben hat's funktioniert, aber vorher ging es auch ab und zu, deswegen werde ich das eine Weile beobachten. Sollte es ohne Probleme klappen, dann ist in Ulis Version noch ein Wurm drin, mal gucken ... Ich melde mich nach einiger Beobachtung wieder.
Gesperrt