Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Sprachauswahl-3 v1.3.0
Forum Sefrengo.org > Downloads > 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)
- Nicht verfügbare Sprachen im Backend anzeigen (ja/nein)
- Master Templates für alle Sprachen verwenden (ja/nein)
- Alle Sprachen anzeigen (Automatisch Erweitern) (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, renard


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.03.00 - released 10.12.2007
------------------------------------------------------------------------------------------------
+ Neue Einstellmöglichkeiten
  * Nicht verfügbare Sprachen im Backend anzeigen?
  * Master Templates für alle Sprachen verwenden?
  * Alle Sprachen anzeigen (Automatisch Erweitern)?
+ Master Template für alle Sprachen hinzugefügt.
+ Templatevariablen hinzugefügt {id} und {parity}.
^ Auswahl der Sprachen geändert auf Tabs.
# Fehler in Templatevariable {rewrite_key} behoben.


Current versionnumber is  01.01.00 - released 21.10.2007
------------------------------------------------------------------------------------------------
First public release


Klicken um den Anhang anzusehen
andi
hallo cliff

besten dank für die neue version. sieht sehr übersichlich aus. ich möchte noch einmal auf folgendes zurückkommen:
ZITAT(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?

in der aktuellen version hat sich zwar etwas verändert, für mich persönlich aber noch immer nicht korrekt:
bei «ID der Standardsprache in URL zeigen» auf 0 gibt das modul folgende zwei links aus:

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

wenn ich «ID der Standardsprache in URL zeigen» auf 0 habe, wäre die logische ausgabe jedoch:
www.domain.ch/startseite.html
www.domain.ch/en/home.html

habe ich eine einstellung übersehen, denke ich einfach zu weit oder fehlt da noch was? :-)


gruss andi
cliff
hallo andi

Welcher Apache mod_rewrite Support soll das sein?

Gruß cliff
andi
soll und ist Apache mod_rewrite 2 :-)
renard
Hallo andi,

ich werde mir die Funktion, die die entsprechenden Links generiert, noch mal ansehen und überarbeiten.

Ich hoffe, dass ich das bis Weihnachten noch hinkriege.


Gruß Renard
cliff
Hallo andi

Wieso hast du dann keine Ordnername in deinen Links drin?

z.B.:

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


Gruß cliff
andi
ZITAT(cliff @ Mon. 10. December 2007, 14:55) *
Wieso hast du dann keine Ordnername in deinen Links drin?

weil ich den ordner im beispiel vergessen habe...ändert aber nichts an der tatsache des «problems» wink.gif

gruss andi
bjoern
Habt Ihr euch eigentlich mal überlegt, was mit den ganzen tabs passiert, wenn es z.B. 50 verschiedene Sprachversionen gibt?
Taturo
hallo,
ich habe folgendes Problem: die Sprachauswahlbilder sollen ein rollover bekommen. Dazu habe ich im Template für verfügbare NICHT aktive Sprache die entsprechende onmouseover Funktion eingefügt:

QUELLTEXT
<a href="{url}" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','cms/img/nav/deutsch_over.gif',Image1)"><img src="cms/img/nav/deutsch.gif" name="deutsch" id="Image1" /></a>


Im Quellcode erscheinen dann Backslashes, das ganze sieht dann so aus und funktioniert natürlich nicht:
QUELLTEXT
<a href="index.php?idcatside=1&amp;lang=2" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage(\'Image1\',\'\',\'cms/img/nav/deutsch_over.gif\',Image1)"><img src="cms/img/nav/englisch.gif" name="deutsch" id="Image1" /></a>


Woran kann das liegen?
cliff
Hallo Taturo


Hab den Fehler gefunden.



In der Frontendausgabe des Moduls die drittletzte Zeile von

QUELLTEXT
echo $globaltemplate;


in

QUELLTEXT
echo stripslashes($globaltemplate);


ändern.


Dann funktioniertes.


Gruß cliff
Taturo
Hallo cliff,

Danke für die Hilfe. Werde es gleich mal ausprobieren.

Gruss, Taturo
gunwalt
ZITAT(bjoern @ Sun. 16. December 2007, 23:10) *
Habt Ihr euch eigentlich mal überlegt, was mit den ganzen tabs passiert, wenn es z.B. 50 verschiedene Sprachversionen gibt?


Guter Einwand. Funktioniert an der Stelle eigentluich dein snippet_replacement?
cliff
Hallo gunwalt


Ja, die Sprachauswahl funktioniert auch mit snippet_replacement Plugin


Bezüglich Tabs und Darstellung von z.B. 50 rolleyes.gif verschiedenen Sprachversionen hab ich mir auch schon was überlegt.

Die Darstellung wird man in der nächsten Version einstellen können Tabs oder Liste.



P.S.: Wenn wir gerade dran sind, suche noch Ideen für die nächste Version

Gruß cliff
bjoern
Das mit der Listenansicht finde ich eine gute Idee, standardmässig sollte aber die Reiteransicht aktiviert sein, das dürfte bei 90% aller Seiten ausreichend sein.

Schön fände ich es, wenn an zugewiesenen Reitern nicht nur Sprache 1,2,3... steht, sondern bei zugewiesenen Sprachen auch der Name (also deutsch, englisch,...). Das macht es übersichtlicher.

Bei den Reitern wäre es eine Überlegung, ob man für jede Sprache einstellen kann, ob nun das Mastertemplate verwendet werden soll, oder ein eigenes Template. Wenn man nachträglich was konfigurieren will, kann das sonst unerwünschte Effekte haben.

Desweiteren fände ich eine Option gut, die rekursiv prüft, ob ein Ordner online ist. Man kann ja einen Ordner offline schalten und in diesem Ordner wieder einen Unterordner anlegen, der nun aber online ist. Sefrengo würde dann diesen Ordner als online anzeigen. Das ist praktisch, oft aber nicht gewünscht. Ich hatte mal für ein Projekt eine Funktion geschrieben, welche alle Ordner rekursiv prüft und dann entsprechend true oder false ausgibt. Code anbei. smile.gif

QUELLTEXT
function sf_pageIsOnline($idcatside, $idlang = '') {
    global $db;

    // cast
    $idcatside = (int) $idcatside;
    $idlang = ($idlang == '') ? (int) $GLOBALS['lang'] : (int) $idlang;

    // validate casts
    if ($idcatside < 1 || $idlang < 1) {
        return false;
    }

    // check page - includes perms, timemanagement, online/offline switch
    $locked = ( $GLOBALS['perm']->have_perm(2, 'area_frontend', 0) ) ? '': 'AND (F.online & 0x04) = 0x00';
    
    $sql =  "SELECT
                IF ((F.online & 0x03) = 0x01 OR ((F.online & 0x02) = 0x02
                    AND (UNIX_TIMESTAMP(NOW()) BETWEEN F.start AND F.end)) ,'1' ,'0') AS online
            FROM
                ". $GLOBALS['cms_db']['cat_side'] . " D
                LEFT JOIN ". $GLOBALS['cms_db']['side_lang'] . " F USING(idside)
            WHERE
                D.idcatside = '$idcatside'
                AND F.idlang   = '$idlang' $locked";
       $db->query($sql);
    
    if (! $db->next_record()) {
        return false;
    } else if ( $db->f('online') == 0) {
        return false;
    }
    
        
    
    // check cat - include perms, online/ offline switch
    $locked = ( $GLOBALS['perm']->have_perm(2, 'area_frontend', 0) ) ? '': 'AND (C.visible & 0x04) = 0x00';

    $sql = "SELECT
                CA.parent, IF ( ((C.visible & 0x03) = 0x01) ,'1' ,'0') AS visible
            FROM
                ". $GLOBALS['cms_db']['cat'] . "  CA
                LEFT JOIN ". $GLOBALS['cms_db']['cat_side'] . "  D USING (idcat)
                LEFT JOIN  ". $GLOBALS['cms_db']['cat_lang'] . " C USING(idcat)
            WHERE
                D.idcatside = '$idcatside'
                AND  C.idlang   = '$idlang'  $locked";

    $db->query($sql);

    if (! $db->next_record()) {
        return false;
    } else if ( $db->f('visible') == 0) {
        return false;
    } else {
        // lookup parents
        $idcat = $db->f('parent');
        if ($idcat == 0) {
            return true;
        }
        do {
            $sql = "SELECT
                CA.parent, IF ( ((C.visible & 0x03) = 0x01) ,'1' ,'0') AS visible
            FROM
                ". $GLOBALS['cms_db']['cat_lang'] . " C
                LEFT JOIN  ". $GLOBALS['cms_db']['cat'] . " CA USING(idcat)
            WHERE
                CA.idcat = '$idcat'
                AND  C.idlang   = '$idlang'  $locked";

            $db->query($sql);
            if (! $db->next_record()) {
                return false;
            } else if ( $db->f('visible') == 0) {
                return false;
            } else {
                // next parent
                $idcat = $db->f('parent');
                if ($idcat == 0) {
                    return true;
                }
            }
                            
        } while ($idcat > 0);
    }
        
    
    return false;
}
amk
und es wäre gut (oder als option eine gute sache), wenn das "Template Sprachen (außen):" nicht ausgeben würde, wenn {content} leer ist ...
gunwalt
ZITAT
Link zu einer anderen Seite (idside / leer -> Link auf die gleiche Seite)

nur der Genauigkeit wegen, sollte es hier idcatside heissen
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.