URLs éditables

Édition libre des URLs

L’auteur original de ce plugin est Stéphane Laurent. Merci à lui

Ce plugin vise à combler un manque de SPIP 2.1 : éditer par soi-même les adresses des rubriques, articles, brèves, mots-clés, auteurs et sites syndiqués. Cette fonctionnalité est intégrée d’une façon native dans SPIP 3 ( voir menu configuration > panneau de configuration des URLs) rendant donc ce plugin obsolète.

Techniquement ce plugin n’ajoute aucune table ni champs. Le plugin ne fait que travailler avec la table spip_urls. Vous pouvez donc le tester sans crainte.

Installation

L’installation se fait comme les autres plugins. Le plugin requiert config (cfg)

Il faut aussi

  • Dans le panneau configuration : avoir activé les URLs propres ou URLs libres ou URLs arborescentes nouveautés version 0.6.0
  • Avoir un .htaccess actif

Configuration (cfg)

Permet de choisir votre préférence pour la formatage des adresses que vous soumettez

  • longueur minimale au-dessous, l’url n’est pas acceptée. Par défaut 3 caractères
  • longueur maximale la longueur maximum. Au delà la chaîne est coupée. Par défaut 35 caractères, ne peut pas dépasser 255 caractères.
  • séparateur le caractère de remplacement des blancs. Par défaut « - »
  • filtre expérimental passe la chaine par une fonction PHP. Par exemple, ucfirst, strtoupper ...

Fonctionnement

Sur les articles, rubriques, brèves, mots, auteurs, sites, événements, un panneau vous permet d’ajouter ou de supprimer l’URL publique.

Actuellement, il est possible pour un même objet d’avoir plusieurs URLs. Attention de ne pas en abuser pour éviter le Duplicate Content

Les URLs soumises sont passées aux filtres de SPIP qui les réécrit pour avoir des URLs compatibles notamment par rapport aux caractères accentués et spéciaux.

Lorsque vous validez un article, une brève et si vous n’avez pas renseigné au préalable d’adresse, SPIP se comporte comme avant et attribue automatiquement une adresse que vous pourrez de toute façon modifier ou supprimer par la suite.

TODO

  • Affiner les droits (pour l’instant seuls les administrateurs peuvent éditer les URLs)
  • Rendre paramétrable
    • Ajouter une option « Autoriser ou non pour un objet d’avoir plusieurs URLs »
    • ....

Le plugin est sur la zone, n’hésitez pas à contribuer

Discussion

