Probleme avec l'url rewriting - %20

Nouveau WRInaute
salut

j'ai un site "xoops" jutilise le module mytube : http://code.google.com/p/mcdonaldsstore/downloads/list pour les videos j'ai lu le tutoriel de webrankinfo et àa m'a bien aidé

mais j'ai un probleme des espaces dans les liens de mon site

voila ce que je fait :

Code:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^regarder-(.+)-([0-9]+)-([0-9]+)\.html$   /modules/mytube/singlevideo.php?cid=$2&lid=$3 [L]

la resultat : http://xxx.com/regarder-titre-de-la-video-15-565.html

et pour avoir des lien avec les titre de la video j'ai changé les liens des page (.html) de templates du modules
par ex dans lxoopstube_block_new_h
j'ai mis
Code:
<{$xoops_url}>/modules/<{$videoload.dirname}>/regarder-<{$videoload.title}>-<{$videoload.cid}>-<{$videoload.id}>.html

<{$videoload.title}> est titre de la video

mon probleme est que la plupart des videos continnent des espaces dans le titre par ex : titre de la video

ce qui donne l'url suivant
http://xxx.com/regarder-titre%20de%20la%20vidéo-15-565.html et les lettres accentuées sont affiché comme ils sont,

je voudrais savoir quesque je vais faire pour éviter les %20 de mes liens et comment remplacer les lettre accentuées avec ses équivalents non accentuées
 
WRInaute discret
lotanas a dit:
j'aimerais savoir ou je vais ajouter des codes pour résoudre çe probleme

merci


Bonjour ( j'ai déja t'envoyer dans l'autre post )

utilisée ce fonction dans le code php de votre page

Code: Tout sélectionner
<?php
function nettoyage($text)
{
$separator = "-";
$tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées
$replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalent non accentué
$text = strtr(strtolower($text),$tofind,$replac);
$text = ereg_replace("[^a-z0-9.]", $separator, $text);
while (strstr($text, $separator . $separator))
$text = str_replace($separator . $separator, $separator, $text);
if (substr($text, 0, 1) == $separator)
$text = substr($text, 1);
return(ereg_replace($separator . "$", "", $text));
}
?>



exemple :

$url="test de l'url avec espace éo.php";
$url=nettoyage($url) ; ------> test-de-l-url-avec-epsace-eo.php


aprés utilisé lien corriger <a href="<?php echo $url; ?>">votre txt </a>




Bonne journée
 
Nouveau WRInaute
merci beaucup pour l'aide

mais les page qui contiennent les lien sont .html

et je sais pas ou il faut ajouter le code

merci bcp
 
WRInaute passionné
Bonjour,

je ne connais pas ce module sous Xoops et pourtant... :roll:

De toute façon, la réécriture des liens ne se fait pas au niveau d'un template (le bout de code que tu as indiqué est issu d'un template) mais depuis le fichier PHP qui crée les smartys pour le template. Ce fichier se trouve (parmi d'autres) dans la répertoire du module.

Ensuite il faut intégrer la fonction indiquée mahdivitchee dans ce fichier (et surement d'autres pur éviter le duplicate content) puis créer une nouvelle variable smarty avec le lien réécrit.

De plus, ton lien "rewrité" ne doit plus contenir /modules/nomdumodule/ dans l'url, ton lien va donc ressembler à cela :
Code:
<{$xoops_url}>/regarder-<{$videoload.title}>-<{$videoload.cid}>-<{$videoload.id}>.html

Bon courage.

ps: perso, j'ai réécrit une bonne partie du kernel et surclassé de nombreuses classes de Xoops pour intégrer un url-rewriting correct.
 
Nouveau WRInaute
merci bcp
mais j'ai rien compris :s
stp si tu peux telecharger le module et me dit quesque je vais modifier.

merci encore une fois pour l'aide
 
Discussions similaires
Haut