Hallo Community.
Hat schonmal jemand versucht Sprachen anzulegen deren Code einen Unterstrich beinhaltet ?,
also anstatt
en, en_us (für US-Englisch)
es, es_mx (für Mexikanisches Spanisch)
fr, fr_ca (für kanadisches Französisch)
Das verweigert der Shop nämlich wegen der Funktion
xtc_input_validation();
In
/includes/modules/set_language_sessions.php wird folgendes gemacht:
$_GET['language'] = xtc_input_validation($_GET['language'], 'char', '');
und in
/inc/xtc_input_validation.inc.php leider das
case 'char':
$replace_param='/[^a-zA-Z]/';
break;;
was den Unterstrich rausfiltert, die Sprache wird nicht gefunden und der Shop fällt auf die DEFAULT_LANGUAGE zurück.
Ich halte das ehrlich gesagt für einen Bug, denn Codes wie fr_be, fr_ch müssen möglich und können auch seo-relavant sein.
Weiterhin gibt es noch einen Bug, einer der nicht von Meinungen abhängt, der mir nur auffiel weil ich erstgenannten Bug begutachtet habe.
Wir finden in
/includes/modules/set_language_sessions.php folgenden Code:
if (isset($_GET['language'])) { $_GET['language'] = xtc_input_validation
($_GET['language'], 'char', ''); $lng = new language
($_GET['language']); } elseif (isset($_SESSION['language'])) { $lng = new language
(xtc_input_validation
($_SESSION['language'], 'char', '')); } else { $lng = new language
(xtc_input_validation
(DEFAULT_LANGUAGE
, 'char', '')); if (USE_BROWSER_LANGUAGE
== 'true') { $lng->get_browser_language(); } } Wenn als im
elseif als Parameter für die Instantiierung der language-Klasse
$_SESSION['language'] benutzt wird kann das nicht funktionieren.
$_SESSION['language'] ist ja auf das Directory gesetzt, also "german", "english" usw. und nicht auf den Language-Code, also 'de', 'en' usw..
Die Klasse verlangt im __construct() jedoch den Language-Code.
Das fiel bislang nur deshalb nicht auf weil der Fall der Kondition der umgebenden if-Clause
isset($_SESSION['language']) && !isset($_SESSION['language_charset'] so gut wie nie vorkommen dürfte, also daß zwar
$_SESSION['language'] nicht jedoch
$_SESSION['language_charset'] gesetzt wäre.
Es wäre nett wenn zumindest eine Person meine Gedankengänge nachvollziehen würde (jeder kann sich ja irren).
Gruß,
noRiddle
*NACHTRAG*
Habe dazu ein Ticket
#1524 erstellt.
Linkback: https://www.modified-shop.org/forum/index.php?topic=39499.0