Seite 1 von 1

Gibt es ein Mehrsprachen-Modul ? gleiche Seite per click ?

Verfasst: Di 28. Feb 2006, 15:03
von tolteq
Hallo

gibt es ein Modul/Script/Plugin für contenido,das bei klick auf die Sprache als Fahne oder Wort die gleiche Seite nur in der anderen Sprache läd ???
Also z.b. index per click dann in engl oder franz. oder... ?
gleiches für die Unterseiten

Oder etwas, was in die Richtung geht ?

Danke für Tipps und Infos
mfg
tolteq

Verfasst: Di 28. Feb 2006, 15:04
von Halchteranerin
such bitte im Forum Module 4.4.x, es gibt ein Modul von Alex.

Verfasst: Di 28. Feb 2006, 15:47
von peanut
TIPP: wenn du das modul installierst

Es geht erst wenn du sprachen synchronisiert hast

Verfasst: Di 28. Feb 2006, 18:37
von tolteq
ich blicke da nicht ganz durch. Was ich gefunden habe, ist für 4.4.x,
in dem Sinne verstehe ich den Hinweis nicht ganz, wie er gemeint ist.

Wenn also jemand was hat für 4.4.6 oder weiß, wie man es anpaßt bzw. installiert - wär nett.

Danke
MfG

Verfasst: Di 28. Feb 2006, 18:51
von Halchteranerin
bau es doch einfach bei dir ein. Ich weiss auch nicht genau, was peanut meint(e), aber logischerweise muessen mindestens zwei Sprachen vorhanden sein (mit den dazugehoerigen Artikeln), damit du das Modul einsetzen kannst.

Verfasst: Di 28. Feb 2006, 18:55
von HerrB
Gab es da nicht mal das Sprachwechsel-Modul?

Anyway, it's simple:

Code: Alles auswählen

if ($lang == 1) {
echo '<a href="front_content.php?idart='.$idart.'&changelang=2">'.mi18n("Sprache bla").'</a>'."\n";
} else {
echo '<a href="front_content.php?idart='.$idart.'&changelang=1">'.mi18n("Sprache blub").'</a>'."\n";
}
Es wird angenommen, dass die eine Sprache die ID 1 und die andere die ID 2 hat.

Gruß
HerrB

Verfasst: Mi 1. Mär 2006, 11:47
von schlaucher
Hi,

ich habe da mal ein kleine Modul geschrieben, vielleicht hilft dir das weiter:

http://contenido.org/forum/viewtopic.php?p=68154

Gruß
schlaucher

Verfasst: Do 2. Mär 2006, 22:37
von markusheinzer
Hallo. Ich habe da auch etwas zu bieten:
Bei meinem Modul kann man in der Konfiguration auswählen, ob die Sprachlinks auf die Home-Seite zeigen sollen, oder direkt auf den gleichen Artikel in der anderen Sprache.

Input:

Code: Alles auswählen

?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     Sprachauswahl
* Author      :     Markus Heinzer
* Created     :     02.01.2006
************************************************/

if ("CMS_VALUE[1]" == '')
{$ziel = 'artikel';} else {$ziel = "CMS_VALUE[1]";}

echo '<table class="text_medium">';

echo '<tr>
      <td>'.mi18n("Link auf 'home' oder Artikel").'?</td>
      <td><select name="'."CMS_VAR[1]".'" size="1">';
          echo '<option value="artikel"';
          if ($ziel == 'artikel') 
          {
               echo ' selected="selected"';
          }
          echo '>'.mi18n("Artikel").'</option>';

          echo '<option value="home"';
          if ($ziel == 'home') 
          {
               echo ' selected="selected"';
          }
          echo '>'.mi18n("home").'</option>';

echo '</select></td></tr>';

echo '</table>';
?><?php
Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     Sprachauswahl
* Author      :     Markus Heinzer
* Created     :     02.01.2006
************************************************/

$ziel = "CMS_VALUE[1]";

if ($ziel == '') {$ziel = 'artikel';}

