[solved] Shopmodul mit lang_replace.php in 1.7.9

Hier bekommst Du deutschsprachigen Support bezüglich offizieller Module für phpwcms. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
hal
Posts: 66
Joined: Mon 9. Feb 2004, 22:07

[solved] Shopmodul mit lang_replace.php in 1.7.9

Post by hal »

Hallo,

Ich hatte eine Seite, in der ich den shop per lang_replace.php zweisprachig gestaltet habe (in 2013 - v1.6.5).

Nach dem Upgrade funktioniert das plötzlich nicht mehr. Die Werte in der config sind korrekt gesetzt - der Rest der Seite arbeitet auch perfekt in zweisprachig, auch das Menü in dem template, innerhalb dessen der shop angezeigt wird.

Nur alles, was mit dem shop selbst zu tun hat, Artikel, angepasstes de.html template läuft nicht mehr - es werden immer beide Texte angezeigt, meist auch noch mit tags.

Vielleicht weiss jemand Rat - ich wäre sehr dankbar...
Last edited by hal on Thu 20. Aug 2015, 18:50, edited 1 time in total.
nameless1
Posts: 878
Joined: Sun 27. Apr 2008, 23:22

Re: Shopmodul mit lang_replace.php in 1.7.9

Post by nameless1 »

das lang_replace greift bevor der shop ran kommt. zeig mal dein lang_replace code ober probiere gleich mal den aktuellen.
hal
Posts: 66
Joined: Mon 9. Feb 2004, 22:07

Re: Shopmodul mit lang_replace.php in 1.7.9

Post by hal »

Lang_replace code?

Meinst Du die Datei selber - da verwende ich die aus 1.7.9 - ist aber eh die gleiche wie die zuvor...

Oder den code in den templates?

[de]<a href="[PHP]echo rel_url(array('lang'=>'en'))[/PHP]" class="lang-de">english</a>[/de]
[en]<a href="[PHP]echo rel_url(array('lang'=>'de'))[/PHP]" class="lang-en">deutsch</a>[/en]

So hatte / hab ich den im template - und das hat bisher funktioniert.

Oder meintest Du ganz was anderes?
nameless1
Posts: 878
Joined: Sun 27. Apr 2008, 23:22

Re: Shopmodul mit lang_replace.php in 1.7.9

Post by nameless1 »

die php funktion in

Code: Select all

template\inc_script\frontend_render\lang_replace.php
ist für die ersetzung zuständig und enthält wahrscheinlich das corpus delicti
hal
Posts: 66
Joined: Mon 9. Feb 2004, 22:07

Re: Shopmodul mit lang_replace.php in 1.7.9

Post by hal »

Das ist die:

Code: Select all

<?php

// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------

	
// set allowed languages
// set $phpwcms['allowed_lang'] in conf.inc.php
// $phpwcms['allowed_lang']      = array('en', 'de', 'fr', 'es');
$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, 2) );
	$_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"]);

?>
nameless1
Posts: 878
Joined: Sun 27. Apr 2008, 23:22

Re: Shopmodul mit lang_replace.php in 1.7.9

Post by nameless1 »

ich habe es hinbekomme, komme aber an den shop nicht mehr ran, und bekomme es nicht mehr erinnert. ich würde das hier als grundlage nehmen um erstmal die replace funktionalität nochmal durchlaufen zu lassen. sollte quick and dirty eine lösung liefern
hal
Posts: 66
Joined: Mon 9. Feb 2004, 22:07

Re: Shopmodul mit lang_replace.php in 1.7.9

Post by hal »

Vielen Dank - wenn das auch nicht die Lösung war, so hat es mit doch draufgebracht.
Ich Depp habs selber schon mal hinbekommen - und vergessen.

Man fügt einfach ans Ende der frontend_render.php folgende zwei Zeilen (vor dem ?>) ein:

Code: Select all

$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 schon gehts - habe ich wiedergefunden, weil ich nochmal dem nachgegangen bin, was in Deinem Link stand...
Post Reply