Spip : notes pour plus tard

Une ou deux pistes de travail pour des contributions à Spip.

Pour l’instant je n’ai pas le temps de m’occuper de ça, parce que je suis en plein redesign [1], mais je veux le garder dans un coin de la tête donc autant le noter ici et vous faire profiter de mes flatulations neuronales.

HTTP, GET et POST

Le protocole HTTP fournit deux méthodes principales pour discuter avec une page web : GET et POST.

La première demande de recevoir des informations (elle les « gets »), la seconde envoie des informations (elle les « poste »).

C’est vital de bien faire la distinction entre ces deux méthodes quand on construit un site web, pour éviter par exemple qu’un robot d’indexation ne fasse des dommages dans une base de données, idem pour un outil de vérification des erreurs dans vos liens, etc.

Vous me direz qu’on est protégé dans une interface d’administration qui demande qu’on s’identifie avant de pouvoir l’utiliser ? Certes, mais il existe aussi des outils à disposition des simples mortels comme vous et moi qui permettent de vérifier que tous les liens de votre site sont bons directement dans votre navigateur, par exemple l’extension Link Checker pour Firefox, que j’ai fini par désinstaller de peur de la lancer par accident !

J’ai donc suggéré sur la liste spip-dev de différencier les actions et d’associer à toute action critique un formulaire et une méthode POST plutôt qu’un simple lien en GET. Évidemment Fil en retour a dit qu’il était preneur de code.

Donc notons, à faire :

  1. Identifier les éléments dangereux dans Spip [2]
  2. Proposer une méthode de remplacement

Tags, mots-clés, etc.

Je trouve lourde l’interface de spip pour associer des mots-clés à un article, et j’aime au contraire la simplicité des tags des sites sociaux d’une façon générale (Delicious notamment) et des favoris dans Firefox.

J’aimerais avoir un champ tout simple (comme un champ extra mais il paraît que ce n’est plus la mode) pour stocker ce type d’informations.

Le risque évidemment, c’est qu’on se trompe dans un mot-clé d’un article à l’autre ; risque qui n’existe pas avec la logique de base de données relationnelle de Spip.

Donc expérience à tenter.

Ou alors réformer complètement l’interface d’association de mots-clés à un article pour que ce soit plus simple (par exemple Wordpress fournit une liste de cases à cocher correspondant à toutes les catégories dans lesquelles l’article peut se retrouver : c’est rapide et ergonomique).

Et avec ça, ma bonne dame, il vous fallait autre chose ?

En fait j’avais une autre idée en commençant, mais je n’ai plus toute ma tête donc tant pis. Bah, mettez-moi aussi 200 grammes de boudin noir, tiens, tant qu’on y est.

Notes

[1Prévu pour avril 2008 ah non, attends... le premier mars... euh... bientôt...

[2Qui a dit « J’ai des noms » ? :)

Commentaires

  • Pierre (4 mars 2009)

    Dans Dotclear 2, la gestion des mots clés est assez chouette : on peut les taper à la main, ou bien les sélectionner dans un nuage de liens. Un simple clic sur le lien ajoute le tag à la liste des tags de l’article. Et tout ça se dégrade proprement sans Javascript, bien entendu...

    Une petite capture d’écran pour la route

    Répondre à Pierre

  • Nicolas Hoizey (5 mars 2009)

    Plusieurs remarques :

    • tes notes de bas de page (si utiles) n’apparaissent pas dans ton flux RSS
    • d’accord avec toi pour le bon usage de GET et POST, et je crois que des améliorations ont été faites très récemment
    • pour les tags, il y a un plugin spipicious, que j’avoue ne pas encore avoir testé, mais ton retour m’intéresse si tu le fais... 😉

    Voilà, c’est tout.

    Répondre à Nicolas Hoizey

  • Stéphane (5 mars 2009, en réponse à Nicolas Hoizey)

    Ah oui alors sur les notes, je ne comprends pas trop. Je regarderai le backend d’origine, peut-être qu’à force de bricoler j’ai cassé des choses.

    Pour le reste, tant mieux ! Je vais regarder tout ça.

    Répondre à Stéphane

  • Stéphane (5 mars 2009, en réponse à Stéphane)

    Je viens de regarder le backend par défaut : il n’affiche pas du tout les notes. Zut alors. J’ajoute à la liste des « choses en cours ».

    Répondre à Stéphane

  • Juju (6 mars 2009)

    En fait, on dit aussi que GET doit être sans modifications dans le modèle, et que POST doit être idempotent (c’est-à-dire que l’appeler deux fois devrait avoir le même résultat que l’appeler une fois... ça évite aussi des problèmes 😉 )

    Après, il y a encore d’autres problèmes, de sécurité cette fois. En effet, les URLs de type GET peuvent être appelées par, par exemple, de simples balises IMG. Ainsi, on peut imaginer d’amener une personne (toi) sur un site (malicieux) alors que tu es déjà loggé sur ta partie admin. Sur ce site (malicieux, l’ai-je déjà dit ?), il y a une balise IMG qui pointe vers cette balise GET qui permet de poster un billet.

    Le tout sans Javascript ;)

    (je m’arrête là, tu liras avec profil l’un des docs qu’on a faits sur le sujet 😉 )

    Répondre à Juju

Qui êtes-vous ?
Votre message

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

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)