smarty paginate rewrite

WRInaute occasionnel
Bonjour
je cherche depuis 3 jours un moyen pour rewriter les liens de mes pages
j'utilise la classe smarty paginat de phpinsider
mais lien en bas de page sont afficher du genre index.php?next=10
j'ai fouiller tous le code de la la classe et de ma page index.php sans trouvé un lien sous cette forme que je peut modifier
si quelqu'un est deja passé par la merci de me repondre
salutations
 
Nouveau WRInaute
Salut,

Il faut aller trifouiller dans le code de paginate, j'ai eu le même problème que vous, je suis donc allé voir le code de génération d'un lien : il génère des lien du type url ? UrlVar = item

J'ai donc repris dans chaque function first, last... de paginate (dans les plugin) et j'ai mis un caractere qui correspond à mon rewrite : url - UrlVar - item

Deux manipulations :
- placer dans URL mon url que je vais réécrire (ex: forum-question) et choisir une variable a ajouter (ex: next)
Code:
SmartyPaginate::setURL("forum-question-"); // dernier "-" remplace le "?"
SmartyPaginate::setUrlVar("next");
- puis modifier dans toutes les fonctions de paginate (dans plugins)
Code:
if($_item != $_curr_item) {
            $_this_url = $_url;
            //$_this_url .= (strpos($_url, '?') === false) ? '?' : '&'; // Je commente la partie gerant les url du type url?...
            //$_this_url .= SmartyPaginate::getUrlVar($_id) . '=' . $_item; // Je commente et modifie le caractère separateur
            $_this_url .= SmartyPaginate::getUrlVar($_id) . '-' . $_item; //=> J'ai choisi "-" comme caractère de séparation
            $_ret .= $_link_prefix . '<a href="' . str_replace('&', '&amp;', $_this_url) . '"' . $_attrs . '>' . $_text .'</a>'.$_link_suffix;

Pour finir dans mon htaccess j'ai donc :
Code:
 RewriteRule ^(forum-question)-next-([0-9])$   /index.php?page=forum&next=$2 [L]

Voila c'est une solution rapide, il serait possible de faire facilement une petite modification dans sa function pour prendre en compte les 2 systèmes, avec ou sans rewriting, mais je vous laisse le soin de le faire.

Si quelqu'un connais une autre solution ... je suis preneur!

A bientôt.
 
Discussions similaires
Haut