on remplace les accents puis suppretion de tout ce qui n'est pas alphanumérique par un '-' (pas de traitement particulier pour !@?)
de plus j'ai noté que était supprimé par plxUtils::removeAccents, alors la aussi petite modification de la fonction :
function removeAccents($str,$charset='utf-8') {
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml|uro)\;#', '\1', $str);
$str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); # pour les ligatures e.g. 'œ'
$str = preg_replace('#\&[^;]+\;#', '', $str); # supprime les autres caractères
return $str;
}
dans la fonction title2url que tu a modifié je pense qu'il est préférable d'utiliser [:punct:] plutot que [:alnum:] car il faut supprimer également les caractères de ponctuation dans l'url
Caractères à supprimer:
. , " ' ? ! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } | ~
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
dans la regex écrite plus haut :
preg_replace('/[^[:alnum:]]+/',' ',$str);
signifie tous ce qui est différent (présence du "^") de alphanumérique ce qui supprimme de fait les ponctuations.
Réponses
"la vérification a échouéE " Faut enlever le E ^^
TCho, Hamtaro.
function title2url($str) {
$str = strtolower(plxUtils::removeAccents($str,PLX_CHARSET));
$str = preg_replace('/[^[:alnum:]]+/',' ',$str);
return strtr($str, ' ', '-');
}
function title2filename($str) {
$str = strtolower(plxUtils::removeAccents($str,PLX_CHARSET));
$str = preg_replace('/[^[:alnum:]]+/',' ',$str);
return strtr($str, ' ', '-');
}
on remplace les accents puis suppretion de tout ce qui n'est pas alphanumérique par un '-' (pas de traitement particulier pour !@?)
de plus j'ai noté que était supprimé par plxUtils::removeAccents, alors la aussi petite modification de la fonction :
function removeAccents($str,$charset='utf-8') {
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml|uro)\;#', '\1', $str);
$str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); # pour les ligatures e.g. 'œ'
$str = preg_replace('#\&[^;]+\;#', '', $str); # supprime les autres caractères
return $str;
}
partie en rouge
gok6tm
pour régler quelques bug :
- 'février' : http://forum.pluxml.org/viewtopic.php?id=1072
- "la vérification a échouéE "
et quelques autres cité ci-dessus
ce serait l'occasion de tester la fonction mise a jour !
dans la fonction title2url que tu a modifié je pense qu'il est préférable d'utiliser [:punct:] plutot que [:alnum:] car il faut supprimer également les caractères de ponctuation dans l'url
Caractères à supprimer:
. , " ' ? ! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } | ~
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
dans la regex écrite plus haut :
preg_replace('/[^[:alnum:]]+/',' ',$str);
signifie tous ce qui est différent (présence du "^") de alphanumérique ce qui supprimme de fait les ponctuations.
En effet j'avais pas fait attention au ^
Mes excuzes
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
il y a 2 petites coquilles au niveau de la pagination
Endroit où le bug est constaté :
fichier class.plx.show.php (ligne 688 et 696)
Description du bug :
Niveau description ça va être léger, il faut juste encoder la lettre à en à
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)