Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Sprachauswahl-3 v1.1.0
Forum Sefrengo.org > Downloads > Archiv > Module
cliff
Modulname:
---------------------------------------------------------------------------
Sprachauswahl-3


Status:
---------------------------------------------------------------------------
stable


Bechreibung:
---------------------------------------------------------------------------
Diese Sprachauswahl bietet mehr gestalterische Möglichkeiten:
die einzelnen Sprachen können sortiert werden
pro Sprache werden eigene Status Templates verwendet, die als Text, Flaggen, Pulldown ausgegeben werden können


Features:
---------------------------------------------------------------------------
- Icon-Links
- Text-Links
- Icon- und Textlinks
- Pulldown
- Templates
- Links auf eine andere Seite in der neu gewählten Sprache
- Schriftarten / CSS-Styles können ausgewählt werden und in der template verwendet werden
- Aktuelle Sprache anzeigen (ja/nein)
- Nicht verfügbare Sprachen anzeigen (ja/nein)
- Sortierung der Sprachen
- Eigene Texte pro Sprache und Status


Moduleigenschaften:
---------------------------------------------------------------------------
[X] Einsatz mehrmals in einem Projekt möglich
[X] Einsatz mehrmals auf einer Seite (idcatside) möglich
[X] Ist Mehrprojektfähig
[X] Ist Mehrsprachenfähig
[X] Ist XHTML konform


Autor(en):
---------------------------------------------------------------------------
cliff


Lizenz:
---------------------------------------------------------------------------
GPL


Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.04.00 (Sefrengo 1.4)


Installation:
---------------------------------------------------------------------------
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Design->Module". Am
unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die
gewünschte "*.cmsmod"- Datei aus. Mit einem Klick auf das Diskettensymbol
wird das Modul in das CMS importiert. Das Modul ist nun innerhalb des CMS
nutzbar.


Update/ Migration:
---------------------------------------------------------------------------
Keine Probleme bekannt


Dokumentation:
---------------------------------------------------------------------------
Keine vorhanden

QUELLTEXT
Changelog legend:
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note

Current versionnumber is  01.01.00 - released 21.10.2007
------------------------------------------------------------------------------------------------
First public release
Klicken um den Anhang anzusehen
gunwalt
Ist das Modul eine komplette Neuentwicklung? Wenn ich nach dem changelog gehe, ja.
cliff
Ja ist eine Neuentwicklung

Brauchte ein Sprachwechsel der mehr kann ohne dass man den Modul Code verändert.
Z.B. Sortierung, Fixer Text pro Sprache
Tiggr
Tolle Sache, vielen Dank!

Wie siehts denn mit den verschiedenen mod_rewrites aus?

Tschüss
Tiggr (aka Marcus)
cliff
Werden auch unterstützt
Tiggr
Super, dann muss ich es bald mal testen!

DANKE!
davelee
ZITAT(cliff @ Mon. 22. October 2007, 15:08) *
Werden auch unterstützt



Ich habe den Sprachwechsler soeben ausprobiert - feine Sache.

Jedoch funktioniert bei mir REWRITE 2 nicht ganz richtig:


Die Links werden folgendermaßen ausgegeben

Deutsch: www.website.com/projekt01/test1/test1&lang=1
Englisch: www.website.com/projekt01/test1/test1&lang=2

jedoch schaffe ich es nicht das die Links mit Sprachkurzeln ausgegeben werden:

Deutsch: www.website.com/projekt01/de/test1/
Englisch: www.website.com/projekt01/en/test1/


Mach ich da irgend etwas falsch?
Wenn ich {rewrite_Key} in der Modul-Konfiguration eingebe passiert auch nichts

Vielen Dank, David
andi
hallo david

hast du für die beiden sprachen ein kurzzeichen definiert?

administration-->projekte-->projekt aufklappen-->stift icon (sprache bearbeiten)-->Kurzzeichen für URL- Rewrite..evtl. noch unter redaktion-->seiten unter aktionen «gesprochene urls neue generieren» wählen.

