Url personnalisée pour un objet

Bonjour,
Je voudrais savoir comment créer une URL personnalisée pour un objet relié à une rubrique.
Ex: https:/monbeausite.fr/marubrique/monbelobjet.html
Actuellement, j’obtiens https:/monbeausite.fr/monbelobjet.html

Hello,

Si c’est un besoin général tu peux activer les URLs arborescentes dans ?exec=configurer_urls
Ça te donnera le même résultat, mais sans le .html à la fin.
Il me semble pas qu’il y ait une option ou une constante pour ajouter cette terminaison.

Après il est possible de créer son propre type d’URLs pour des besoins précis, mais c’est compliqué, surtout pour les URLs arbos. Si c’est juste pour ajouter un .html à la fin le jeu n’en vaut pas trop la chandelle.

Hello,
Cela ne fonctionne pas. Le html n’est pas nécessaire effectivement.
Si l’objet dépend d’une rubrique, je n’obtiens pas l’url arborescente. A moins que j’ai mal déclaré mon objet pour qu’il soit reconnu dans l’arborescence de SPIP, je ne sais pas, ce n’est pas particulièrement bien décrit dans la doc que ce soit dans programmer.spip.net ou dans les forums.
https:/monbeausite.fr/marubrique/monbelobjet
ou plus précisément

  • résultat
    https://www.interscience.com/malaxeur-laboratoire-minimix-100-p-cc?lang=fr

  • résultat attendu
    https://www.interscience.com/fr/produits/malaxeurs-de-laboratoire/malaxeur-laboratoire-minimix-100-p-cc

Bon alors pour les terminaisons .html j’ai menti :slight_smile:
C’est une option par define :

define ('_terminaison_urls_arbo', '.html');

Ensuite, effectivement les URLs arbos ne fonctionnent par défaut qu’avec certains types d’objets : articles, rubriques, brèves, etc.

Apparemment il y a moyen de prendre en compte d’autres types d’objets, ça doit marcher du moment que la table de l’objet possède un champ id_rubrique.

Pour cela il faut déclarer une globale de la sorte :

$GLOBALS['url_arbo_parents'] = array(
  'patate' => array('id_rubrique', 'rubrique'),
);

Attention c’est juste un exemple simple, en vrai il faut vérifier avant si la globale est déjà déclarée et faire un merge si c’est le cas.

Je n’ai pas testé tout ça, c’est juste à vue de nez en lisant le code : urls_etendues/arbo.php at master - urls_etendues - SPIP on GIT

Voilà, bons tests.

Merci, cela marche parfaitement. Les tests ont été court.

Cordialement,

Jacques

Le 17/11/2022 à 18:38, tcharlss via Discuter de SPIP a écrit :

[tcharlss] tcharlss https://discuter.spip.net/u/tcharlss
Novembre 17

Bon alors pour les terminaisons .html j’ai menti :slight_smile:
C’est une option par define :

|define (’_terminaison_urls_arbo’, ‹ .html ›); |

Ensuite, effectivement les URLs arbos ne fonctionnent par défaut
qu’avec certains types d’objets : articles, rubriques, brèves, etc.

Apparemment il y a moyen de prendre en compte d’autres types d’objets,
ça doit marcher du moment que la table de l’objet possède un champ
|id_rubrique|.

Pour cela il faut déclarer une globale de la sorte :

|$GLOBALS[‹ url_arbo_parents ›] = array( ‹ patate › =>
array(‹ id_rubrique ›, ‹ rubrique ›), ); |

Attention c’est juste un exemple simple, en vrai il faut vérifier
avant si la globale est déjà déclarée et faire un merge si c’est le cas.

Je n’ai pas testé tout ça, c’est juste à vue de nez en lisant le code
: urls_etendues/arbo.php at master - urls_etendues - SPIP on GIT
https://git.spip.net/spip/urls_etendues/src/branch/master/urls/arbo.php#L65-L70

Voilà, bons tests.


Voir le sujet
https://discuter.spip.net/t/url-personnalisee-pour-un-objet/164986/4
ou répondre à ce courriel pour répondre.

Pour vous désabonner de ces courriels, cliquez ici
https://discuter.spip.net/email/unsubscribe/cd107a3d917a5a9aa666f04c968d09255fb141861656dcac31ba002fd7207ac7.

Merci,