PDA

Shop Support News Archive - Shopbetreiber News -> Forum : ECB: Language ID an von Joomla übernehmen


plasticman
04.11.2009, 10:54
Hallo Community,

folgendes Problem: habe einen Kunden der die Vorteile eines Joomla CMS aber auch einen richtigen Shop (unser erster ECB Shop) haben möchte. Die Bridges funktionieren alle nicht fehlerfrei, sodass wir zu dem Entschluss gekommen sind, CMS und Shop getrennt laufen zu lassen (den Shop im Unterordner "shop" auf dem Server) und über das Template, welches im Shop und im CMS identisch ist, zwischen Shop und CMS zu wechseln. So kann man beide Vorteile nutzen und der Kunde merkt gar nicht ob er jetzt im Shop oder im CMS ist.

Soweit das Konzept. Was mir jetzt zu bedenken gibt: die Webseite sowie der Shop soll zweisprachig werden. Damit haben wir das Problem, die language id zwischen beiden Systemen zu übergeben. Der Shop hat z.B. ?language=en und Joomla nutzt ?lang=en.

Gibt es eine Möglichkeit beim Shop aus der "?language=en" eine "?lang=en" zu machen? Das wäre perfekt. Ich hoffe das das nicht ein paar hundert Dateien sind, die da geändert werden müssen. Hat das schon mal jemand gemacht? Wäre echt schön, wenn mir jemand weiter helfen könnte. :smiley_emoticons_helpnew:

Danke im voraus
Gruß André

Autodidakt
04.11.2009, 11:25
includes/application_top.php:
// set the language
if (!isset ($_SESSION['language']) || isset ($_GET['language'])) {
****include (DIR_WS_CLASSES.'language.php');
****$lng = new language(xtc_input_validation($_GET['language'], 'char', ''));
****if (!isset ($_GET['language'])) {
********$lng->get_browser_language();
****}
****$_SESSION['language'] = $lng->language['directory'];
****$_SESSION['languages_id'] = $lng->language['id'];
****$_SESSION['language_charset'] = $lng->language['language_charset'];
****$_SESSION['language_code'] = $lng->language['code'];
}

Ansonsten kommt die Sprache noch per Get in den Bluegate-Urls.

Das kriegste schon hin ;)

msslovi0
04.11.2009, 11:28
Ich sehe das Problem gerade nicht. Bei Links vom CMS in den Shop übergibst du language und bei Links vom Shops ins CMS übergibst du lang. Warum willst du hier mit Gewalt was ändern?

plasticman
04.11.2009, 11:39
''>ZITAT(msslovi0 @ Nov 4 2009, 11:28) 202312
Ich sehe das Problem gerade nicht. Bei Links vom CMS in den Shop übergibst du language und bei Links vom Shops ins CMS übergibst du lang. Warum willst du hier mit Gewalt was ändern?
[/b]

Hi msslovi0,

weil beides nicht miteinander funktioniert. Englisch sprechender Kunde kommt ins deutsche CMS, klickt dann auf "Englisch", danach klickt er sich weiter zum Shop. Z.B. über ein Menübutton "Produkte". Dann kommt er auf einen deutschen Shop und er müsste dann nochmals seine Sprache wechseln. Schöner wäre es doch hier an der Stelle die ?lang zu übergeben, sodass er gleich im englischen Shop ist.

Sorry, die einen werden sagen, der wird sich schon durchklicken. Der eine Klick mehr oder weniger. Aber ich will einfach eine saubere Lösung anbieten. Bin da Perfektionist. Da muss alles stimmen.

Danke Autodidakt. Werde ich mal ausprobieren. Wenn es nur diese Stelle ist, dann krieg ich das sicher hin.

Gruß André

msslovi0
04.11.2009, 11:44
''>ZITAT(plasticman @ Nov 4 2009, 11:39) 202314
weil beides nicht miteinander funktioniert. Englisch sprechender Kunde kommt ins deutsche CMS, klickt dann auf "Englisch", danach klickt er sich weiter zum Shop. Z.B. über ein Menübutton "Produkte". Dann kommt er auf einen deutschen Shop und er müsste dann nochmals seine Sprache wechseln. Schöner wäre es doch hier an der Stelle die ?lang zu übergeben, sodass er gleich im englischen Shop ist. [/b]

Das ist mir schon klar und ich würde da auch nicht wollen, dass er nochmal die Sprache wechseln will. Aber du musst doch da eh einen Link reinbauen, der auf den Shop zeigt. Das dürfte eher manuell ablaufen, weil Joomla vom Shop gar nichts weiß. Den dann gleich mit dem richtigen GET-Attribut zu versehen (in Joomla) sollte doch nicht das Problem sein, oder (ich kenne Joomla zu wenig, um hier eine qualifizierte Aussage zu machen)?

Ohne Änderung am Core geht es übrigens mit mod_rewrite:

RewriteCond %{QUERY_STRING} lang=de
RewriteRule ^(. ) $1?language=de [QSA]
RewriteCond %{QUERY_STRING} lang=en
RewriteRule ^(. ) $1?language=en [QSA]

plasticman
04.11.2009, 11:49
Vielen Dank!

Das nenne ich doch mal Support. Ich denke wir müssen das jetzt einfach erstmal testen. Ich sag dann Bescheid, wenns geklappt hat (oder auch nicht). Wird noch 1-2 Tage dauern, bis wir soweit sind.

Herzlichen Dank nochmal.