Non, en fait, je n’ai que des pages rubriques dans lesquelles j’affiche l’unique article de la rubrique et je voudrais que l’url de cette page rubrique contenant l’article affiche le surtitre de l’article.
Si j’applique le code ci-dessous, cela ne marche page car la rubrique ne contient pas de surtitre, je pense…
Donc, pour les pages rubriques, je veux afficher le surtitre de l’article.
J’aimerai indiquer dans l’url le surtitre de l’article et non le titre de la rubrique
tu veux pour les pages rubrique le surtitre de la rubrique
et pour les pages article le surtitre de l’article
c’est ça ?
je crois comprendre qu’il me faut modifier le fichier propres.php.
dans la fonction _generer_url_propre() de ecrire/url/propres.php,
aux alentours des lignes 50,
modifier :
if ($type == ‹ auteur ›)
$champ_titre = ‹ nom AS titre ›;
else if ($type == ‹ site › OR $type==‹ syndic ›)
$champ_titre = ‹ nom_site AS titre ›;
else
$champ_titre = ‹ titre ›;
en :
if ($type == ‹ auteur ›)
$champ_titre = ‹ nom AS titre ›;
else if ($type == ‹ site › OR $type==‹ syndic ›)
$champ_titre = ‹ nom_site AS titre ›;
else if ($type == ‹ rubrique › OR $type==‹ article ›)
$champ_titre = ‹ surtitre AS titre ›;
else
$champ_titre = ‹ titre ›;
je n'ai que des pages rubriques dans lesquelles j'affiche l'unique article de la rubrique et je voudrais que l'url de cette page rubrique contenant l'article affiche le surtitre de l'article.
hum...
le plus simple serait sans aucun doute de passer le surtitre de l'article en titre de la rubrique (renseigner manuellement)
mais bon...
tu oublies mon post précédent et tu modifies dans propres.php
aux alentours de la ligne 80
[...]
// Sinon, creer l'URL
include_spip('inc/filtres');
include_spip('inc/charsets');
/******** modification pour surtitre *******/
if ($type == 'rubrique') {
$srt = spip_query("SELECT spip_articles.surtitre FROM spip_articles AS surtitre WHERE spip_articles.id_rubrique=$id_objet limit 0,1");
while($res = spip_fetch_array($srt)) {
$url = translitteration(corriger_caracteres(
supprimer_tags(supprimer_numero(extraire_multi($res['surtitre'])))
));
}
}
else {
/******** fin modification pour surtitre *******/
$url = translitteration(corriger_caracteres(
supprimer_tags(supprimer_numero(extraire_multi($row['titre'])))
));
/******** modification pour surtitre *******/
}
/******** fin modification pour surtitre *******/
$url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url);
// S'il reste trop de caracteres non latins, ou trop peu
[...]