Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Module _ Sprachauswahl-3 v1.1.0

Geschrieben von: cliff Sun. 21. October 2007, 14:32

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
 Sprachauswahl_3_v01_01_00.zip ( 4.57KB ) : 31

Geschrieben von: gunwalt Mon. 22. October 2007, 07:00

Ist das Modul eine komplette Neuentwicklung? Wenn ich nach dem changelog gehe, ja.

Geschrieben von: cliff Mon. 22. October 2007, 09:34

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

Geschrieben von: Tiggr Mon. 22. October 2007, 13:00

Tolle Sache, vielen Dank!

Wie siehts denn mit den verschiedenen mod_rewrites aus?

Tschüss
Tiggr (aka Marcus)

Geschrieben von: cliff Mon. 22. October 2007, 15:08

Werden auch unterstützt

Geschrieben von: Tiggr Mon. 22. October 2007, 21:35

Super, dann muss ich es bald mal testen!

DANKE!

Geschrieben von: davelee Tue. 27. November 2007, 18:50

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

Geschrieben von: andi Tue. 27. November 2007, 20:12

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

Geschrieben von: bjoern Wed. 28. November 2007, 10:34

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.

Geschrieben von: davelee Wed. 28. November 2007, 12:16

Danke für eure Antworten, da ich es nicht geschafft habe das Modul mit Mod-Rewirte 2 zum laufen zu bringen, habe ich jetzt http://forum.sefrengo.org/index.php?s=&showtopic=970&view=findpost&p=12546 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

Geschrieben von: renard Wed. 28. November 2007, 19:48

@davelee

Hast du beide Funktionen schon mal ausgetauscht?

Ich hab's probiert und es funktioniert.


Gruß renard

Geschrieben von: davelee Wed. 28. November 2007, 22:29

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

Geschrieben von: renard Thu. 29. November 2007, 09:42

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

Geschrieben von: davelee Thu. 29. November 2007, 12:54

Ich danke dir rengard biggrin.gif

LG David

Geschrieben von: renard Thu. 29. November 2007, 16:49

@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

Geschrieben von: cliff Thu. 29. November 2007, 18:49

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

Geschrieben von: andi Mon. 3. December 2007, 10:23

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

Geschrieben von: amk Mon. 3. December 2007, 10:42

{rewrite_key} bildet vermutlich das sprachkürzel als solches ab.

Geschrieben von: andi Mon. 3. December 2007, 10:56

das problem ist, dass bei mir {rewrite_key} überhaupt nichts ausgibt und ich wissen wollte, unter welchen voraussetzungen {rewrite_key} etwas ausgibt wink.gif

Geschrieben von: renard Mon. 3. December 2007, 11:10

@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


Geschrieben von: cliff Mon. 3. December 2007, 11:19

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

Geschrieben von: andi Mon. 3. December 2007, 11:49

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?

Geschrieben von: 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.

Geschrieben von: andi Mon. 3. December 2007, 12:15

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.

Geschrieben von: andi Sat. 8. December 2007, 07:51

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

Geschrieben von: cliff Mon. 10. December 2007, 14:02

Neue Version wurde veröffentlicht.

http://forum.sefrengo.org/index.php?showtopic=1632

@Forum-Admins bitte ins Archiv verschieben.

Gruß cliff

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)