Seite 1 von 2

Sprachmodul

Verfasst: Di 23. Feb 2010, 11:36
von benja
Hallo,

kann mir jemand helfen und das Sprachmodul so ändern dass ich am Ende keinen Trenner habe?
Also so:
Deutsch / English / Türkçe / Portuguese

statt:
Deutsch / English / Türkçe / Portuguese /

Vielen Dank im Voraus
benja

Hier das Modul das ich verwende:

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"] = "Deutsch"; 
$picture["2"] = "English";
$picture["3"] = "Türkçe"; 
$picture["4"] = "France";  
$picture["5"] = "Portuguese"; 
  

echo "".$picture_pfad."</a> "; 

//Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang] 
$alt["1"] = "Deutsch"; 
$alt["2"] = "English";
$alt["3"] = "Türkçe"; 
$alt["4"] = "France";  
$alt["5"] = "Portuguese"; 




//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 class=".hilfsnavigation."  href=".$sess->url("front_content.php?client=$client&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
            echo ">".$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 class=".hilfsnavigation." href=".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
             echo ">".$alt[$mydb->f("idlang")]."</a> / "; 
         } 
      } 
   } 
   reset($picture); 
}

?>

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 14:28
von xmurrix
Hallo,

ersetze einfach den Code der while-Schleife im Modul, gegen diesen:

Code: Alles auswählen

$languageLinks = '';
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)) 
         { 
            $languageLinks .= "<a class=".hilfsnavigation."  href=".$sess->url("front_content.php?client=$client&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
            $languageLinks .= ">".$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)) 
         { 
             $languageLinks .= "<a class=".hilfsnavigation." href=".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
             $languageLinks .= ">".$alt[$mydb->f("idlang")]."</a> / "; 
         } 
      } 
   } 
   reset($picture); 
}

echo trim($languageLinks, ' /');
unset($languageLinks);
Du solltest dich eigentlich etwas mit dem Modulcode außeinander setzen und es selber ändern können...

Gruß
xmurrix

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 17:27
von benja
Danke xmurrix,

ich sollte mich wirklich mehr damit auseinander setzen. Leider fehlen mir schon die Grundlagen :(
Den Code von der Hilfsnavigation hier im Forum mit einer ähnlichen Änderung hatte ich mir auch schon angesehen, aber das Umsetzen ist dann doch nichts für mich zumal ich den folgenden Fehler trotz Deiner Hilfe nicht finde.

Leider kommt bei mir im Backend ein Fehler im Modul (Line 18)!

LG
benja

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 17:59
von xmurrix
Poste doch mal das Resultat, also den neuen Modulcode im Ganzen - irgend etwas stimmt in Zeile 18 nicht...

Gruß
xmurrix

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 18:01
von benja
Das wäre der gesamte Code:

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"] = "Deutsch"; 
$picture["2"] = "English";
$picture["3"] = "Türkçe"; 
$picture["4"] = "France";  
$picture["5"] = "Portuguese"; 
  

echo "".$picture_pfad."</a> "; 

//Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang] 
$alt["1"] = "Deutsch"; 
$alt["2"] = "English";
$alt["3"] = "Türkçe"; 
$alt["4"] = "France";  
$alt["5"] = "Portuguese"; 




//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; 



$languageLinks = '';
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)) 
         { 
            $languageLinks .= "<a class=".hilfsnavigation."  href=".$sess->url("front_content.php?client=$client&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
            $languageLinks .= ">".$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)) 
         { 
             $languageLinks .= "<a class=".hilfsnavigation." href=".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
             $languageLinks .= ">".$alt[$mydb->f("idlang")]."</a> / "; 
         } 
      } 
   } 
   reset($picture); 
}

echo trim($languageLinks, ' /');
unset($languageLinks);

?>

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 18:22
von xmurrix
Bist du dir sicher, dass der Fehler in diesem Modul ist?

Der Modulcode sieh gut aus und in Zeile 18 ist nichts verdächtiges drin...

Gruß
xmurrix

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 19:41
von benja
Ja, es ist das Modul. Es leuchtet das rote Lämpchen!

LG
benja

Re: Sprachmodul

Verfasst: Di 23. Feb 2010, 21:34
von xmurrix
Kann da keinen Fehler erkennen, habe den Code zum Einen in eine IDE eingefügt, zum Anderen testweise als Modul in Contenido. Beide Male gibt es kein Problem.

Vermutlich hast du bei dir im Modulcode in Zeile 18 irgendetwas drin, dass das Problem verursacht. Bei mir hat das mit dem Code aus http://forum.contenido.org/viewtopic.ph ... 52#p143354. Nimm einfach das, füge es erneut in die Modulausgabe und speichere es ab. Vielleicht klappt es diesmal...

Re: Sprachmodul

Verfasst: Mi 24. Feb 2010, 09:48
von benja
Seltsam, jetzt geht es.
Viele Dank nochmal :)

Re: Sprachmodul

Verfasst: Fr 16. Apr 2010, 11:21
von marphin
Hallo,

ich bekomme bei dem Modul die Flaggen nicht angezeigt, nur die Links. Den Pfad habe ich wie folgt angegeben:

