#FORMULAIRE_ARTICLE

All contributions published for previous SPIP versions

Balise a placer dans les squelettes pour pemettre à un visiteur ou un rédacteur de proposer un article dans une rubrique à partir du site public.

Objectifs

Cette balise génère un formulaire qui permet à un visiteur ou un rédacteur de proposer un article dans une rubrique à partir du site public. les fichiers sont codés avec des fonctions, des boucles et des fichiers langues de spip.

2Voici ses fonctionalités:2

-  l’article envoyé est proposé à la publication. Son statut peut-être personalisé par une variable dans mes_options;
-  le formulaire permet de remplir les champs surtitre, titre, soustitre, descriptif, chapo, texte, ps, et de choisir la langue de l’article envoyé;
-  Entièrement multilingue
-  Un courriell est envoyé à la liste de suivi.

2Différences avec [(#FORMULAIRE_ARTICLE)] : Permettre aux visiteurs de proposer un article sur votre site2

-  c’est une balise, elle est donc plus facile à placer dans les squelettes (il suffit d’y écrire #FORMULAIRE-ARTICLE) et ne demande pas d’utiliser de php ou d’inclusions.
-  c’est codé dans l’esprit des autres formulaires spip, avec un squelette .html pour la personnalisation et un .php3 pour les traitements techniques.

Installation

21) copier les fichiers2

L’archive se compose de 4 fichiers, qu’il vous faut copier dans votre répertoire de squelettes:

-  formulaire_article.html: le squelette du formulaire proprement dit
-  formulaire_article_previsu.html: squelette de prévisualisation
-  formulaire_login_article.html: identique à formulaire_login_forum exepté le message affiché! Permet d’afficher l’interface de connection si la modération est “sur abonnement”.
-  inc-formulaire_article.php3: traitement des données du formulaire et envoi dans la base de donnée spip.

22) choississez votre type de modération2

Si vous souhaitez une modération a priori, vous pouvez sauter cette étape!
Une variable dans mes fonction permet de déterminer la modération à appliquer, à l’image des forums de spip [1]. Cette variable globale doit être placée dans mes_options.php3. elle peut prendre deux valeurs:

-  sur abonnement: il sera nécessaire de s’identifier pour proposer un article. La variable qui doit être placée dans mes_options est:

$GLOBALS['articles_publics']  = 'abo';

-  a posteriori: l’article est directement publié en ligne. Dans ce cas écrivez:

$GLOBALS['articles_publics']  = 'pos';

Si cette variable est omise ou différente des valeurs ci-dessus, la modération se fait a priori (l’article est proposé et doit être validé par un admin).

23) Placez la nouvelle balise dans vos squelettes2

Une fois que les fichiers ont été copiés vous pouvez utiliser la balise #FORMULAIRE_ARTICLE dans vos squelettes.
Attention! cette balise doit être placée dans une boucle RUBRIQUE!

Exemple, pour un formulaire qui propose un article dans la rubrique n°1:

<BOUCLE_proposer(RUBRIQUES){id_rubrique=1}>
#FORMULAIRE_ARTICLE
</BOUCLE_proposer>

24) Adaptez a vos besoins2

Vous pouvez modifier les squelettes formulaire_article.html et formulaire_article_previsu.html pour les adapter au graphisme de votre site.

Évolutions possibles

-  permettre le choix de la rubrique avec un formulaire de sélection.
-  Inscrire automatiquement comme visiteur la personne qui publie.

Footnotes

