Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Caractères spéciaux dans les alias LISE, CustomGS, etc...
#1
Code :
----------------------------------------------

Cms Version: 2.2.7

Installed Modules:

AdminSearch: 1.0.4
CGExtensions: 1.60
CGSimpleSmarty: 2.1.8
CGSmartImage: 1.22.2
CMSContentManager: 1.1.6
CSSPreprocessor: 3.0-beta1
CmsJobManager: 0.1.2
CustomGS: 3.2
DesignManager: 1.1.4
ECB2: 1.3.1
ExaExternalizer: 0.6
FileManager: 1.6.6
FilePicker: 1.0.2
LISE: 1.3.1
MenuManager: 1.50.3
MicroTiny: 2.2.2
ModuleManager: 2.1.3
Navigator: 1.0.8
News: 2.51.3
Search: 1.51.4
TinyMCE: 3.2-beta5

Config Information:

php_memory_limit:
max_upload_size: 256000000
url_rewriting: mod_rewrite
page_extension: .html
query_var: page
auto_alias_content: true
locale:
set_names: true
timezone: Europe/Zurich
permissive_smarty: false

Php Information:

phpversion: 7.1.16
md5_function: On  (Vrai)
json_function: On  (Vrai)
gd_version: 2
tempnam_function: On  (Vrai)
magic_quotes_runtime: Off  (Faux)
E_ALL: 22519
E_STRICT: 0
E_DEPRECATED: 0
test_file_timedifference: Aucune différence de date du système trouvée
test_db_timedifference: Aucune différence de date du système trouvée
create_dir_and_file: 1
memory_limit: 256M
max_execution_time: 60
register_globals: Off  (Faux)
output_buffering: 4096
disable_functions:
test_remote_url: Valable
file_uploads: On  (Vrai)
post_max_size: 256M
upload_max_filesize: 256M
session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
session_use_cookies: On  (Vrai)
xml_function: On  (Vrai)
xmlreader_class: On  (Vrai)
check_ini_set: On  (Vrai)
curl: On

Performance Information:

allow_browser_cache: On  (Vrai)
browser_cache_expiry: 60
php_opcache: On  (Vrai)
smarty_cache: Off  (Faux)
smarty_compilecheck: Off  (Faux)
auto_clear_cache_age: On  (Vrai)
Server Information:

Server Software: Apache
Server Api: cgi-fcgi
Server Os: Linux 3.10.0-693.21.1.el7.x86_64 On  x86_64
Server Db Type: MySQL (mysqli)
Server Db Version: 10.0.34
Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté

EDIT (27.04.2018): J'ai ajouté le bloc information ci-dessus si besoin. Mais à mon avis ça ne change rien au fait que tout le monde peux reproduire (sur sa propre install vanilla de CMSMS) le problème que j'explique ci-dessous. J'en suis quasiment sûr, mais ça reste quand-même à confirmer.

----------------------------------------------------------

Bonjour! ça faisait un bail...

Comme je continue d'utiliser CMSMS pour mes projets et que ça fait un moment que je décortique les MAJ, je sais que depuis une certaine version (2.1.6 peut-être) le staff à décidé d'implémenter le support des caractères spéciaux dans les url de cmsms...

Super, sauf que ça affecte aussi la génération des alias dans les modules...

Jusqu'a un certain point je m'en sortais en appliquant mon petit workaround, c'est à dire que j'ouvrais le fichier misc.function.php (dans le dossier lib) et je modifiais la fonction munge_string_to_url qui à la base faisait un include sur un fichier replacement.php pour pouvoir remplacer tout les caractères spéciaux.

Code :
[== PHP ==]
function munge_string_to_url($alias, $tolower = false, $withslash = false)
{
  include(dirname(__FILE__) . '/replacement.php');
  $alias = str_replace($toreplace, $replacement, $alias);
  if ($tolower == true) $alias = mb_strtolower($alias);

  // remove invalid chars
  $expr = '/[^\p{L}_\-\.\ \d]/u';
  if( $withslash ) $expr = '/[^\p{L}_\.\-\ \d\/]/u';
  $tmp = preg_replace($expr,'',$alias);

  // remove extra dashes and spaces.
  $tmp = str_replace(' ','-',$tmp);
  $tmp = str_replace('---','-',$tmp);
  $tmp = str_replace('--','-',$tmp);

  return trim($tmp);
}

Donc voilà je me disais: ok ils ont pris une décision, ils n'ont pas l'air de vouloir revenir dessus donc je m'adapte...
(workaround vraiment pas pratique soit dit en passant... chaque MAJ du cms l'écrase bien sur)

Et puis un beau jour, une version plus récente de CMSMS fait que même mon workaround ne fonctionne plus (uniquement pour les alias LISE)...
Et là le problème c'est que je ne sais plus où chercher...

(petite précision: ma modif faisait donc en sorte d'empêcher que CustomGS ou LISE ne génère des accents dans les alias)

Ma vraie question maintenant c'est: Est-ce que c'est normal que leur décision d'intégrer les accents dans les urls affecte aussi la génération des alias un peu partout (système et modules)? Ou c'est moi qui bade?

Est-ce que ça pourrait être un problème de mod_rewrite dans les paramètres php ?

Si vous pouvez m'éclairer je vous en remercie


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)