bei mir funktioniert das modul mit mod-rewrite 2.


gruss andi
bjoern
Ich hab mir das Modul jetzt auch mal angeschaut. Das ist wirklich mit Abstand das Beste Sprachauswahlmodul, was es jemals für Sefrengo gab. Einzig zwei Optionen vermisse ich
1) Ein optional zuschaltbares Templateset, welches angezeigt wird, sobald kein individuelles Set für eine Sprache definiert wurde. Oft ist es ja erwünscht, das sich die Sprachnavigation beim anlegen einer neuen Sprache selbst erweitert.
2) Einen Umschalter, wo definiert werden kann, ob offline geschaltete Seiten im Backend angezeigt werden sollen. Ist beim bearbeiten einer mehrsprachigen Seite nervig, wenn alles über den Seitenbaum erledigt werden muss.

Wenn das drinn ist, dann würde ich vorschlagen, dass das Modul in den Core kann.
davelee
Danke für eure Antworten, da ich es nicht geschafft habe das Modul mit Mod-Rewirte 2 zum laufen zu bringen, habe ich jetzt eine abgeänderte Version der Sprachauswahl2 1.5 in Verwendung.

Ich würde jedoch gerne das Modul Sprachauswahl verwenden, ich schaffe es jedoch nicht die Änderungen in dieses Modul zu integrieren.

Die Änderungen in dem Modul Sprachauswahl2 1.5 sind folgende:


Sprachauswahl2 1.5 Original:

QUELLTEXT
// create link
if ( !function_exists('createLinkUrl') ) {
    function createLinkUrl($langId, $newIdCatSide, $isOnline) {
        global $cfg_client, $idcatside, $sess, $view;
        if(isset($view) && $view!="")
    {
    if ("$isOnline" == "1") {
            if ("$newIdCatSide" == "") return $sess->url($cfg_client["contentfile"].'?idcatside='.$idcatside.'&lang='.$langId.'&view='.$view);
            return $sess->url($cfg_client["contentfile"].'?idcatside='.$newIdCatSide.'&lang='.$langId.'&view='.$view);
        }
}
else{
  if ("$isOnline" == "1") {
            if ("$newIdCatSide" == "") return $sess->url($cfg_client["contentfile"].'?idcatside='.$idcatside.'&lang='.$langId);
            return $sess->url($cfg_client["contentfile"].'?idcatside='.$newIdCatSide.'&lang='.$langId);
        }}
    }
}


Sprachauswahl2 1.5 Abgeänderte Version:

QUELLTEXT
// create link :: modified function
if (!function_exists('createLinkUrl')) {
    function createLinkUrl($langId, $newIdCatSide, $isOnline) {
        global $cfg_client, $idcatside, $sess, $view;
        // backend view
        if (isset($view) && $view != "") {
            if ($isOnline == "1") {
                if ($newIdCatSide == "") {
                    return $sess->url($cfg_client["contentfile"].'?idcatside='.$idcatside.'&lang='.$langId.'&view='.$view);
                } else {
                    return $sess->url($cfg_client["contentfile"].'?idcatside='.$newIdCatSide.'&lang='.$langId.'&view='.$view);
                }
            }
        // frontend view
        } else {
            if ($isOnline == "1") {
                if ($newIdCatSide == "") {
                    if (function_exists(rewriteGetPageUrl)) {
                        $linkUrl = rewriteGetPageUrl($idcatside, $langId);
                    } else {
                        $linkUrl = $sess->url($cfg_client["contentfile"].'?idcatside='.$idcatside.'&lang='.$langId);
                    }
                    return $linkUrl;
                } else {
                    if (function_exists(rewriteGetPageUrl)) {
                        $linkUrl = rewriteGetPageUrl($newIdCatSide, $langId);
                    } else {
                        $linkUrl = $sess->url($cfg_client["contentfile"].'?idcatside='.$newIdCatSide.'&lang='.$langId);
                    }
                    return $linkUrl;
                }
            }
        }
    }
}



Vielleicht habt ihr ja eine Idee wie man das in dieses Modul integrieren kann

Sprachauswahl 3

QUELLTEXT
// create link
if ( !function_exists('createLinkUrl') ) {
    function createLinkUrl($langid, $newidcatside, $is_online) {
        global $cfg_client, $sess, $view;
    
        if (isset($view) && $view!="") {
            if ($is_online == 1) {
                return $sess->url($cfg_client["contentfile"].'?idcatside='.$idcatside.'&lang='.$langid.'&view='.$view);
            }
        } else {
            if ($is_online == 1) {
                return $sess->url($cfg_client["contentfile"].'?idcatside='.$newidcatside.'&lang='.$langid);
            }
        }
    }
}



@andi

Deine genannten Einstellungen für die Kurzzeichen waren aktiviert,
kann es sein das der PHP-Safemode etwas damit zutun hat ?


LG David
renard
@davelee

Hast du beide Funktionen schon mal ausgetauscht?

Ich hab's probiert und es funktioniert.


Gruß renard
davelee
ZITAT(renard @ Wed. 28. November 2007, 19:48) *
@davelee

Hast du beide Funktionen schon mal ausgetauscht?

Ich hab's probiert und es funktioniert.
Gruß renard



Renard, zuerst danke nochmals für deine Modfikation beim der 2er 1.4 Version. wink.gif

Wie meinst du ausgetauscht? ich habe versucht deine Modifikation der 2er 1.4 Version in die 3er Version einzubauen -
Mir ist aber nicht ganzklar was ich dazu ändern muß

LG david
renard
Wenn du aus dem Modul Output diesen Code Block:

CODE

// create link
if ( !function_exists('createLinkUrl') ) {
function createLinkUrl($langid, $newidcatside, $is_online) {
global $cfg_client, $sess, $view;

if (isset($view) && $view!="") {
if ($is_online == 1) {
return $sess->url($cfg_client["contentfile"].'?idcatside='.$idcatside.'&lang='.$langid.'&view='.$view);
}
} else {
if ($is_online == 1) {
return $sess->url($cfg_client["contentfile"].'?idcatside='.$newidcatside.'&lang='.$langid);
}
}
}
}


gegen diesen:

CODE

// create link :: modified function
if (!function_exists('createLinkUrl')) {
function createLinkUrl($langid, $newidcatside, $is_online) {
global $cfg_client, $sess, $view;
// backend view
if (isset($view) && $view != "") {
if ($is_online == "1") {
return $sess->url($cfg_client["contentfile"].'?idcatside='.$newidcatside.'&lang='.$langid.'&view='.$view);
}
// frontend view
} else {
if ($is_online == "1") {
// apache mod_rewrite support = 1
if ($cfg_client['url_rewrite'] == '1') {
$url_rewrite_in = array(
"'(?<!/)".$cfg_client['contentfile']."\?idcat=([1-9][0-9]*)(&|&)lang=([1-9][0-9]?)'",
"'(?<!/)".$cfg_client['contentfile']."\?idcatside=([1-9][0-9]*)(&|&)lang=([1-9][0-9]?)'"
);
$url_rewrite_out = array(
"cat\\1-\\3.html",
"page\\1-\\3.html"
);
$linkUrl = $sess->url($cfg_client["contentfile"].'?idcatside='.$newidcatside.'&lang='.$langid);
$linkUrl = preg_replace($url_rewrite_in, $url_rewrite_out, $linkUrl);
// apache mod_rewrite support = 2
} elseif ($cfg_client['url_rewrite'] == '2') {
$linkUrl = rewriteGetPageUrl($newidcatside, $langid);
} else {
$linkUrl = $sess->url($cfg_client["contentfile"].'?idcatside='.$newidcatside.'&lang='.$langid);
}
return $linkUrl;
}
}
}
}


austauschst.

Ich habe die Funktion noch etwas angepasst. Die Links sollten jetzt auch bei mod_rewrite Support = 1 korrekt umgesetzt werden.


Gruß renard
davelee
Ich danke dir rengard biggrin.gif

LG David
renard
@cliff

Erst einmal muss ich Björn zustimmen. Die Umsetzung der Sprachen Konfiguration ist dir ziemlich gut gelungen.

Hast du vor Björns Vorschläge umzusetzen?

Ich hätte auch noch ein paar Änderungsvorschläge:
- Konfiguration mit Tabs
- Automatisierung des mod_rewrite (siehe Funktion weiter oben)

Ich bin gerade dabei, die beiden genannten Änderungen in das Modul einzubauen. Falls du Interesse hast, kann ich die veränderte Version hier posten und du schaust dir das Ganze mal an.


Gruß renard
cliff
Hallo, vielen Dank für die Kommentare, Änderungen und Vorschläge.

Überarbeite gerade das Sprachwechsel Modul und bau die Anregungen ein.

Wenn noch jemand noch Vorschläge hat bitte hier Posten.

@renard
Hab dir eine Nachricht gesendet.


Gruß cliff
andi
hab mir das ganze auch schnell angeschaut (mit dem obigen patch für mod-rewrite)

die ausgabe der links funktioniert für die standard-sprache nur korrekt, wenn in der projektkonfiguration «ID der Standardsprache in URL zeigen» auf 1 steht. möchte man bei der standardsprache keinen sprachkürzel haben und stellt ID der Standardsprache in URL zeigen» auf 0, so wird ein falscher link ausgegeben.

was mich noch interessiert: für was ist das {rewrite_key} in der modulkonfiguration gedacht?


gruss andi
amk
{rewrite_key} bildet vermutlich das sprachkürzel als solches ab.
andi
das problem ist, dass bei mir {rewrite_key} überhaupt nichts ausgibt und ich wissen wollte, unter welchen voraussetzungen {rewrite_key} etwas ausgibt wink.gif
renard
@andi

ZITAT
möchte man bei der standardsprache keinen sprachkürzel haben und stellt ID der Standardsprache in URL zeigen» auf 0, so wird ein falscher link ausgegeben.


Wie sieht denn der Link genau aus?


Gruß
renard

cliff
Es sollte das sprachkürzel ausgegeben werden tut es aber nicht. Hab den bug schon gefunden, es kommt heute noch eine neue version.

Gruß cliff
andi
ausgangslage ist eine seite mit zwei sprachen:

deutsch (kürzel für url-rewrite: de)
englisch (kürzel für url-rewrite: en)

bei «ID der Standardsprache in URL zeigen» auf 1 gibt das modul folgende zwei links aus:

www.domain.ch/de/startseite.html
www.domain.ch/en/home.html


bei «ID der Standardsprache in URL zeigen» auf 0 gibt das modul folgende zwei links aus:

www.domain.ch/startseite.html
www.domain.ch/home.html

wobei der korrekte link für die zweitsprache weiterhin «www.domain.ch/en/home.html» lauten müsste, oder sehe ich das falsch?
bjoern
Kommt drauf an. Wenn Du die URL manuel vergeben hast, dann ist das richtig. Hast Du sie automatisch vergeben lassen, sollte das nicht passieren.
andi
ZITAT(bjoern @ Mon. 3. December 2007, 12:09) *
Kommt drauf an. Wenn Du die URL manuel vergeben hast, dann ist das richtig. Hast Du sie automatisch vergeben lassen, sollte das nicht passieren.

wie meinst du das? via seiteninformation oder wie oder was? :-D ausser dem beiden kürzel für url-rewrite in der sprachkonfiguration habe ich nichts manuell eingestellt.
andi
ZITAT(andi @ Mon. 3. December 2007, 12:15) *
wie meinst du das? via seiteninformation oder wie oder was? :-D ausser dem beiden kürzel für url-rewrite in der sprachkonfiguration habe ich nichts manuell eingestellt.


cliff, wie siehts aus? gibt es schon bald eine neue version? rolleyes.gif
cliff
Neue Version wurde veröffentlicht.

Link zur neuen Version

@Forum-Admins bitte ins Archiv verschieben.

Gruß cliff
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.