[1pour rappel, une modération a postériori signifie que la modération se fait après la publication. L’article est directement publié, et l’administrateur peut choisir de le supprimmer par la suite. Ceci à la différence de la modération a priori, ou l’article doit être validé par un admin avant d’apparaitre en ligne.

updated on 2 November 2006

Discussion

14 discussions

  • 3

    There is a mistake with the id_rubrique hidden input, so the value of id_rubrique doesn’t correct, and the public articles will be at the root of site.

    solution:
    find it in formulaire_article.html (line 10 aprox):

            <input class="id_rubrique" type="hidden" name="titre" value="[(#ENV*{id_rubrique})]"  size="50">

    and change with this:

            <input class="titre" type="hidden" name="id_rubrique" value="[(#ENV*{id_rubrique})]"  size="50">

    that’s all.

    Please, update the Zip.
    bye
    Martin

    • Thanks for your correction. This contrib will evolve during next few weeks, so I will correct the bug then.

    • I have the same error, but despite the modif, it doesn’t work anymore....

      The created articles stay at the root.

      Any Ideas

    • J’ai eu la même erreur et finalement j’ai directement mis le numéro de la rubrique dans

      <input class="titre" type="hidden" name="id_rubrique" value="[(#ENV*{id_rubrique})]"  size="50">

      à la place de [(#ENV*{id_rubrique})].

      J’ai eu une autre erreur aussi : Call to undefined function interdire_scripts... Et du coup j’ai rajouté la ligne

      include_ecrire ("inc_texte.php3");

      dans le fichier inc-formulaire_article.php3 (ligne 6 à peu près).

    Reply to this message

  • 9

    Merci beuacoup pour cette contribution.

    je travaille avec SPIP 1.8.3 et j’aimerai savoir comment faire disparaitre :
    script type=“text/javascript” src=“spip_barre.js”
    qui s’affiche en dessus du champ texte. (le javascript fonctionne-la barre s’affiche)

    Merci
    Rainer

    • Par rapport a mom message de hier. Comme déjà constaté avant dans d’autre message, le javascript ne fonctionne vraiment pas, contrairement à ce que je pensais. Est-ce quelqu’un aurait une idée comment le faire fonctionner ou faire en sorte que la barre ne s’affiche pas sans toucher au noyeau spip?

      Merci d’avance
      Rainer

    • J’ai le même probléme, je suis aussi sous la version 1.8.3
      Quelqu’un aurait une solution?

    • Finalement j’ai simplement enlevé dans le fichier “inc-formulaire_article.php”
      l’inclusion suivante:
      “include_ecrire(’inc_layer.php’);”

      (se trouve a la fin du fichier entre
      “function barre_article($texte)

      et
      “if (!$GLOBALS[’browser_barre’])”)

      et rajouté un lien vers le document qui regroupe les raccourcis, voir pour le français http://www.spip.net/IMG/pdf/doc-273.pdf

      Pas vraiment un solution, mais une sortie du problème

      Rainer

    • je viens de tester cette contribution, et en remplaçant cette ligne

      (#ENV*texte

      par ceci

      (#ENV**texte

      (j’ai été regarder dans le formulaire du forum, il y avait 2 ** ...), la barre de texte fonctionne bien

    • Merci pour cette correction.
      Je n’ai pas la possibilité de corriger dans l’archive... (je ne suis qu’un modeste rédacteur)

      Pour le reste, il faut accepter cette contrib tel quel pour le moment, n’ayant pas de temps a disposition pour la faire évoluer plus avant ...

    • Le formulaire ne s’affiche pas AIDEZ MOI SVP!!! Est-il compatible SPIP 1.9?

      J’ai ecrit #FORMULAIRE_ARTICLE dans “rubrique.html” en ayant prealablement copié les 4 fichiers dans le dossier “squelettes”. Je me demande comment prend en compte SPIP le fichier “inc-formulaire_article.php3”. J’ai tenter de changer les extension “php3” en “php” mais ca ne fonctionne toujours pas. De l’aide... je suppose qu’il faut le rendre compatible spip 1.9 mais comment???

    • Salut, c’est dans le répertoire “formulaires” que tu dois mettre les quatres fichiers, pas dans le répertoire “squelette”!
      Pour la compatibilité, je n’ai pas encore testé mais ca doit fonctionner.

    • Meme problème avec SPIP1.9. Rien ne s’affiche, meme avec les 4 fichiers dans ce répertoire.
      Je suis débutant avec SPIP, pour certain la solution est sans doute évidente. Donc comment faire pour installer #FORMULAIRE_ARTICLE avec spip1.9???? Merci

    • HELP pour la 1.9 et 1.9.1
      le formulaire ne s’affiche pas
      meme en mettant les 4 fichiers dans le repertoire formulaire.

      Merci de votre aide

    Reply to this message

  • 2

    bonjour,

    j’ai résolu mon problème précédent. Pourtant il subsiste un soucis.

    lorsque j’affiche la prévisualisation, la partie TEXTE ne s’affiche pas, pourtant elle apparait bien dans l’admin spip si je valide.

    Qqun peut-il me répondre please !

    • comment as tu fait pour resoudre ton probleme? j’ ai le meme :(

      Moritz

    • pourrais-tu expliquer comment as-tu fait, pour afficher le formulaire?
      je n’arrive pas à le faire fonctionner.
      Merci

    Reply to this message

  • Merci pour cette contribution, il serait intéressant aussi de pouvoir associer des mots-clés aux articles.

    Paul Sanches

    Reply to this message

  • d’abord merci pour cette contibution. Comme d’autre, je dois permettre aux visiteurs du site public de poster un document joint (en fait deux)en même temps qu’ils rédigent un article.

    Je suis bien incapable de faire le script permettant d’alimenter la table ou sont stockés les documents joints.

    Comment modifier le script, pour authoriser l’upload de pièces jointes liées à un article???

    Super merci si j’ai une réponse

    Reply to this message

  • 1

    Salut !

    Je viens d’installer la contrib. J’ai glissé les 4 fichier dans mon dossier /dist de Spip 1.8.3

    J’ain insérré la balise #FORMULAIRE_ARTICLE dans la page de mon site qui est destinée à afficher le formulaire, mais rien ne s’affiche.

    Je n’ai rien mis dans “mes_options” car je souhaite une mdérations a priori.

    Mais bon, aucun formaulaire ne s’affiche sur ma page et je ne comprend pas pk.

    • Ah oui, je n’ai bien sur pas oublié de l’inséré dans une boucle rubrique, mais rien n’y fait.

    Reply to this message

  • 1

    Bonjour,

    Contrib fort appréciée... mais la zone pour le texte n’a qu’une ligne et la barre d’édition n’apparaît pas...

    J’ai appliquer les correctifs proposés dans le forum de l’article soit :

    • la correction du champ hidden id_rubrique
    • ajout de include_ecrire (&quot;inc_texte.php3&quot;); dans inc_formulaire

    En visionnant la source, je constate que le script spip-barre.js est présent mais ne semble pas fonctionnel.

    Le débugger Javascript de FireFox ne se plaint de rien...

    SPIP 1.8.2e / FireFox 1.5 et Internet Explorer 6 / WinXP

    Dans un second temps, je voudrais utiliser ce formulaire pour saisir des évènement de mon calendrier... Comment ajouter la date de rédaction antérieure? Est-ce que la saisie de la date peut se faire avec un script comme spip_barre.js

    Merci d’avance

    • Pour la question du calendrier,
      Tu trouvera ci-dessous une version du formulaire adaptée a l’utilisation dans un calendrier.

      [->http://simon.cassiopea.org/custom/upload/SpipContrib/FormulaireArticleCalendrier.tgz]

      Le choix de date de début et de fin se fait a l’aide d’un nouveau squelette formulaire_date.html. Spip propose des fonctions qui crééent pour toi ce type de formulaires, pas besoin donc de réinventer la roue. pour les bidouilleurs, c’est afficher_jour_mois_annee_h_m().

      En esperant que ce sera utile ...

      Cependant, je souhaitait préserver la date de publication, et éviter les bidouillages avec la date de rédaction antérieure. La date de début est donc stockée dans le surtitre, et la date de fin dans le soustitre. Ce qui permet de boucler avec les critères de tris de date sur ces champs age_surtitre avec [ce patch->http://listes.rezo.net/archives/spip-zone/2005-11/msg00031.html].
      Attention, ce type de modif du noyau n’est pas recommendé si vous ne savez pas ce que vous faites.

      A toi d’effectuer les modifications nécessaires pour l’adapter a ton cas si tu veux utiliser la date de rédaction antérieure.

    Reply to this message

  • 1

    Bonjour,
    peut-on envisager la possibilité d’introduire plusieurs formulaires_article?
    Je m’explique, je voudrais proposer le formulaire proposé dans cette contribution, et en plus, un deuxième formulaire où certaines étiquettes seront changées.

    Si ceci est possible, faut-il dupliquer les fichiers

    -  formulaire_login_article.html
    -  formulaire_article_previsu.html
    -  inc-formulaire_article.php3? Puisqu’il aura deux formulaire_article.html

    L’objectif est uniquement de changer les étiquettes des différentes zones de texte pour l’adapter à une rubrique particulière du site.

    Merci d’avance

    JMLR

    • pour avoir un formulaire spécifique à une rubrique,
      c’est comme pour tous les squelettes : formulaire_article=10.html sera spécifique à la
      rubrique n°10

    Reply to this message

  • 5

    Bonjour,

    je réitère ma question en l’absence d’une réponse...

    Pourriez-vous me dire s’il est possible d’y rajouter une fonctionnalité qui permettrait aux internautes d’uploader des documents joints, en particulier des images ?

    D’avance merci de votre réponse

    Père Ubu

    • Il me semble qu’une réponse a été donnée.
      Bien sur c’est possible, mais il faudra attendre que quelqu’un mette ses mains dans le cambouis, et nous sorte une belle contrib...

    • cela entrainerait la possibilité pour des inconnus d’avoir accès en écriture sur un dossier de spip, ce qui est une très mauvaise idée niveau sécurité.

    • Est-ce si risqué ?

      est-ce toujours risqué, même si on limite la possibilité d’uploader à des formats d’images ?

    • on pourrait autoriser les documents distants
      en imposant par défaut de ne pas les télécharger

    • on pourrait autoriser les documents distants en imposant par défaut de ne pas les télécharger

      euhmmm, oui...

      qu’entendez-vous exactement par ceci ?

    Reply to this message

  • 3

    J’ai installé la contrib et elle marche parfaitement pour les utilisateurs loggés...

    Cependant pour les visiteurs, j’ai l’erreur suivante qui s’affiche...

    Fatal error: Call to undefined function: interdire_scripts() in /homepages/8/d139596306/htdocs/sklunk/squelettes/inc-formulaire_article.php3 on line 159

    des idées?

    • Il semblerais qu’il te manque la fonction interdire_scripts(). Utilise tu une ancienne version de spip? As tu effectué des modifications au noyau?

      Tu peut toujours supprimmer l’appel de cette fonction dans le fichier inc-formulaire_article.php3...

    • J’ai rencontré le même souci. Solution: ajouter

      include_ecrire (“inc_texte.php3”);

      en début du fichier inc-formulaire_article.php3
      Juste après la ligne

      include_ecrire (“inc_date.php3”);

      (par exemple).

    • Merci c’est bien cela!!!

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom