Correction d’un article depuis la partie publique

Ce plugin permet de corriger un article depuis l’espace public de votre site

Présentation du Plugin

Pour faire fonctionner ce plugin vous devrez obligatoirement installer le plugin Balise #SESSION de James, et également pour avoir un ensemble assez cohérent la contribution Écrire un texte depuis l’espace public pour SPIP 1.9. À partir de là, chaque rédacteur authentifié aura le loisir de modifier ses articles en ligne sans passer par l’espace privé du site.

Comment ça marche ?

Une fois connecté sur le site le rédacteur sera reconnu grâce au plugin « Balise #session » en passant par la page « transforme » (url avec spip.php ?page=transforme). Dans une liste déroulante il pourra sélectionner le texte à modifier en sachant qu’il s’agira toujours de ses textes et pas celui des autres. Une fois validé, il sera dirigé vers un formulaire pré-rempli, où il retrouvera son texte.

Un petit compteur de caractères lui indique le nombre de caractères utilisés dans son article après modification. J’ai créée également un petit bouton qui permet de faire ressortir dans une pop-up le correcteur orthographique. Ceci afin de voir le texte formaté et les erreurs très fréquentes au niveau de l’orthographe des mots.

Une fois le texte corrigé et validé, l’internaute se retrouve dirigé en page d’accueil

Personnalisation

Les pages sont en pur html sans précaution SPIP, mis à part la page de re-direction qui contient du php. Elles sont là à titre d’exemple, il faut les adapter à vos besoins (squelettes, css).

Attention : Les articles qui contiennent du php dans l’article lui-même, peuvent provoquer des réactions inattendues.

Plugin Corriger

Nota spip-contrib : voir aussi le Plugin « Crayons » qui permet, sur la toute dernière version de SPIP, d’agir directement sur le contenu d’un article depuis la page article en ligne (nécessite SPIP 1.9.2, version la plus récente minimum)

Discussion

5 discussions

  • Bonjour,

    J’avais besoin de fournir cette fonctionnalité à mes auteurs, d’autant plus que cela permet d’outrepasser la sécurité qui fait qu’un article publié ne peut pas être modifié par un auteur. La technique montrée ici va bien, mais elle n’est pas compatible avec le suivi des révisions.
    Voici comment on peut, avec SPIP 1.9.1 (je n’ai pas de quoi essayer avec les autres), améliorer la méthode en utilisant les fonctions intégrées de SPIP, et bénéficier par la même du suivi des révisions :

    Dans un squelette article_modifier.html créer à partir de article.html, on introduit le code suivant (pour l’exemple, je me limite aux champs titre et texte, il suffit d’ajouter les autres au besoin) :

    #CACHE{0}
    ...
    <form action="#URL_PAGE{article_do_modifier}" method="post" class="edition">
    <input type="hidden" name="editer_article" value="oui" />
    <input type="hidden" name="lang" value="[(#ENV{lang})]" />
    <input type="hidden" name="id_article" value="[(#ENV{id_article})]" />
    
    <p><:info_titre:><input type="text" name="titre" value="#TITRE*" /></p>
    <p><:info_texte:>[(#TEXTE**|barre_textarea{10,80})]</p>
    ...
    </form>

    Et dans un squelette de réponse article_do_modifier.html, à la base vide :

    #CACHE{0}
    <?php
    include_spip('action/editer_article');
    articles_set($id_article, false, 0);
    $url_retour = "?page=article_modifier&lang=$lang&id_article=$id_article&var_mode=calcul";
    redirige_par_entete($url_retour);
    ?>

    L’avantage ici est d’utiliser la fonction interne de SPIP, qui fait tout le boulot à notre place du moment que dans les paramètres de la requête http on a mis editer_article à oui et les champs que l’on doit modifier avec leurs noms triviaux (titre, surtitre, texte, etc...). Notamment, la nouvelle version de l’article est correctement générée par le mécanisme de révision de SPIP.

    Le filtre barre_textarea appliqué à la balise #TEXTE permet d’afficher le texte dans une zone de saisie TEXTAREA avec la barre de raccourcis (comme dans le squelette forum.html), même avec celle du plugin barre typo enluminée.
    Si on veut que tout les boutons soit accessibles (et non seulement ceux accessibles dans le forum), on peut aussi utiliser directement la barre de raccourcis de cette manière :

    <?php include_spip('inc/barre');
    echo afficher_barre("document.getElementById('texte_article_edit')",false,$lang); ?>
    <p><:info_texte:><textarea name="texte" id="texte_article_edit">#TEXTE*</textarea></p>

    J’ai implémenté tout cela en gérant la sécurité du côté public avec :

    • Le formulaire d’accès public dans chacune des pages, avec des liens d’administration quand l’utilisateur est authentifié.
    • Le plug-in accès restreint par groupe, qui semble m’éviter les problèmes liés au cache.
    • La vérification des droits de l’utilisateur dans les pages de modification (l’administrateur à tous les droits, le simple auteur ne peut que modifier les articles dont il est l’un des auteurs).

    En espérant que cela puisse en aider quelques-uns.

    Répondre à ce message

  • bonjour,
    j’ai ajouté une table dans spip que je tente de mettre à jour. La table est correctement rajoutée puiqu’elle est prise en compte par les boucles.

    j’arrive à utiliser ce plugin (pour modifier cette nouvelle table) jusqu’à l’étape de la mise à jour de la base. mais aucune modification n’est effectuée. j’ai pourtant bien fais attention aux noms des champs.

    Quelqu’un a t’il une idée ?

    merci
    Pietrus

    Répondre à ce message

  • 3

    Rebonjour,
    Après écrire, j’ai adapté corriger et c’est super pour mes auteurs qui sont un peu frileux dans l’espace privé....
    Merci pour votre travail.
    Est-ce que vous pensez qu’il pourrait exister quelque chose de ce type pour coupler avec le plugin agenda afin de créer et corriger des évenements liés à un article et qui apparaîtraient alors d’office dans le calendrier (style réservation d’ULM ou prise de rendez-vous par une secretaire...).
    Si vous connaissez ou si le deal vous tente, merci de me tenir au courant.

    Répondre à ce message

  • 1

    Tout est dans le titre !
    Pour corriger des brèves, sans auteur par définition, il n’y a aucun moyen ?

    • Si c’est surement possible. Je vais regarder comment faire.
      et viendrais ensuite ici donner les modifs. C’est juste le nom d’une variable qui change je pense...
      Il y avait autrefois une contrib ajouter une news..Faudrait la retrouver.

    Répondre à ce message

  • 3

    Il y a une faille dans l’accès à la modification de l’article, que j’ai découverte par hasard. (SPIP 1.9.1 [7502])

    Si au lieu du login on entre le mot de passe, on est malgré tout identifié. On peut ensuite entrer son mot de passe tout à fait normalement et avoir accès à (aux) article(s).

    Bien sûr il faut connaître le mot de passe, mais chacun sait que ceux-ci ne sont souvent pas sorciers ...

    • En fait, je corrige et je précise ; C’est quand on entre l’adresse mel de l’auteur à la place de son login que l’on est identifié et que l’on peut ensuite entrer son mot de passe et avoir accès à l’article.

      Donc si en plus le mot de passe correspond à l’adresse mel c’est grand ouvert.

      Constaté avec Firefox 1.5.0.9 et avec Maxthon 1.5.9

    • Bon en fait c’est un problème de SPIP. Développeurs prévenus

    • Merci pour l’alerte.

      On est jamais trop prudent ;)

      Je crois que ce problème est récurent depuis la 1.8 avec #login_public

      Bernard

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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

Dernière modification de cette page le 3 juin 2007