if ($ziel == 'home')
{
    $sql = "SELECT LANG.name, LANG.idlang, LANG.active
              FROM {$cfg['tab']['lang']} AS LANG
             WHERE LANG.active = 1
             ORDER BY LANG.name asc";
    $db->query($sql);
}
elseif ($ziel == 'artikel')
{
    $sql = "SELECT LANG.name, LANG.idlang, LANG.active
              FROM {$cfg['tab']['lang']} AS LANG,
                   {$cfg['tab']['art_lang']} AS ART
             WHERE LANG.active = 1
               AND ART.idart = $idart 
               AND ART.idlang = LANG.idlang
               AND ART.online = 1
             ORDER BY LANG.name asc";
    $db->query($sql);
}

echo '<div class="sprachlinks">';

while ( $db->next_record() )
{
    if ( $lang != $db->f("idlang") ) 
    { echo '<a class="sprachlink"';}
    else
    { echo '<a class="sprachlinkaktiv"';}

    if ($ziel == 'home')
    { echo ' href="front_content.php?changelang='.$db->f("idlang").'" alt="home: '.$db->f("name").'">';}
    elseif ($ziel == 'artikel')
    { echo ' href="front_content.php?changelang='.$db->f("idlang").'&idart='.$idart.'" alt="'.$db->f("name").'">';}

    echo '['.$db->f("name").']';
    echo '</a>&nbsp;';
}

echo '</div>';

?> 
Formatieren kann man das über ein Stylesheet mit den Klassen:
.sprachlinks (eine div-Klasse, die alle Links zusammen umfasst)
.sprachlink (Klasse für die inaktiven <a>'s)
.sprachlinkaktiv (Klasse für die aktive Sprache)

Viel Spass damit.

Verfasst: Fr 3. Mär 2006, 14:29
von Salech
Eine Frage: gibt’s so einen Sprachwechsel-Modul auch für das "Advanced Mod Rewrite"-Modul?

Die hier gezeigten Ansätze funktionieren bei mir nämlich leider alle nicht.

Verfasst: Fr 3. Mär 2006, 16:17
von markusheinzer
Ich habe auch AdvancedModRewrite drauf und am laufen. Die URLs werden bei mir automatisch umgewandelt. Das sollte eigentlich laufen. Bei mir tut's jedenfalls.

Probleme gibts bei der Umschaltung wenn die Option "home" statt "artikel" ausgewählt ist und in der anderen Sprache kein Startartikel definiert ist (das passiert übrigens nicht automatisch, wenn man die Artikel synchronisiert).

Also:
Die Kategorien müssen online sein,
die Artikel müssen online sein und
pro Kategorie muss es schön einen Startartikel haben.

Dann sollte es eigentlich funktionieren. Ansonsten weiss ich leider auch nicht weiter.

Verfasst: Fr 3. Mär 2006, 18:42
von Salech
Vielen Dank – es läuft!!

Habe nur eine Frage (bin kein Php-Profi) wie ich es auch mache ich bekomme es einfach nicht hin.
Es steht dann ja da [deutsch] [english] mit den entsprechenden funktionierenden Links.!! :)

Wie bekomme ich es hin das in der englischen Version nur [deutsch] steht und in der Deutschen Version nur [english]?

Verfasst: Fr 3. Mär 2006, 19:25
von markusheinzer
Die while-Schleife mit folgendem Code ersetzen:

Code: Alles auswählen

while ( $db->next_record() )
{
    if ( $lang != $db->f("idlang") )
    { 
       echo '<a class="sprachlink"';

       if ($ziel == 'home')
       { echo ' href="front_content.php?changelang='.$db->f("idlang").'" alt="home: '.$db->f("name").'">';}
       elseif ($ziel == 'artikel')
       { echo ' href="front_content.php?changelang='.$db->f("idlang").'&idart='.$idart.'" alt="'.$db->f("name").'">';}

       echo '['.$db->f("name").']';
       echo '</a>&nbsp;';
    }
} 
So werden die Links nur ausgegeben, wenn sie nicht der aktuellen Sprache entsprechen.

Verfasst: Sa 4. Mär 2006, 10:09
von Salech
You are the man! 8)

Danke.

Verfasst: Sa 4. Mär 2006, 23:14
von markusheinzer
Freut mich, wenn's geht.
Grüsse