Probleme mit NAV_LIST_UL, Servervariable
-
- Posts: 33
- Joined: Thu 18. Mar 2010, 14:23
Probleme mit NAV_LIST_UL, Servervariable
Hallo,
Ich bin ein Anfänger kurz vor dem Verzweifeln :-/ Für euch ist das sicher ziemlich easy.
Also: meine Startseite soll zweisprachig verzweigen
de: index_de
en: index_en
Nun möchte ich, dass alle Menülinks - habe ein Menü mit {NAV_LIST_UL:F,ID,,act_path,active} - ein _de bzw. _en angehängt bekommen.
Default wäre immer das _de.
(Sinn dahinter ist, dass der Shop auch mehrsprachig werden soll und ich über den Link die Sprache übergeben will.)
Wie kann ich eine Servervariable setzen und wieder abrufen und wie kann ich das Menü modifizieren?
1000 Dank!
Ich bin ein Anfänger kurz vor dem Verzweifeln :-/ Für euch ist das sicher ziemlich easy.
Also: meine Startseite soll zweisprachig verzweigen
de: index_de
en: index_en
Nun möchte ich, dass alle Menülinks - habe ein Menü mit {NAV_LIST_UL:F,ID,,act_path,active} - ein _de bzw. _en angehängt bekommen.
Default wäre immer das _de.
(Sinn dahinter ist, dass der Shop auch mehrsprachig werden soll und ich über den Link die Sprache übergeben will.)
Wie kann ich eine Servervariable setzen und wieder abrufen und wie kann ich das Menü modifizieren?
1000 Dank!
Re: Probleme mit NAV_LIST_UL, Servervariable
Hi,
das hier hast du gelesen?
Multilingual/Multidomain
Du verwendest dazu i.d.R. zwei Templates, eins für den DE- und eins für de EN Teil.
Knut
das hier hast du gelesen?
Multilingual/Multidomain
Du verwendest dazu i.d.R. zwei Templates, eins für den DE- und eins für de EN Teil.
Möchtest du die Sprache per GET in der URL übergeben?... und ich über den Link die Sprache übergeben ...
Innerhalb von phpwcms oder allgemein?Wie kann ich eine Servervariable setzen und wieder abrufen ...
Was möchtest du am Menü modifizieren?... wie kann ich das Menü modifizieren
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
-
- Posts: 33
- Joined: Thu 18. Mar 2010, 14:23
Re: Probleme mit NAV_LIST_UL, Servervariable
Also, um es verständlicher zu machen.
Meine Startseite soll zweisprachig verzweigen
de: index_de
en: index_en
in zwei verschiedene Sprachbäume. Das ist kein Problem.
Der Shop wird beispielsweise bisher aufgerufen mit /index.php?shop
In Zukunft wünsche ich den Aufruf mit /index.php?shop&de oder /index.php?shop&en..
Die Navigation läuft allerdings nicht über direkte Links, sondern über NAV_LIST_UL.
Wie kann ich den Shop-Link bzw. alle Links automatisch modifizieren, so dass _en oder _de angehängt werden?
Ziel ist das hier: http://forum.phpwcms.org/viewtopic.php?f=10&t=18191
scheitert aber an den Fragen im 1. Post.
Meine Startseite soll zweisprachig verzweigen
de: index_de
en: index_en
in zwei verschiedene Sprachbäume. Das ist kein Problem.
Der Shop wird beispielsweise bisher aufgerufen mit /index.php?shop
In Zukunft wünsche ich den Aufruf mit /index.php?shop&de oder /index.php?shop&en..
Die Navigation läuft allerdings nicht über direkte Links, sondern über NAV_LIST_UL.
Wie kann ich den Shop-Link bzw. alle Links automatisch modifizieren, so dass _en oder _de angehängt werden?
Ziel ist das hier: http://forum.phpwcms.org/viewtopic.php?f=10&t=18191
scheitert aber an den Fragen im 1. Post.
Last edited by littleredhood on Tue 13. Dec 2011, 10:21, edited 2 times in total.
-
- Posts: 33
- Joined: Thu 18. Mar 2010, 14:23
Re: Probleme mit NAV_LIST_UL, Servervariable
Ich nehme an, die Servervariable ist eher eine Sessionvariable?
Re: Probleme mit NAV_LIST_UL, Servervariable
Hallo
der Shop erkennt das zunächst mal nicht! Du musst die Routine die das macht nochmal inkludieren oder kopieren und in den shop Bibliotheken einlagern. Dann hast du allerdings nur die Spracherkennung für den Content und keine Links, Währungen und all solche Sachen verändert. Das ist ein größeres Vorhaben.
Ich habe sowas mal gemacht und mich dann dazu entschieden Magento das phpwcms Template überzustülpen
Ging schneller !
der Shop erkennt das zunächst mal nicht! Du musst die Routine die das macht nochmal inkludieren oder kopieren und in den shop Bibliotheken einlagern. Dann hast du allerdings nur die Spracherkennung für den Content und keine Links, Währungen und all solche Sachen verändert. Das ist ein größeres Vorhaben.
Ich habe sowas mal gemacht und mich dann dazu entschieden Magento das phpwcms Template überzustülpen
Ging schneller !
-
- Posts: 33
- Joined: Thu 18. Mar 2010, 14:23
Re: Probleme mit NAV_LIST_UL, Servervariable
Ja, aber wie könnte ich das umsetzen?
Ich muss dem Shop ja "nur" die Sprachkennung übergeben. Aber wie? irgendeinen Weg wird es ja wohl geben?
Ich muss dem Shop ja "nur" die Sprachkennung übergeben. Aber wie? irgendeinen Weg wird es ja wohl geben?
Re: Probleme mit NAV_LIST_UL, Servervariable
Klar, hat doch Knut oben schon erwähnt, per zB GET Variable in der SHOP-URL
Das muss mit isset() und anderen Methoden sicherheitstechnisch abgedichtet werden, man sollte also wissen was man tut. Beschreiben lässt sich das ganze Vorgehen nicht bis ins kleinstze Detail, das würde Stunden dauern.
Das muss mit isset() und anderen Methoden sicherheitstechnisch abgedichtet werden, man sollte also wissen was man tut. Beschreiben lässt sich das ganze Vorgehen nicht bis ins kleinstze Detail, das würde Stunden dauern.
Re: Probleme mit NAV_LIST_UL, Servervariable
Deshalb ist das auch nirgendwo beschrieben, denn jede Anwendungsfall ist anders gelagert und verlangt unterschiedliche Betrachtungswinkel was die Sicherheit angeht....sicherheitstechnisch abgedichtet werden, man sollte also wissen was man tut.
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Re: Probleme mit NAV_LIST_UL, Servervariable
Wenn ich in der Datei frontend.render.php des shop-moduls Folgendes unten einfüge (gaaanz unten, vor dem schließenden ?> )
dann habe ich doch auch das shop-menu zweisprachig...
Und weil das per Cookie fixiert wird, bleibt die Sprache auch erhalten...
...wenn ich mich nicht irre
Code: Select all
//language replacement copied/added RCS
//$language_default = 'en';
$language_current = $language_default;
$language_cookie_duration = 60*60*24*365; // 1 year
if(isset($_GET['lang'])) {
$language_current = strtolower( substr($_GET['lang'], 0, 5) );
$_SESSION['phpwcmsFrontendLanguage'] = $language_current;
setcookie('phpwcmsFrontendLanguage', $language_current, time()+$language_cookie_duration, '/' );
} elseif(isset($_SESSION['phpwcmsFrontendLanguage'])) {
$language_current = $_SESSION['phpwcmsFrontendLanguage'];
} elseif(isset($_COOKIE['phpwcmsFrontendLanguage'])) {
$language_current = $_COOKIE['phpwcmsFrontendLanguage'];
}
if(!in_array($language_current, $phpwcms['allowed_lang'])) {
$language_current = $language_default;
$_SESSION['phpwcmsFrontendLanguage'] = $language_current;
setcookie('phpwcmsFrontendLanguage', $language_current, time()+$language_cookie_duration, '/' );
}
// init language replacements
$language_regexp = array( 'search' => array(), 'replace' => array() );
// set all language replacements now
foreach($phpwcms['allowed_lang'] as $lang) {
$language_regexp['search'][$lang] = '/\['.$lang.'\](.*?)\[\/'.$lang.'\]/is';
$language_regexp['replace'][$lang] = $lang == $language_current ? '$1' : '';
}
$content['all'] = preg_replace($language_regexp['search'], $language_regexp['replace'], $content['all']);
$content["pagetitle"] = preg_replace($language_regexp['search'], $language_regexp['replace'], $content["pagetitle"]);
?>
Und weil das per Cookie fixiert wird, bleibt die Sprache auch erhalten...
...wenn ich mich nicht irre
It's mostly all about maintaining two or three customer's sites Still supporter for the band Mykket Morton. Visit Mykket Morton on FB. Listen Mykket Morton and live videos on youtube.
Now building a venue for young artists to get wet on stage, rehearsal rooms, a studio, a guitar shop - yes I'm going to build some guitars.
Now building a venue for young artists to get wet on stage, rehearsal rooms, a studio, a guitar shop - yes I'm going to build some guitars.
-
- Posts: 33
- Joined: Thu 18. Mar 2010, 14:23
Re: Probleme mit NAV_LIST_UL, Servervariable
Claus, das liest sich toll.
Und wie setze ich die Variable SESSION['phpwcmsFrontendLanguage']?
Bin leider echt noch Anfänger .-/
Und wie setze ich die Variable SESSION['phpwcmsFrontendLanguage']?
Bin leider echt noch Anfänger .-/
Re: Probleme mit NAV_LIST_UL, Servervariable
Die brauchst du doch nicht setzen, die setzt das script sobald in der URL die Variable "lang" gesetzt wird, oder ein vorhandener cookie eingelesen wird.littleredhood wrote:Claus, das liest sich toll.
Und wie setze ich die Variable SESSION['phpwcmsFrontendLanguage']?
Bin leider echt noch Anfänger .-/
...
Re: Probleme mit NAV_LIST_UL, Servervariable
Hab' ich glatt überlesen! In dem Thread steht es doch piekfein beschrieben, wie das geht. Hatte mich vorhin kurzsichtig und vorschnell nur auf das nahe Liegende fixiert.... Lies das noch mal, dann wird Dir das schon klar werden.littleredhood wrote:Ziel ist das hier: viewtopic.php?f=10&t=18191
scheitert aber an den Fragen im 1. Post.
What shall I say: Du endest unweigerlich mit einem zwei(mehr-)sprachigen Shop
It's mostly all about maintaining two or three customer's sites Still supporter for the band Mykket Morton. Visit Mykket Morton on FB. Listen Mykket Morton and live videos on youtube.
Now building a venue for young artists to get wet on stage, rehearsal rooms, a studio, a guitar shop - yes I'm going to build some guitars.
Now building a venue for young artists to get wet on stage, rehearsal rooms, a studio, a guitar shop - yes I'm going to build some guitars.
-
- Posts: 33
- Joined: Thu 18. Mar 2010, 14:23
Re: Probleme mit NAV_LIST_UL, Servervariable
Schon mal vielen Dank!
Jetzt noch die Masterfrage:
Wie bringe ich meine Navigation NAV_LIST_UL dazu, ?lang=de oder ?lang =en anzuhängen?
Jetzt noch die Masterfrage:
Wie bringe ich meine Navigation NAV_LIST_UL dazu, ?lang=de oder ?lang =en anzuhängen?
Re: Probleme mit NAV_LIST_UL, Servervariable
Das geht dann ganz von alleine, wenn Du http://forum.phpwcms.org/viewtopic.php?f=10&t=18191 durchgeackert hast!
In diesem Tutorial möchte ich mein CMS für zwei Sprachen vorbereiten. Dafür muss man ein paar Modifikationen in den core files des shops und in der Konfiguration von phpwcms vornehmen.
It's mostly all about maintaining two or three customer's sites Still supporter for the band Mykket Morton. Visit Mykket Morton on FB. Listen Mykket Morton and live videos on youtube.
Now building a venue for young artists to get wet on stage, rehearsal rooms, a studio, a guitar shop - yes I'm going to build some guitars.
Now building a venue for young artists to get wet on stage, rehearsal rooms, a studio, a guitar shop - yes I'm going to build some guitars.
Re: Probleme mit NAV_LIST_UL, Servervariable
Auf die Schnelle ohne es großartig getestet zu haben:Wie bringe ich meine Navigation NAV_LIST_UL dazu, ?lang=de oder ?lang =en anzuhängen?
Im Template die Navigation markieren um mit dem Script gezielt in der Navigation suchen zu können:
Code: Select all
<!--NAVI01_START-->{NAV_LIST_UL:........}<!--NAVI01_END-->
Code: Select all
<?php
/**
* *****************************************************************************
* Expand the links in NAV_LIST_UL with a language tag.
* E.g.: index.php?category01&lang=EN
* Erweitert die Links der NAV_LIST_UL mit einem Sprach TAG
* Z. Bsp.: index.php?category02&lang=DE
*
* V1.0 14.12.11 K.Heermann (flip-flop)
*
* - The navi area to be searched is marked in the template with:
* - Der Navigationsbereich in dem gesucht werden soll wir gekennzeichnet durch:
* Wrapper: <!--NAVI01_START-->{NAV_LIST_UL:P,0....}<!--NAVI01_END-->
*
* - Set the base category for each language in script in "Custom var:".
* - Setzen der Basiskategorie fuer jede Sprache im Script in "Custom var:".
*
* Each link in the navigation will be enhanced when the base ID is available.
* Jeder Link in der Navigation wird erweitert wenn die Basis-ID vorhnaden ist.
*
* *****************************************************************************
*/
// ----------------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
die("You Cannot Access This Script Directly, Have a Nice Day.");}
// ----------------------------------------------------------------------------
if (strpos($content['all'], '<!--NAVI01_START-->')) { // Wrapper availabe/vorhanden?
// Catch the NAVI01 area // Den Navigationsbereich ausschneiden umd abholen
preg_match_all('/\<!--NAVI01_START--\>(.*?)\<!--NAVI01_END--\>/ism',$content['all'], $navi);
if ($navi[1][0]) { // is there any content? // Ist Inhahlt vorhanden?
$lang = '';
$de_root = 1; // Custom var: root category id language DE // Basiskategorie-ID fuer DE
$en_root = 7; // Cuatom var: root category id language EN // Basiskategorie-ID fuer EN
// assign language // Sprache zuweisen
if (isset($GLOBALS['LEVEL_ID'][1]) AND $GLOBALS['LEVEL_ID'][1] == $de_root) $lang = 'DE';
elseif (isset($GLOBALS['LEVEL_ID'][1]) AND $GLOBALS['LEVEL_ID'][1] == $en_root) $lang = 'EN';
if (!empty($lang)) { // is a language set? // Sprachzuweisung vorhanden?
// rewrite all links // Aendere alle Links
if ($phpwcms['rewrite_url']) // rewrite set to .phtml? // Wird die URL umgeschrieben nach .phtml?
$navi[1][0] = preg_replace('/\<a href="(.*?).phtml"(.*?)/','<a href="$1&lang='.$lang.'.phtml"$2',$navi[1][0]);
else //rewrite not set // Kein Umschreiben
$navi[1][0] = preg_replace('/\<a href="index.php\?(.*?)"(.*?)/','<a href="index.php?$1&lang='.$lang.'"$2',$navi[1][0]);
}
// Insert back into html source // Fuege den geaenderten Inhalt an die alte Postion ein
$content['all'] = preg_replace('/\<!--NAVI01_START--\>(.*?)\<!--NAVI01_END--\>/ism',$navi[1][0],$content['all']);
}
}
// ----------------------------------------------------------------------------
?>
Die Navi wird einfach mit einem frontend_render Script ausgeschnitten, bearbeitet und wieder an der alten Stelle eingesetzt.
Als Markierung für das Ausschneiden der NAIV (Wrapper) dienen die beiden Kommentare
Code: Select all
<!--NAVI01_START-->{NAV_LIST_UL:.......}<!--NAVI01_END-->
Code: Select all
$de_root = 1; // Custom var: root id language DE
$en_root = 7; // Cuatom var: root id language EN
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )