Fork me on GitHub

Rapport de message :*
 

Re: Probleme de %20 - url rewriting

Titre du sujet : Re: Probleme de %20 - url rewriting
par Nikita sur 16/04/2010 16:01:00

je te montre comment je ferais, je pense que ça te donnera une piste pour les autres fichiers

- tu crées d'abord une fonction pour enlever les espaces, les accents (y a des modèles de ce genre de fonction dans certains modules)
dans modules/mytube/include/functions.php
à la fin du fichier tu rajoutes
function mytube_UrlSeoTitle($title=''$withExt=false)
{
    
/**
     * if XOOPS ML is present, let's sanitize the title with the current language
     */
     
$myts MyTextSanitizer::getInstance();
     if (
method_exists($myts'formatForML')) {
         
$title $myts->formatForML($title);
     }

    
// Transformation de la chaine en minuscule
    // Codage de la chaine afin d'éviter les erreurs 500 en cas de caractères imprévus
    
$title   rawurlencode(strtolower($title));

    
// Transformation des ponctuations
    //                 Tab     Space      !        "        #        %        &        '        (        )        ,        /        :        ;        <        =        >        ?        @        [                ]        ^        {        |        }        ~       .
    
$pattern = array("/%09/""/%20/""/%21/""/%22/""/%23/""/%25/""/%26/""/%27/""/%28/""/%29/""/%2C/""/%2F/""/%3A/""/%3B/""/%3C/""/%3D/""/%3E/""/%3F/""/%40/""/%5B/""/%5C/""/%5D/""/%5E/""/%7B/""/%7C/""/%7D/""/%7E/""/./""/%2A/");
    
$rep_pat = array(  "-"  ,   "-"  ,   ""   ,   ""   ,   ""   "-100" ,   ""   ,   "-"  ,   ""   ,   ""   ,   ""   ,   "-"  ,   ""   ,   ""   ,   ""   ,   "-"  ,   ""   ,   ""   "-at-" ,   ""   ,   "-"   ,  ""   ,   "-"  ,   ""   ,   "-"  ,   ""   ,   "-"  ,  ""  ,  ""  );
    
$title   preg_replace($pattern$rep_pat$title);

    
// Transformation des caractères accentués
    //                    ?        è        é        ê        ë        ç        à        â        ä        î        ï        ù        ü        û        ô        ö      ñ          é          à            è          ë            î         ê
    
$pattern = array("/%B0/""/%E8/""/%E9/""/%EA/""/%EB/""/%E7/""/%E0/""/%E2/""/%E4/""/%EE/""/%EF/""/%F9/""/%FC/""/%FB/""/%F4/""/%F6/""/%F1/""/%E3%A9/""/%E3%A0/""/%E3%A8/""/%E3%AB/""/%E3%AE/""/%E3%AA/");
    
$rep_pat = array(  "-""e"  ,   "e"  ,   "e"  ,   "e"  ,   "c"  ,   "a"  ,   "a"  ,   "a"  ,   "i"  ,   "i"  ,   "u"  ,   "u"  ,   "u"  ,   "o"  ,  "o",  "n""e""a""e""e""i""e" );
    
$title   preg_replace($pattern$rep_pat$title);
    
    
// Transformation des caractères accentués
    
$pattern = array("/%C3%AB/""/%C3%AE/");
    
$rep_pat = array( "e""i" );
    
$title   preg_replace($pattern$rep_pat$title);


    if (
sizeof($title) > 0)
    {
        if (
$withExt) {
            
$title .= '.html';
        }
        return 
$title;
    }
    else
        return 
'';
}


- pour appliquer au xoopstube_block_new_h.html

dans le fichier modules/mytube/blocks/xoopstube_top.php
tu remplaces
$videoload['id'] = intval($myrow['lid']);
$videoload['cid'] = intval($myrow['cid']);
$videoload['title'] = $title;


par
$urltitle mytube_UrlSeoTitle($title);
$videoload['id'] = intval($myrow['lid']);
$videoload['cid'] = intval($myrow['cid']);
$videoload['title'] = $title;
$videoload['urltitle'] = $urltitle;


et dans ton template
<{$xoops_url}>/modules/<{$videoload.dirname}>/regarder-<{$videoload.urltitle}>-<{$videoload.cid}>-<{$videoload.id}>.html

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

36 Personne(s) en ligne (27 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 36 | Plus ...