Recalcul de la page

J’ai un peu modifié une partie du fichier « inc-public.php3 ».
En fait, j’utilise des urls générées par SPIP qui sont plus « lisibles » sans être du type « articleX.html » tout simplement parce que je ne dispose pas du mod_rewrite. Je me sers donc d’une fonctionnalité d’Apache qui permet de mettre une référence à un script php au milieu de l’URL. C’est en théorie prévu par SPIP, j’ai créé mon propre fichier inc-urls et tout fonctionne sauf le bouton « Recalculer cette page »

Explication, pour recalculer la page, SPIP ne tient compte que du fichier appelé et pas de l’URL entière. Alors que dans mon cas, j’ai besoin de toute l’url, du moins ce qui se trouve après la « base » du site.

Solution, faire appel au fichier inc-urls.php3 et utiliser les fonctions de génération d’url pour envoyer celui-ci en paramètre à la classe Link.

En procédant de la sorte, le bouton « Recalculer cette page » fonctionne dans tous les cas de figure avec nimporte quel type d’url.

Peut-être pourriez-vous inclure cette modification dans les prochaines versions de SPIP?
(honnêtement, ça m’eviterait de faire les modifs à chaque fois et objectivement ça permet de généraliser cette fonctionnalité pour tout type d’url).

J’ai ajouté le code ci-dessous:
(P.S. pour ceux qui seraient intéressés par le script qui permet d’utiliser des urls lisibles sans mod_rewrite, prévenez-moi, je le posterai dans cette liste)

//
// Fonctionnalites administrateur (declenchees par le cookie)
//

$cookie_admin = $HTTP_COOKIE_VARS[‹ spip_admin ›];
$admin_ok = ($cookie_admin == ‹ admin ›);

if ($admin_ok AND !$flag_preserver) {

//appeler le fichier qui contient le fonctions de génération d’url
//
require(‹ inc-urls.php3 ›);

if ($id_article) {
bouton(« Modifier cet article ($id_article) », « ./ecrire/articles.php3?id_article=$id_article »);

//faire générer l’url pour chaque type (article, rubrique,…)
//
$recalculUrl = generer_url_article($id_article);

}
else if ($id_breve) {
bouton(« Modifier cette brève ($id_breve) », « ./ecrire/breves_voir.php3?id_breve=$id_breve »);
$recalculUrl = generer_url_breve($id_breve);
}
else if ($id_rubrique) {
bouton(« Modifier cette rubrique ($id_rubrique) », « ./ecrire/naviguer.php3?coll=$id_rubrique »);
$recalculUrl = generer_url_rubrique($id_rubrique);
}
else if ($id_mot) {
bouton(« Modifier ce mot-clé ($id_mot) », « ./ecrire/mots_edit.php3?id_mot=$id_mot »);
$recalculUrl = generer_url_mot($id_mot);
}
else if ($id_auteur) {
bouton(« Modifier cet auteur ($id_auteur) », « ./ecrire/auteurs_edit.php3?id_auteur=$id_auteur »);
$recalculUrl = generer_url_auteur($id_auteur);
}

//injecter l’url générée en paramètre de la fonction Link
//
$link = new Link("$recalculUrl");

$link->addVar(‹ recalcul ›, ‹ oui ›);
echo $link->getForm(‹ GET ›);
echo «  »;
echo « \n »;
}

D@vid

David Luyten.vcf (199 Bytes)

Chess.gif