10 discussions

  • Bonjour,
    J’ai testé le plugin, qui fonctionne à merveille. Merci au concepteur.
    Mais, pour moi, il reste le problème de redirection des anciennes URL vers les nouvelles. J’ai dans un premier temps conservé l’ancienne url et installé un link rel=canonical, mais ce dernier renvoie vers la nouvelle URL, ne réglant donc pas le pb de duplicate content induit par cette méthode.
    Plus généralement, je trouverais plus propre de passer par une redirection 301 pour rediriger systématiquement les anciennes url vers les nouvelles. Quelqu’un saurait-il comment procéder ? Je suis très novice en la matière.
    Merci

    Répondre à ce message

  • 2

    Bonjour,

    J’ai un problème assez particulier pour lequel je ne trouve pas de solution ni des informations pertinentes :

    J’utilise le plugin « menu de langues avec liens » qui fonctionnait très bien partout, entre articles, entre rubriques (traduction d’articles autrement, traduction de rubrique autrement).

    Mais au moment d’ajouter les « urls propres en mode arbo » et en ayant un fonctionnement approprié, je trouve que la traduction entre articles ne marche plus et lorsque je clique sur le lien pour changer la langue, je suis bien redirigé vers la langue choisie, mais je suis envoyé vers la rubrique et non vers l’article souhaité.

    Je serais très reconnaissant si quelqu’un a une piste ou solution.

    J’ai testé avec tous les autres modes : par défaut, propres, propres 2 et la traduction entre articles marche bien. Avec « arbo » il y a la dernière partie du lien qui manque, ça s’arrête à la rubrique.

    Merci

    Répondre à ce message

  • 2

    Bonjour,

    Je souhaite ajouter tout un ensemble d’url sur des articles SPIP. Le plugin m’est très utile mais je suis en SPIP 3 et il n’est pas compatible malheureusement !!

    Quelle est la meilleure solution pour spip 3 ?

    Est ce qu’il y aurait une autre solution à part de toutes les ajoutés manuellement dans le .htaccess ?

    merci d’avance,

    • Bonjour,

      Egalement, je suis en SPIP 3 et j’aimerais bien bénéficier de ce superbe plugin.

      et merci erational

    • La fonctionnalité d’édition des URLs est intégrée nativement dans SPIP 3. Il suffit d’aller dans le panneau de configuration des URLs et d’activer la configuration avancée. Il y a alors un formulaire d’édition des URLs sur chaque article,rubrique,...

    Répondre à ce message

  • Web-pastrop-master

    /// C’est bon, j’avais utilisé mon ancien .htaccess au lieu du nouveau, tout marche bien, merci beaucoup !

    Bonjour,

    j’ai bien activé le cfg et le plugin url editables, j’ai un .htaccess contenant :

    RewriteEngine On
    RewriteBase /spip2/spip2/
    #parce que mon site est contenu dans « racine »/spip2/spip2/
    RewriteCond %REQUEST_FILENAME -f
    RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L]

    Le .htaccess est dans « racine »/spip2/spip2/
    j’utilise spip 2.1.13, je viens de le mettre à jour
    Lorsque j’active « url propores » mes anciennes urls ne sont pas accessibles sous la nouvelle adresse « /titre-de-l-article » mais j’obtiens simplement une Error 404 - Not found

    Répondre à ce message

  • 1

    Bonsoir,

    Cette fonctionnalité est vraiment utile, merci beaucoup.

    Cela dit, je rencontre un problème non négligeable avec ce plugin. J’attribue une url à une page : pas de souci, ça marche, c’est bien cette url qui est prioritairement utilisée par spip pour générer des liens. Par contre, dès que je pousse sur le bouton « voir en ligne », qui déclenche un nouveau calcul d’url, c’est de nouveau celle-ci qui prime. Bien sûr, l’alias que j’ai attribué reste disponible, mais c’est l’url calculée par spip qui prime.

    Il faudrait donc interdire à SPIP de recalculer d’autorité les urls des pages.

    Merci

    • J’ai exactement le même problème.
      J’ai vu qu’il existait une global : $GLOBALS[’var_urls’], si je la met à « false » j’ai peur qu’il n’y ai pas du tout de calcul d’url.
      Sinon je pense essayer de modifier la fonction : « voir_en_ligne »...

      Quelqu’un a-t-il trouvé une solution ?

      Merci

    Répondre à ce message

  • 3

    Est-ce que la gestion des URL des pages mots est prévue aussi ?

    • J’ai testé le plugin et ça ne semble pas possible... Hélas !

      J’ai jeté un coup d’œil au code du plugin, notamment au pipeline boite_infos où sont déclarés les types d’objets utilisés. Mais je n’ai pas réussi à rajouter la gestion des mots.

      Si quelqu’un a une idée...

    • les mots-clés, auteurs et sites ont été ajoutés par joseph.
      on a maintenant la main sur toutes les adresses des objets les plus courants sous spip :)

    • Ça marche super bien : il est génial Joseph !

    Répondre à ce message

  • 2

    Magnifique contribution.
    J’en avais un du style dans les cartons. Jamais terminé.

    Il existe une meta pour éviter le duplicated-content : canonical.

    Il est possible également de mettre en place la redirection 301, plus complexe à installer.

    L’usage de cet élément canonical est expliqué dans
    l’article mentionné sur Wikipedia (en)->http://en.wikipedia.org/wiki/Duplicate_content#Using_rel.3D.22canonical.22_links]

    Par exemple :
    <link rel="canonical" href="http://www.example.com/titre-officiel-article" />

    Il suffit donc d’ajouter dans le head de l’article du fichier article.html,
    juste après le meta description, par exemple :
    <link rel="canonical" href="#URL_SITE_SPIP/#URL_ARTICLE" />

    Ca, ce n’est valable que si vous venez de modifier l’URL de l’article, et avez supprimé les anciennes URLs de cet article.

    Si vous désirez conserver l’ancienne URL de votre article (qui est probablement déjà référencé dans les moteurs), il faut faire un choix !

    Si plusieurs enregistrements sont disponibles dans la table spip_urls, SPIP ne prend que le premier... que la base lui donne. Qui n’est pas forcément le dernier enregistré.

    Pour désigner l’URL canonique pour le dernier lien créé via ce plugin,
    une petite boucle pour sélectionner la dernière URL ajoutée à votre article :

    <link rel="canonical" href="#URL_SITE_SPIP/<BOUCLE_canonical(spip_urls)
    	{id_objet=#ID_ARTICLE}
    	{type=article}
    	{par date}
    	{inverse}
    	{0,1}>#URL</BOUCLE_canonical>" />

    Cette boucle remplace le premier exemple ci-dessus.

    En guise d’exemple, vous pouvez consulter les squelettes sur www.quesaco.org. Cette boucle est en place pour le lien canonique, dans la page de l’article, et dans le menu de navigation, la page de recherche, etc.

    Ce qui serait sympa, c’est que la prochaine version de la balise #URL_ARTICLE ne prenne en compte que la dernière version corrigée de cette URL, ou permette de le choisir via un paramètre (pour le moment, le seul paramètre accepté pour cette balise URL_ARTICLE est l’ID d’un article).

    Répondre à ce message

  • A l’heure actuelle, la longueur maxi ne peut pas être inférieure à la longueur mini. Si vous essayez de la forcer, le plugin la fixe à la longueur mini + 10 caractères.

    Donc si vous réglez la longuer mini et la longueur maxi à 10, la longuer fixée/corrigée sera de 35 à 45 caractères.

    La longueur maxi indique un nombre de caractères.
    Or, url_nettoyer() coupe au mot. Si un mot est trop long, que l’ensemble de l’url dépasse la longueur souhaitée, le mot sera ignoré.

    Par exemple, pour un réglage de 35 caractères :

    chlorure d’aminométhylpyrimidinylhydroxyéthylméthylthiazolium

    génèrera l’url :

    chlorure-d

    Répondre à ce message

  • 6

    arg, testé sur SPIP 2.1.8 : page blanche lors du clic sur « Ajouter ».
    impossible d’attribuer une url.

    • Je suis sur SPIP 2.1.8 [16966] et il fonctionne de mon côté.

    • En cliquant ajouter une url, j’obtiens ce message d’erreur
      Fatal error : Call to undefined function supprimer_tags() in /home/.../www/ecrire/action/editer_url.php on line 27

      En local et sur un serveur mutualisé.

    • bizarre, il s’agit d’une fonction de noyau de SPIP. Vous êtes sur quelle version de SPIP ?
      sur la SPIP 2.1.10, cela passe sans pb.

    • oui je sais c’est bizarre. Je viens d’installer un spip « propre » ie sans plugin et j’ai le même problème, je me demande si cela vient pas de la version php utilisé 5.2.9 en local dans mon cas, et chez OVH php 5.2.17
      Sinon je suis à jour pour spip.
      je pense que Ben est dans le même cas.

    • merci pour report de bug sur certains version de php
      c’est corrigé par 46921

      c’est intégré, si vous êtes pressé : urledit/action/urledit_ajouter.php
      avant la ligne 43

      include_spip('action/editer_url');

      ajouter

      include_spip('inc/filtres');
    • super
      merci.

    Répondre à ce message

  • 2

    J’ai testé le plugin sur un de mes sites et il apporte beaucoup. Je préfère un titre qui s’adresse à des humains en priorité et un URL plutôt destinée aux robots.

    J’observe que les URL que je saisis sont tronquées au bout d’un certain nombre de caractères : je sais que cette longueur maximale est définie dans le format URL propres : je surcharge donc généralement le fichier qui les définit. N’existerait-il pas une méthode plus propre pour les allonger s’il vous plaît ?

    • Dans la version 0.3, j’ai ajouté un pannel de configuration qui permet de choisir les longueurs min, max, séparateurs et filtres des urls proposées via le plugin.

    • C’est génial, merci beaucoup ! Je viens de le mettre en place sur un de mes sites perso et ça fonctionne très bien.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom