SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 185 visiteurs en ce moment

Accueil > Rédaction > Édition publique > Rédiger coté public > Formulaire d’ajout/modification d’articles côté public à partir de (...)

Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

2 janvier 2012 – par acatonne – 71 commentaires

11 votes

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

A partir de SPIP 2.1, et plus encore en SPIP3, plus besoin de plugin ou procédure compliquée pour l’édition côté public de vos articles.

Une illustration de possibilités, adaptable pour tous les objets SPIP.

La base

L’appel du formulaire #FORMULAIRE_EDITER_ARTICLE{id_article, id_rubrique, retour, lier_trad} est décrit dans la documentation de SPIP pour un article comme pour les autres objets SPIP.

Avec cette simple ligne dans votre squelette vous pouvez publier un formulaire fonctionnel d’ajout ou de modification d’un article ou de tout objet SPIP.

Rendre ces formulaires publics :
Comme indiqué dans la documentation, vous appelez le formulaire dans un squelette de votre choix.

En pratique, ça peut donner :
Pour un nouvel article :

  1. #FORMULAIRE_EDITER_ARTICLE{new, XXX, #SELF}

où XXX est le numéro de la rubrique dans laquelle vous souhaitez que les articles soient enregistrés.

Pour l’édition d’un article :
Dans une boucle ARTICLES, qui donnera la valeur du #ID_ARTICLE, ou en remplaçant #ID_ARTICLE par #ENV{id_article} si vous passez le numéro d’article dans l’url :

  1. #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}


Pour l’édition d’un article, de son logo et de ses documents joints - en SPIP3 (dans une boucle ARTICLES) :

  1. #FORMULAIRE_EDITER_LOGO{article,#ID_ARTICLE,#SELF,#ENV**}
  2. #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}
  3. <INCLURE{fond=plugins-dist/medias/prive/objets/editer/colonne_document,objet=article,id_objet=#ID_ARTICLE,env} />

Télécharger

Si vous souhaitez vérifier/restreindre les droits

Vous pouvez vérifier/restreindre le droit de proposer un article. Par exemple :
Est-ce que l’auteur est bien loggé :

  1. [(#SESSION{id_auteur}|oui)
  2. #FORMULAIRE_EDITER_ARTICLE{new, "0", #SELF}
  3. ]

Télécharger

Est-ce que l’auteur a le droit de modifier l’article en question (pour l’édition d’un article pré-existant, donc dans une boucle ARTICLES) :

  1. [(#AUTORISER{modifier,article,#ID_ARTICLE}) #FORMULAIRE_EDITER_ARTICLE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}
  2. ]

Télécharger

N.B. : la gestion des autorisations se définit via le plugin « Autorité », où en surchargeant dans votre fichier mes_options.php les fonctions « autoriser ».

Et si vous voulez personnaliser votre formulaire ?

Il faut alors faire vos propres formulaires, à partir des originaux.
Dans votre dossier « squelettes », dans lequel vous rangez vos squelettes personnalisés, dans un sous dossier « formulaires », vous copiez les fichiers suivant :
-  editer_article.html
-  editer_article.php

Vous trouverez les originaux dans le dossier original « /privé/formulaires/ » de votre SPIP.

Si vous voulez qu’ils soient utilisés partout, y compris dans l’espace privé, vous les copiez sans modifier les noms (principe de la « surcharge »).

Si vous voulez les appeler ponctuellement à certains endroits, pour porposer par exemple une version allégée du formulaire de rédaction, il faut les personnaliser :

Vous les renommez, par exemple :
-  editer_article_public.html
-  editer_article_public.php

Puis vous ouvrez votre « editer_article_public.php » tout frais, et à chaque fois que vous trouvez l’occurence « editer_article », vous la remplacez par « editer_article_public »
Ainsi par exemple, « formulaires_editer_article_charger_dist » devient « formulaires_editer_article_public_charger_dist », etc.

Et voilà, bravo, c’est prêt !

Tous vos appels de formulaires -décrits plus haut- devront alors être fait avec ce nouveau nom, par exemple :

  1. #FORMULAIRE_EDITER_ARTICLE_PUBLIC{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}

Pré-définir des valeurs
Vous pouvez dans le fichier editer_article_public.html définir des valeurs en remplaçant des champs par des input hidden.
par exemple :

  1. <input type='hidden' id='statut' name='statut' value='prop' />


Ca peut aussi être fait dans editer_article_public.php, via la fonction formulaires_editer_article_public_charger_dist.

Retirer des champs
Vous pouvez retirer des champs du formulaire editer_article_public.html si vous le souhaitez (à l’exception du titre et du champ rubrique, sauf à les avoir pré-définis comme ci-dessus).

Et aussi
A voir également d’autres illustrations ici

Dernière modification de cette page le 3 avril 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 9 juin 2012 à 09:10, par ttseo En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour,
    est-il possible d’afficher le module d’ajout de documents en partie publique ???
    Cordialement

    Répondre à ce message

  • Le 6 octobre 2014 à 09:06, par sirom En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour,

    Je viens vers vous avec un problème pour le moins bizarre :

    Je surcharge les fichiers prive/formulaires/éditer_article.html et éditer_article.php
    dans squelettes/formulaires/

    Je mets dans mon squelette rubrique :

    #FORMULAIRE_EDITER_ARTICLE{"oui", #ID_RUBRIQUE}

    Cela fonctionne !

    Par contre quand je renomme :

    editer_article.html en editer_article_public.html
    editer_article.php en editer_article_public.php
    ce dernier j’ai biensûr pris soin de remplacer les occurrences éditer_article en ajoutant _public
    comme lu dans ce tuto.

    J’utilise maintenant donc :

    #FORMULAIRE_EDITER_ARTICLE_PUBLIC{"oui", #ID_RUBRIQUE}

    Le formulaire s’affiche mais l’enregistrement ne s’opère pas !
    A noter que si le formulaire s’affiche, il n’affiche pas la rubrique concernée .

    Voilà mon soucis.

    Merci de l’aide,

    Cordialement.

    m

    • Le 6 octobre 2014 à 09:50, par sirom En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

      Re,
      La cause vient du fait que :
      j’utilise le plugin polyhierarchie et j’aimerais ne pas l’utiliser en partie publique tout en le conservant en partie privé... comment faire ?

      Merci d’avance

    • Le 21 mars 2015 à 13:25, par sirom En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

      Bonjour,

      Le plus simple apparemment si on ne veut pas toucher aux « pipelines »,
      c’est de cacher le « picker » en CSS....

      Merci aux personnes de la liste spip-zone

      Cordialement.

    • Le 6 septembre à 19:17, par Vero En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

      J’ai une autre solution (au cas où quelqu’un repasse par ce fil ...)

      Le sélecteur est inclus par le plugin polyhiérarchie via le squelette :
      plugins/polyhier/formulaires/inc-selecteur-parents.html

      Copier ce fichier dans le répertoire squelettes/formulaires/ et le modifier de façon à ce que le sélecteur ne soit inséré qu’en partie privée avec le test suivant :

      [(#REM|test_espace_prive|oui) on est dans le privé ]

      Ce qui nous donne :

      1. [(#REM|test_espace_prive|oui)
      2.  
      3. <[(#SPIP_VERSION|substr{0,3}|=={3.0}|?{li,div})] class='editer editer_parents[ (#ENV**{erreurs}|table_valeur{parents}|oui)erreur]'>
      4. <label><:polyhier:label_parents:></label>[
      5. <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{parents})</span>
      6. ]
      7. <INCLURE{fond=formulaires/selecteur/rubriques}{selected=#ENV{parents}}{name=parents}{sortable=oui}{id_rubrique}{limite_branche}{tri}>
      8. <input type="hidden" name="confirme_deplace" value="oui" />
      9. <script type='text/javascript'>jQuery(function() {jQuery('.editer_parent').remove();});</script>
      10. </[(#SPIP_VERSION|substr{0,3}|=={3.0}|?{li,div})]>
      11.  
      12. ]

      Télécharger

      Merci à tous !

    Répondre à ce message

  • Le 10 avril 2014 à 09:23, par djallas En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    est-il possible de sauvegarder l’article et téléverser un document (associée dans cet ID_ARTICLE) en même temps ?
    en cas de l’utilisation de :

    Répondre à ce message

  • Le 14 août 2015 à 02:34, par Globy En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour,
    J’aimerai pouvoir ajouter / supprimer des auteurs liés à l’article coté public.
    Mais je n’arrive pas à faire apparaitre le fichier auteurs_lies.html (utilisé dans privé) situé dans prive/objets/list

    Si vous avez une idée !
    Merci d’avance.

    Répondre à ce message

  • Le 17 février 2015 à 18:55, par L’instit En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour

    Bravo pour cet article très utile.

    Je voudrais imposer une rubrique donc désactiver l’affichage du choix de la rubrique dans le formulaire public.

    Je n’ai pas très bien compris comment cacher ce champ... que modifier dans mon fichier editer_article_public

    Un peu d’aide, s’il vous plait.

    Merci

    Répondre à ce message

  • Le 11 février 2015 à 06:02, par Globy En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour,
    J’utilise les champs extra3 et je n’ai pas de problème pour les afficher quand j’appelle #FORMULAIRE_EDITER_ARTICLE coté public.

    En revanche les champs extra avec l’affichage conditionnelle ne fonctionnent pas dans #FORMULAIRE_EDITER_ARTICLE coté public.

    style=« display=none » ou style=« display=list-item » n’apparaissent pas coté public (coté privé ok)

    Donc tous les champs extra apparaissent sans exception (sans respecter les conditions) !
    Je pense qu’il faut rajouter un script quelque part. Vous avez une piste.
    Merci.

    Répondre à ce message

  • Le 21 novembre 2014 à 00:50, par Cécile En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonsoir

    Ayant beaucoup cherché pourquoi la liste des rubriques ne s’affichaient pas avec le code

    1. #FORMULAIRE_EDITER_ARTICLE{new, #ID_RUBRIQUE, #SELF}

    j’ai fini par trouver que le traitement ajax ne se faisait pas (je ne sais pas pourquoi).

    J’ai mis dans mes_options (trouvé dans ecrire/inc/chercher_rubrique.php) :

    1. define('_SPIP_SELECT_RUBRIQUES', 100000);

    /* mettre 100000 pour desactiver ajax */

    SPIP 3.0.16

    Si ça peut aider quelqu’un

    Cilou

    Répondre à ce message

  • Le 6 octobre 2014 à 15:33, par sirom En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour,

    je viens de mettre à jour un site en 3.017

    sur ce site on pouvait écrire un article en mode public librement grâce à la balise #FORMULAIRE_EDITER_ARTICLE sans devoir s’enregistrer

    et là boum on ne peut plus....message d’erreur...pas les droits suffisants...

    je pense évidemment que c’est pour des raisons de sécurité...

    Y a t-il quand même une solution ?

    Répondre à ce message

  • Le 16 mars 2014 à 03:58, par LoGo En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Bonjour à tous ! Superbe contribution !
    Cependant je souhaite allez un peu plus loins en espérant que quelq’un puisse m’aider !

    Via le Plugin autorité, je souhaite bloquer l’accès des rédacteurs à l’espace privé pour leur offrir un espace de rédaction simplifier via #FORMULAIRE_EDITER_ARTICLE coté publique.
    Le formulaire est déjà opérationnelle mais...

    La fonction pour bloquer l’accès a l’espace privé aux rédacteurs fonctionne à merveille... même un peu trop !

    Quand ils rédige leur article et le valide, cela du coup n’a aucun effet, ou quand ils choisissent la rubrique dans laquelle ils soumettent leur article, redirection vers un page d’erreur : Accès interdit à l’espace privé.

    En bref : comment permettre aux redacteurs d’utiliser ce formulaire, sans qu’il n’est accesà l’espace privé !

    En espérant que vous pourrez m’apporter de l’aide =)

    • Le 18 mars 2014 à 12:54, par acatonne En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

      Sur Spip3, le plus simple que j’ai trouvé est de surcharger le squelette de l’administration.

      Prenez le squelette de
      /prive/squelettes/page.html
      et recopier le dans votre dossier
      /squelettes/prive/squelettes/page.html

      et ajouter le test que vous voulez avant l’inclusion :
      par exemple, renvoyer les redacteurs vers la UNE, sinon (donc les administrateurs) afficher l’admin :

      <BOUCLE_test(CONDITION){si #SESSION{statut}|=={1comite}}>
      #HTTP_HEADER{Location:../?&page=sommaire}
      </BOUCLE_test>
      <INCLURE{fond=prive/squelettes/structure}{env}{type-page=#ENV{type-page,#ENV{exec}}}{composition=#ENV{composition,''}}>
      <//B_test>
    • Le 20 mars 2014 à 00:44, par LoGo En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

      Cette piste me semble intéressante en effet ; créer une redirection pour les rédacteurs. Il faut juste en complément que je trouve comment masquer le liens « Espace Privé » à ces derniers.

    Répondre à ce message

  • Le 15 mars 2014 à 23:16, par Delorimier En réponse à : Formulaire d’ajout/modification d’articles côté public à partir de SPIP2.1

    Je cherche à ajouter automatiquement un seul mot-clé (toujours le même) aux articles enregistrés par un formulaire public, sans que le mot-clé soit visible dans le formulaire lui-même.

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Champs Extras 3

    16 janvier 2012 – 534 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 190 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

  • Recommander

    3 avril 2011 – 16 commentaires

    Ce plugin propose une manière simple de suggérer de recommander par email un article à un ami. Fonction « recommander un article à un ami ». On l’ajoute dans n’importe quel squelette sous la forme : #RECOMMANDERtitre de la page,url de la page,intro (...)

Ça spipe par là