Merci beaucoup pour tes conseils. Je vais mettre ce code en application. Juste une précision toutefois pour ne pas risquer de commettre une erreur importante. Si je comprends bien, ce code ne changera pas les urls existantes, mais il s’appliquera pour les nouvelles urls. Pour mettre à jour les url existantes, je dois intervenir sur la bdd. J’ai trouvé ce plugin sur spip qui semble effectuer la même action : http://www.spip-contrib.net/Plugin-Effacer-url-propres.
Est-ce qu’en utilisant ce plugin après avoir modifier le code de mon fichier, j’obtiendrais bien le même résultat qu’en intervenant sur la bdd ?
Merci encore pour ta disponibilité.
Camilou
From: « denisb » <denisb@laposte.net>
camilou wrote:
Merci pour ta réponse.
Toutefois, il m’est certainement possible d’utiliser non pas le titre de la rubrique, mais son descriptif pour l’url, comme je l’ai finalement fait pour les alt des images des logos de la rubrique.
Dans ce cas, je pourrais le renseigner plus précisément.
Voici ma problématique, le service marketing veut des titres concis, pas vraiment explicite en matière de référencement, moi, je veux une association de 2 ou 3 mots qui correspond au contenu de ma page. Pour illustrer ce que je cherche à faire… plutôt que « avantages », je voudrais « avantages de telle méthode »…
Merci encore
Camilou
pour qu’un article ait comme url_propre le descriptif de sa rubrique
(attention ! ne peut fonctionner que si l’article est unique
dans sa rubrique sinon tous les articles de la même rubrique
seront dotés de la même url_propre !)
et pour qu’une rubrique ait comme url_propre son propre descriptif
1- au cas où le descriptif de la rubrique n’est pas renseigné,
url_propre sera bâtie à partir du titre de l’objet
2- ne concerne que la création des nouvelles url_propres ;
les anciennes ne sont pas affectées
dans la fonction _generer_url_propre() de ecrire/url/propres.php,
aux alentours de la ligne 80,
modifier pour arriver à :
[…]
// Sinon, creer l’URL
include_spip(‹ inc/filtres ›);
include_spip(‹ inc/charsets ›);
/******** modification pour new_url /
if ($type == ‹ article ›) {
$srt = spip_query(« SELECT spip_rubriques.descriptif AS new_url,
spip_articles.titre AS old_url
FROM spip_rubriques, spip_articles
WHERE spip_rubriques.id_rubrique = spip_articles.id_rubrique
AND spip_articles.id_article = $id_objet »);
while($res = spip_fetch_array($srt)) {
if ($res[‹ new_url ›] != ‹ ›) {
$url = translitteration(corriger_caracteres(
supprimer_tags(extraire_multi($res[‹ new_url ›]))
));
}
else {
$url = translitteration(corriger_caracteres(
supprimer_tags(supprimer_numero(
extraire_multi($res[‹ old_url ›])
))
));
}
}
}
elseif ($type == ‹ rubrique ›) {
$srt = spip_query(« SELECT spip_rubriques.descriptif AS new_url,
spip_rubriques.titre AS old_url
FROM spip_rubriques
WHERE spip_rubriques.id_rubrique = $id_objet »);
while($res = spip_fetch_array($srt)) {
if ($res[‹ new_url ›] != ‹ ›) {
$url = translitteration(corriger_caracteres(
supprimer_tags(extraire_multi($res[‹ new_url ›]))
));
}
else {
$url = translitteration(corriger_caracteres(
supprimer_tags(supprimer_numero(
extraire_multi($res[‹ old_url ›])
))
));
}
}
}
else {
/* fin modification pour new_url /
$url = translitteration(corriger_caracteres(
supprimer_tags(supprimer_numero(
extraire_multi($row[‹ titre ›])
))
));
/* modification pour new_url /
}
/* fin modification pour new_url *******/
$url = @preg_replace(‹ ,[[:punct:][:space:]]+,u ›, ’ ', $url);
// S’il reste trop de caracteres non latins, ou trop peu
[…]
à la suite quoi, il te faudra modifier/mettre-à-jour les url_propres
existantes dans tes tables articles et rubriques