[(#FORMULAIRE_ARTICLE)] : Permettre aux visiteurs de proposer un article sur votre site

Comment permettre à vos visiteurs de proposer un article ? En lui proposant un formulaire à remplir !

Voilà ce que nous souhaitons faire : http://www.livres-online.com/ecrire.php3, comme sur cette page permettre aux visiteurs du site de proposer des articles.

Gestion de l’insertion de l’article dans la base de données

Ce code PHP inclus sert à réaliser l’insertion des données dans la base une fois le formulaire validé. Il faut le mettre au tout tout début du squelette concerné.

<INCLURE(formulaire_article.php3)>

-  Une erreur sera générée par le « header() » si un code HTML quelconque a été écrit préalablement (voir fichier),
-  Si l’auteur est logué c’est lui l’auteur, sinon c’est l’auteur n° 1,
-  L’article aura le statut « proposé ».

Affichage du Formulaire

À mettre à l’endroit opportun de votre squelette, dans une boucle (RUBRIQUES) avec pour id_rubrique la rubrique concernée.

<h1>Proposer un article</h1>
<?
if($message){
echo $message ;
}else{
if ($titre_article || $texte) {
?>
<h2>Appercu avant la publication </h2>
<div style="padding:10px;border:1px dashed #cccccc;margin:10px;width:40%">
<h3><?echo strtoupper($titre_article);?></h3>
<p><?echo nl2br($texte);?></p>
</div>
<?}else{?>
<p>
Vous souhaitez proposer un article, remplissez le formulaire ci-dessous</p>
<?}?>
<form method='POST' action='#SELF'>
<h2>Proposer un article</h2>
<p>Titre : <INPUT TYPE="text" CLASS="forml" NAME="titre_article" VALUE="<?echo $titre_article;?>" SIZE="30"></p>
<p>
<b>Descriptif :</b>
<BR><TEXTAREA NAME='texte' ROWS='20' CLASS='forml' COLS='40' wrap=soft><?echo $texte;?></textarea>

<!--
<p>
Nom du site : <INPUT TYPE="text" CLASS="forml" NAME="nom_site" VALUE="<?php echo $nom_site; ?>" SIZE="30">
</p>
<p>
Url du site : <INPUT TYPE="text" CLASS="forml" NAME="url_site" VALUE="<?php echo $url_site; ?>" SIZE="30">
</p>
-->

<DIV ALIGN="left"><small>Les champs en gras sont obligatoires</small></div><br>
<DIV ALIGN="right">
	<INPUT TYPE="submit" NAME="Visualiser" CLASS="spip_bouton" VALUE="Visualiser votre article">
	<?if ($titre_article && $texte) {?>
		<INPUT TYPE="hidden" NAME="id_rubrique" VALUE="#ID_RUBRIQUE">
		<INPUT TYPE="hidden" NAME="id_auteur" VALUE="<?php echo $auteur_session['id_auteur'] ; ?>">
		<INPUT TYPE="hidden" NAME="redirect" VALUE="#SELF">
		<INPUT TYPE="submit" NAME="Valider" CLASS="spip_bouton" VALUE="Demander la publication">
	<?}?>
</DIV></p>
</FORM>
<?php } ?>

Le Script

Voici une nouvelle version du script :

formulaire_article.php3
Codes à télécharger et à intégrer en haut du squelette avec l’inclure.

Vous pouvez le télécharger, le modifier pour le rendre générique, et nous le re-proposer ici même (via le lien Variantes ci dessous par exemple).

Amusez vous bien.

Une fois que cela marchera bien comme squelette php3/html, on verra comment l’intégrer au parseur de squelettes de spip pour le faire fonctionner comme une [(#BALISE)].

Discussion

14 discussions

  • 6

    bonjour,
    ce formulaire ne semble plus fonctionner sur spip 3.0. comment l’adapter svp ?

    • en SPIP 3.0, il vaut mieux utiliser le formulaire standard de SPIP : #FORMULAIRE_EDITER_ARTICLE. Voir http://contrib.spip.net/Formulaire-d-ajout-modification-d-articles-cote-public

    • oui je l’ai testé mais on ne peut pas publier en tant que visiteur...

    • a oui, en standard un visiteur ne peut pas publier. Tu veux quoi : publier ou proposer un article ? deux choses différentes. Je t’invite à regarder du côté du plugin « autorité ».

      Sinon je te conseille de poster la question sur les forums généralistes de SPIP. Il y a plus de chance que des personnes te lise (là j’ai peur de te dire des betises si je ne teste pas avant, et je n’ai pas le tps de tester).

    • je veux créer un formulaire qui permet aux visiteurs de proposer un article dans une rubrique spécifique. et cette solution fonctionnait en ajoutant une ligne de code pour indiquer la rubrique.
      je vais voir du côté d’autorité...
      merci de m’avoir répondu

    • oui, clairement autorité permet de laisser une rubrique en « article proposable ».

    • bon visiblement ce n’est pas possible. ça ouvre la publication aux visiteurs enregistrés. or je ne veux pas les obliger à s’enregistrer...

    Répondre à ce message

  • Bonjour et bravo pour cette contrib qui vient combler les attentes de plusieurs... sauf moi car je n’ai pas été en mesure de l’intégrer... 8¬(
    Je suis nouveau avec SPIP, j’arrive à modifier des squelettes, boucles et tout mais là... je n’y arrive pas.

    Quelqu’un a-t-il une petite minute pour me dire QUOI METTRE OU EXACTEMENT... DU GENRE « POUR LES NULS » ?????

    Merci

    Répondre à ce message

  • Tout ce qui touche à la permission aux visiteurs de publier un article est toujours fort interessant. En ce qui me concerne, j’utilise ce genre de contribution dans une page privée où seuls les mebres du site peuvent avoir accès si logué.
    Ensuite je fais une boucle qui permet d’afficher directement le nom de l’auteur de la session, je rajoute un onglet pour les rubriques et pré-installe deux balises html, ainsi le membre ne peut plus se tromper de rubriques ( dans mon cas se sont des littéraires et pas informaticien pour deux sous) et la mise en page se fait toute seule.
    Mais j’ai juste une petite question car je suis coincé sur un problème. J’ai installé un editeur de texte avancé Fckeditor qui s’ouvre depuis la zône privée avec une fenetre pop-up.
    Comment faire pour rapatrier le bouton de la pop-up dans le formulaire de la partie publique présenté ici ?

    Répondre à ce message

  • Bonjour,

    Ne serait-il pas possible de faire quelque chose de ce genre :
    http://www.mac4ever.com/participer/
    http://www.mac4ever.com/participer/news/
    pour la proposition des articles ?
    Les options présentent, en plus de la prévisualisation, sont très sympathiques... C’est simple comme interface, est-ce adaptable à SPIP ?...

    Répondre à ce message

  • 1

    Y aurait il moyen quel l’article envoyer sois tout de suite en ligne et non proposé à validation ?

    • Il suffit de remplacer le mot ’prop’ (comme proposé) par le mot ’publie’ (comme publié !) (à gauche de NOW() )dans le script php à inclure en debut de page.

    Répondre à ce message

  • 3

    Bonjour,

    franchement, c’est exactement ce que j’aurais besoin pour mon site ! Mais quelques questions subsistent pour ma part :
    1. Est-il possible de le modifier pour que des champs extra soient ajouté ? (Dans mon cas actuellement, les articles proposés par les visiteurs ont un champ EXTRA intitulé « Soumis par : »)
    2. Est-ce que les articles publiés ainsi sont directement publiés ou proposés à la publication ?
    3. Est-ce quelqu’un qui n’a pas de compte auteur (et que je ne veux pas qu’il s’inscrive pour le moment pour éviter tout abus sur le site) peut-il poster un article qu’un administrateur validera ?

    Voilà, je pense qu’il y a suffisamment de questions pour le moment... ;-)

    Merci pour toute réponse.

    • -  pour les champs extras j’en sais rien, faut tester ;-)
      -  l’article est proposé, il dispose d’un auteur et d’une rubrique par défaut définis dans le script

    • 3. Est-ce quelqu’un qui n’a pas de compte auteur (et que je ne veux pas qu’il s’inscrive pour le moment pour éviter tout abus sur le site) peut-il poster un article qu’un administrateur validera ?

      c’est justement l’intérêt de cette contribution !!

    • Maître Dedoy

      Ok mais je veux que ça soit publier sous le pseudo donner par le visiteur... Est-ce possible ?

    Répondre à ce message

  • 2

    Bonjour,

    J’écris pour obtenir un peu d’aide pour l’intégration de cette superbe contrib...
    Je ne sais pas comment intégrer les scripts proposés dans mes squelettes... QUOI VA DANS QUOI et OU ??

    Merci

    • Voici ce que j’ai réalisé pour intégrer cette contribution :
      1 - J’ai créé un article avec un mot-clé (_devenir_redacteur). Cet article a un petit texte d’introduction du formulaire. Ce mot-clé a le numéro 19.

      2 - J’ai modifié le squelette article.html en mettant :
      <INCLURE(formulaire_article.php3)> en première ligne
      et en insérant la boucle suivante (penser à modifier l’id du mot-clé) à l’endroit où j’ai souhaité placer le formulaire.

      < !— ajout devenir rédacteur —>
      <B_redacteur><BOUCLE_redacteur(ARTICLES)(id_article)(id_mot=19)>

      COPIER-COLLER DU CODE AFFICHAGE DU FORMULAIRE

      </BOUCLE_redacteur>
      </B_redacteur><//B_redacteur>
      < !— fin ajout devenir rédacteur —>

      3. J’ai placé le fichier de script « formulaire_article.php3 » téléchargé sur ce site, à la racine.

      Et tout fonctionne !

    • Jonathan

      Attention, les neuneus de mon espèce ne percutent pas immédiatement que les parenthèses de id_article et id_mot=19 sont en fait des accolades.

      Merci pour ton explication, elle m’a quand même bien aidé !

    Répondre à ce message

  • 2

    Bonjour,

    Je cherche à faire exactement ça sur spip1.9.2 est-ce que cette balise marche pour cette version de SPIP ? si non, comment je peux faire autrement ?

    Merci pour votre aide !!!

    • J’ai trouvé le Plugin OpenPublishing. est-ce que ça correspond au #FORMULAIRE_ARTICLE.
      Merci pour vos réponses ! Hier j’ai essayé de l’installer et j’ai planté mon site... :d ...
      Alors ça m’embête un peu de recommencer avec le risque de planter à nouveau le site si ça ne correspond pas à se que je veux faire...

      Merci pour vos réponses !!

    • en faite ,cette balise marche pour 1.9, tu vera ici un exemple http://www.fasotime.com
      dans la rubrique 3 ème rubrique

      Merci

    Répondre à ce message

  • Le mode d’emploi n’est pas clair : il faudrait mettre un squelette de démo + le fichier .php3 du squelette + le script dans une seule archive ZIP.

    Ensuite, le script permet effectivement de proposer un article, mais ne permet pas (encore) :
    -  de spécifier la langue (dans l’espace privé, la langue n’est pas renseignée, il faudrait au moins ajouter une langue par défaut)
    -  d’ajouter des pièces jointes (c’est tout l’intérêt de la contrib, sinon il y a déjà les forums)
    -  d’afficher l’auteur s’il y en a un

    C’est une super contrib, donc j’espère que les auteurs auront un peu de temps pour l’améliorer encore !

    Répondre à ce message

  • Bonjour et bravo pour cette contrib qui vient combler les attentes de plusieurs... sauf moi car je n’ai pas été en mesure de l’intégrer... 8¬(
    Je suis nouveau avec SPIP, j’arrive à modifier des squelettes, boucles et tout mais là... je n’y arrive pas.

    Quelqu’un a-t-il une petite minute pour me dire QUOI METTRE OU EXACTEMENT... DU GENRE « POUR LES NULS » ?????

    Merci

    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