[BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

[BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Horst1234 »

Hallo,
ich habe eben meine dt.Version via Sprachsynchronisation ins Englische dupliziert.
Das ging alles ganz gut. Nun aber habe ich folgendes Problem: ich will den engl.Seiten
eine andere Vorlage zuordnen, hierbei wird aber sofort auch der entsprechenden
deutschen Seite die gleiche Vorlage zugeordnet. Also kann ich entweder beiden
meine engl. oder meine dt. Vorlage zuordnen, aber eben nicht - wie natürlich beabsichtigt -
jeweils die eigene.
Hat jemand eine Idee, was da falsch läuft?
Grüße aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Faar »

Nun, synchron ist eben synchron, wie das Wort schon sagt :D

Du kannst aber in der Vorlage etwas programmieren, das Details (!) anders anzeigt, wenn eine andere Sprache angezeigt wird.
z.B. die englische Sprache heißt "en", dann holst du dir den Namen über eine Join-Abfrage und nimmst:

Code: Alles auswählen

if($langname = "en") echo ....;
elseif($langname = "de") echo ....;
else echo ...;
Einfacher geht es über die LanguageID, die steht in der Variablen $lang.
Aber manchmal möchte man auch den Namen.

Ein komplettes Template umzuswitchen hatte ich auch schon versucht, das geht nicht.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Horst1234 »

Hallo Faar,
das ist eigentlich sehr schade, aber synchron ist halt synchron ;-)
Wie würde denn der Code lauten, um im Layout im Bodytag automatisch je nach Sprache als id dann entweder "en" oder "de" auszugeben?
Lieben Dank schon mal aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Faar »

Hallo Horst,

den ganzen Code kann ich dir jetzt nicht machen, aber die SQL bei 4.8.x lautet so:

Code: Alles auswählen

SELECT ".$cfg["tab"]["lang"].".idlang,".$cfg["tab"]["lang"].".name FROM ".$cfg["tab"]["lang"].",".$cfg["tab"]["clients_lang"]." WHERE ".$cfg["tab"]["clients_lang"].".idclient='".$client."' AND ".$cfg["tab"]["lang"].".idlang = ".$cfg["tab"]["clients_lang"].".idlang ORDER BY ".$cfg["tab"]["lang"].".idlang ASC
Statt der $cfg Variablen kannst du für Dein Projekt auch die direkten Tabellen und Spalten-Namen eintragen.
Ich weiß jetzt aus dem Stegreif nicht, ob 4.9. noch die $cfg Variable hat.

Nach der Abfrage hast du id (idlang) und Name (name) der Sprache.
Wichtig ist, dass du die Sprachen nicht deutsch und englisch nennst, sondern de und en nach interantionaler Klassifizierung.
Dann passen die Namen überein mit dem was du willst.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Zuschauer »

Faar hat geschrieben:Wichtig ist, dass du die Sprachen nicht deutsch und englisch nennst, sondern de und en nach interantionaler Klassifizierung.
Dann passen die Namen überein mit dem was du willst.
Besser ist dann, über die Language-Klasse den SprachCODE zu holen.
Das ist schon die "internationale Klassifizierung" und wird bei den Sprachen als "Sprache" eingestellt.
Per SQL-Anweisung geht das auch, die Daten stehen in der con_properties.

Falls Code gewünscht wird, bitte nochmal anfragen, dann stelle ich da morgen was zusammen.
Jetzt mache ich Feierabend ;)

Gruß
Zuschauer
Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Horst1234 »

Hallo Faar,
da ich kein PHP- oder DB-Programmierer bin, ist mir deine Antwort leider ein Buch mit sieben Siegeln. Ich suche halt einen Code fürs Layout, der das kann, wenns das gibt.

Hallo Zuschauer,
wenn's nach deiner Idee einen solchen Code gibt, wär ich dir sehr dankbar dafür,

Herzliche grüße aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de
Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Zuschauer »

Hallo Horst,

per cApiClient Klasse:

Code: Alles auswählen

        $oLang = new cApiLanguage($lang);
        $sLang = strtolower($oLang->getField('language', 'code'))
per SQL-Anweisung:

Code: Alles auswählen

        $sql = 'SELECT value
                FROM ' . $cfg['tab']['properties'] . '
                WHERE ((itemtype="idlang")
                   AND (type="language")
                   AND (name="code")
                   AND (itemid=' . $lang . '))';
        $db->query($sql);
        $db->next_record();
        $sLang = $db->f('value');
Gruß
Zuschauer

PS: Der Code ist für Contenido 4.8 (wurde hier von Faar angesprochen), aber ich denke für die 4.9 wird er auch funktionieren.
Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Horst1234 »

Hallo Zuschauer,
wo trage ich diesen Code ein (in ein Modul?) und wie lese ich das dann im Layout aus?
Oder kommt dieser Code schon ins Layout, falls ja:wie?
herzlichen Dank,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de
Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Zuschauer »

Hallo Horst,

der Code ist als Ersatz für die von Faar gelieferte SQL-Anweisung zu sehen.
Die ID der Sprache hast du ja schon ($lang), und hiermit hast du in der Variable $sLang auch den Sprachcode (de, en, ...).
Wie du diesen Sprachcode dann einsetzt hat dir Faar weiter oben (06.10.2014 16:17) schon geschrieben:
Faar hat geschrieben:

Code: Alles auswählen

if($langname = "en") echo ....;
elseif($langname = "de") echo ....;
else echo ...;
Nur musst du hier dann statt $langname eben $sLang einsetzen :)

Gruß
Zuschauer
Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: [BUG 4.9.4.] Sprachensynchronisation und Seiten-Vorlagen

Beitrag von Horst1234 »

Hallo Zuschauer,
danke für deine Geduld, ich hab wohl auf der Leitung gestanden.
Jetzt hab ich's,
vielen Dank,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de
Antworten