Code: Alles auswählen

    $picture["1"] = "../images/deutsch.jpg";
    $picture["2"] = "../images/english.jpg";
    $picture["3"] = "../images/france.jpg";
Die Icons liegen in cms/images.

Muss ich da noch etwas beachten?

Gruß, Martin

Re: Sprachmodul

Verfasst: Fr 16. Apr 2010, 11:28
von benja
Hallo Martin,

ist der Pfad richtig? Ich habe dort nur
$picture["1"] = "images/deutsch.jpg";

LG
benja

Re: Sprachmodul

Verfasst: Fr 16. Apr 2010, 11:41
von marphin
Hallo Benja,

vielen Dank für die rasche Antwort. Auch mit dem Pfad bekomme ich leider keine Icons!

VG, Martin

Re: Sprachmodul

Verfasst: Fr 16. Apr 2010, 11:45
von benja
Sorry, dann kann ich auch nicht weiterhelfen außer noch mal meinen kompletten Code zu posten. Bei dem Modul wird die Flagge und die Sprache als Text angezeigt.

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"] = "Deutsch"; 
$picture["2"] = "Japanisch"; 
$picture["4"] = "English";
 
$picturef["1"] = "images/de.gif"; 
$picturef["2"] = "images/jp.gif"; 
$picturef["4"] = "images/en.gif"; 
 


//Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang] 
$alt["1"] = "Deutsch"; 
$alt["2"] = "&#26085;&#26412;&#35486;"; 
$alt["4"] = "English"; 
 


//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; 



$languageLinks = '';
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)) 
         { 
            $languageLinks .= "<img src='".$picturef[$mydb->f("idlang")]."'  height='10' width='10' vspace='2' hspace='3' border='0' alt='".$alt[$mydb->f("idlang")]."'/> <a class='".hilfsnavigation."'  href=".$sess->url("front_content.php?client=$client&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
            $languageLinks .= ">".$alt[$mydb->f("idlang")]."</a>  <br/>"; 
         } 
      } 
      else 
      { 
         if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id) and (($mydb->f("online")) == 1) and (($mydb->f("visible")) == 1)) 
         { 
             //$languageLinks .= "<a class=".hilfsnavigation." href=".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
             $languageLinks .= "<img src='".$picturef[$mydb->f("idlang")]."'  height='10' width='10' vspace='2' hspace='3' border='0' alt='".$alt[$mydb->f("idlang")]."'/> <a class='".hilfsnavigation."' href='".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
             $languageLinks .= "'>".$alt[$mydb->f("idlang")]."</a>  <br/>"; 
         } 
      } 
   } 
   reset($picture); 
}

echo trim($languageLinks, '  ');
unset($languageLinks);

?>

Re: Sprachmodul

Verfasst: Fr 16. Apr 2010, 12:27
von marphin
Hallo Benja,

dankeschön! Hatte wohl einen Fehler im Modul.

Kannst du mir denn auch sagen wie ich den Zeilenumbruch so hin bekomme, dass die Flagge immer über der Sprache steht?

Siehe hier: http://www.rote-funken-koeln.com/cms

Modulcode:

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"] = "Deutsch";
    $picture["2"] = "English";
    $picture["3"] = "France";
    $picture["4"] = "Chinese";
    $picture["5"] = "Koelsch";

    $picturef["1"] = "images/deutsch.jpg";
    $picturef["2"] = "images/english.jpg";
    $picturef["3"] = "images/france.jpg";
    $picturef["4"] = "images/chinese.jpg";
    $picturef["5"] = "images/koelsch.jpg";



    //Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang]
    $alt["1"] = "Deutsch";
    $alt["2"] = "English";
    $alt["3"] = "France";
    $alt["4"] = "Chinese";
    $alt["5"] = "Koelsch";



    //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;



    $languageLinks = '';
    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))
             {
                $languageLinks .= "<img src='".$picturef[$mydb->f("idlang")]."'  height='10' width='10' vspace='2' hspace='3' border='0' alt='".$alt[$mydb->f("idlang")]."'/> <a class='".hilfsnavigation."'  href=".$sess->url("front_content.php?client=$client&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart");
                $languageLinks .= ">".$alt[$mydb->f("idlang")]."</a>  <br/>";
             }
          }
          else
          {
             if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id) and (($mydb->f("online")) == 1) and (($mydb->f("visible")) == 1))
             {
                 //$languageLinks .= "<a class=".hilfsnavigation." href=".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart");
                 $languageLinks .= "<img src='".$picturef[$mydb->f("idlang")]."'  height='29' width='40' vspace='2' hspace='3' border='0' alt='".$alt[$mydb->f("idlang")]."'/> <a class='".hilfsnavigation."' href='".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart");
                 $languageLinks .= "'>".$alt[$mydb->f("idlang")]."</a>  ";
             }
          }
       }
       reset($picture);
    }

    echo trim($languageLinks, '  ');
    unset($languageLinks);

    ?>
VG, Martin

Re: Sprachmodul

Verfasst: Fr 16. Apr 2010, 14:07
von benja
Das würde ich über CSS regeln/müsste ich auch ausprobieren.