Plugin Publication Ouverte

Nouvelle version du plugin openPublishing, avec plus d’options, moins de bugs, et un nouveau nom !

description du plugin

Le plugin « Publication Ouverte » a pour but de fournir une interface de publication d’article publique et anonyme permettant à n’importe quel visiteur d’un site spip de publier un article sans aucune authentification. Cette méthode de gestion/création de contenu est appelé « Publication ouverte » (ou open-publishing en anglais). La publication ouverte est principalement pratiqué par le réseau indymédia, ainsi que de nombreux autres sites d’informations alternatives.

Article wikipedia

Important : ce projet n’est plus maintenu par son auteur faute de temps et de motivation. Il est donc libre d’être repris. N’hésitez pas à explorer le code, et à commiter les modifications pour offrir à la communauté une nouvelle version débarrassé des derniers bugs et compatible avec les dernières versions de spip.

Principe de fonctionnement

Le plugin « Publication Ouverte » fourni un formulaire accessible par les visiteurs d’un site SPIP, qu’ils soient ou non enregistré comme auteur. Ce formulaire permet d’écrire un article sans devoir posséder un compte sur le site en question. Pour cela, tous les articles écrits via ce formulaire serons attribué à un auteur par défaut, communément appelé auteur « anonyme ». Il est aussi fortement conseillé de désactiver le stockage des IP de SPIP (cf. paragraphe « Avertissement IP »).

Il est aussi possible pour un auteur identifié, de publier un article « en son nom » plutôt qu’au nom de l’auteur « anonyme ». (cf. paragraphe « Auteurs spip »).


openPublishing devient Publication Ouverte

Le plugin openPublishing fait une évolution majeure, sa structure ayant énormément changé depuis la version précédente, on en profite également pour en changer le nom. « openPublishing » s’appelle maintenant « Publication Ouverte ». (ça fait plus spipiens non ?)

Ce qui change par-rapport aux versions précédentes

-  Les données propres à ce plugin ne sont plus stockés dans des tables particulières mais stocké dans les champs extras de la table articles ou brèves.
-  La configuration du plugin passe entièrement par le plugin CFG
-  Le plugin peut maintenant être utilisé par d’autres plugins pour proposer des options supplémentaires à la publication ouverte (cf. paragraphe sur l’interaction avec les autres plugins).
-  Les formulaires ont été simplifiés pour permettre une meilleur intégration dans un site (Disparition des feuilles de styles spécifiques au plugin).
-  Possibilité de donner un logo à l’article.
-  L’identification et la gestion des documents s’appliquent maintenant aussi aux brèves (lors de l’utilisation de la gestion agenda du plugin publication ouverte)
-  L’identification des auteurs apparaîtra dans l’interface privée
-  Possibilité d’activer la notification par mail lorsqu’un article est publié.

Les amalgames

Attention, ne pas confondre :

-  La gestion agenda du plugin Publication ouverte avec le plugin Agenda (ils n’ont strictement rien à voir entre eux).
-  L’identification optionnelle proposé par le plugin « Publication Ouverte » n’a aucun rapport avec la gestion des auteurs enregistrés dans un site spip).


Dépendance

Le plugin Publication Ouverte dépend du plugin CFG. Il est indispensable d’installer le plugin CFG avant d’installer le plugin « Publication Ouverte ».

-  CFG


Installer le plugin

Comme pour tous les autres plugins, il suffit de récuperer le zip, de le décompresser dans son répertoire « plugins », puis d’aller l’activer dans la page de gestion des plugins.

-  Installer un plugin


Passer de openPublishing à Publication Ouverte

-  Chemin d’accès : Configuration->Gestion des plugin->Publication Ouverte->Mise à jour
-  Url : ?exec=op_base

Cet espace de mise à jour permet de passer du plugin openPublishing au plugin Publication Ouverte.

Le plugin Publication Ouverte diffère énormément du plugin openPublishing. Pour effectuer une mise à jour correcte :

-  Dé-activer le plugin openPublishing dans la page de gestion des plugins
-  Supprimez le répertoire openPublishing dans votre répertoire "plugins"
-  Installez le plugin "Publication Ouverte"
-  Avant de passer à la configuration du plugin Publication Ouverte, il faut impérativement passer par une étape intermédiaire permettant de faire la transition entre openPublishing et Publication Ouverte.

Suivez pas à pas toutes les étapes en lisant entièrement toutes les explications. Tout devrais bien ce passer.

-  La première action consiste à supprimer les tables devenue obsolète de votre base de donnée. Histoire de garder une base propre.
-  La version 0.4 du plugin "Publication Ouverte" n’utilise plus la table "spip_op_auteurs" pour stocker les données d’identifications des rédacteurs, mais utilise les champs "extras" de la table "spip_articles". L’option suivante va vous permettre de mettre à jour tous les articles ayant eu un rédacteur s’étant identifié via ce système. Cela vous permettra de conserver les données identifications de vos rédacteurs et donc de supprimer la table "spip_op_auteurs" devenue obsolète.
-  La dernière étape consiste à supprimer la table "spip_op_auteurs".

Et voila, votre base de donnée est maintenant nettoyé des anciennes tables du plugin openPublishing. Vous pouvez maintenant passer à l’étape de configuration du plugin Publication Ouverte.


Configurer le plugin Publication Ouverte

-  Chemin d’accès : Configuration->cfg->Publication Ouverte
-  Url : ?exec=cfg&cfg=op

Cette espace de configuration permet de modifier les options suivantes :

Le choix des rubriques ou les articles seront placés

Vous pouvez choisir une ou plusieurs rubriques (déjà existantes ou crées pour l’occasion) qui recevrons les articles publiés via Publication Ouverte. Il suffit simplement de cocher ou de décocher les rubriques.

Le choix de l’auteur "anonyme"

La publication Ouverte assigne automatiquement à un auteur les articles publiés par l’interface de publication ouverte. Vous pouvez içi choisir cet auteur. L’utilisation "normale" consiste à créer pour l’occasion un auteur portant le nom "anonyme", et n’ayant aucun accès à l’interface privée (donc pas de mot de passe), puis de le choisir dans cette liste.

Le choix des champs à utiliser

Le plugin Publication Ouverte peut utiliser tous les champs de spip, c’est à dire le Sur-titre, le sous-titre, le descriptif, le chapeau, et le post-scriptum. Vous pouvez choisir içi quel champs utiliser dans l’interface de publication ouverte.

Le choix des options disponibles aux rédacteurs

Le plugin Publication Ouverte peut aussi permettre d’ajouter des objets à un articles :
-  des mots-clés
-  des documents
-  des documents distants
-  des images
-  un logo

Activez ou désactivez ces options en fonctions de vos besoins.

Auteurs spip

Cette option permet d’offrir le choix aux rédacteurs enregistrés comme auteur spip de publier au nom de l’auteur "anonyme" ou "en leur nom".

-  Cochez l’option "Permettre aux rédacteurs enregistrés en tant que "auteur Spip" ..."

Le formulaire de publication proposera alors (si l’utilisateur s’est préalablement logué via #LOGIN_PUBLIC ou #LOGIN_PRIVE), une case à cocher permettant d’attribuer l’article à cet utilisateur. (les champs "pseudo" et "mail" seront alors remplis avec les données de cet utilisateur).

La gestion de l’agenda

Si vous cochez cette option, le plugin "Publication Ouverte" proposera aux rédacteurs de publier leurs articles sous forme de "date" dans l’agenda. Il s’agit en réalité de publier le contenu de l’article sous forme de brève dans une rubrique spécifique.

Le choix du statut des articles

Lorsqu’un article est publié par l’interface de publication ouverte, il faut qu’il reçoive un statut (en rédaction, publié, ou proposé). Vous pouvez donc choisir ici quel sera ce statut.

Vous pouvez aussi activer la notification par mail. (Vous devez avoir préalablement activé le "suivie de l’activité éditoriale dans votre configuration de SPIP). L’email indiqué dans votre configuration de SPIP recevra un mail de notification a chaque article publié.

Les options de post-traitement du texte

Ces options vous permettent d’effectuer quelques tests sur le chmps textes des articles publiés :

-  anti-spam : remplace les @ des adresse email par un groupe de lettre aléatoire
-  anti-majuscule : remplace toutes les majuscules d’un titre par des minuscules
-  taille minimale du titre : determine la taille minimal en caractère des titres des articles

La gestions des renvois automatiques

Lorsqu’un rédacteur valide un article ou abandonne, le formulaire affiche un message et redirige le rédacteur au bout de quelques secondes vers une autre page du site. Les options ci-dessous permettent de configurer cela. Attention, il faut indiquer des urls de type : « /spip.php ?page=ma_page », le plugin complétera automatiquement l’url.


Au niveau du squelette

-  Appeler le formulaire "Publication Ouverte"

Dans une page du squelette (par exemple : "publication.html"), placez l’appel suivant :

	[(#FORMULAIRE_ARTICLE{#SELF})]

Vous pouvez appeler cette page depuis n’importe qu’elle autre page de votre site.

<a href="#URL_PAGE{publication}">Publiez un article</a>

Le plugin fourni aussi une page standard disponible via l’url :

/spip.php?page=publication_ouverte

-  Lister les rubriques recueillant les articles « Publication Ouverte »

<BOUCLE_rubrique(RUBRIQUES){openPublishing}>
</BOUCLE>

-  Récupérer les données d’identification :

<BOUCLE_article(ARTICLES){id_rubrique}>
- Le pseudonyme utilisé :#EXTRA|OP_pseudo<br />
- Le mail : #EXTRA|OP_mail<br />
</BOUCLE_article>

-  Exemple plus poussé (liste tous les articles « Publication Ouverte », classé par rubrique et par date)

<BOUCLE_rubriques(RUBRIQUES){openPublishing}{par id_rubrique}>

<ul>
		<BOUCLE_article_rubrique(ARTICLES) {id_rubrique=#ID_RUBRIQUE} {par date}{inverse} {0,15}>
	
			<li>
				<a href="#URL_ARTICLE">[(#TITRE|lignes_longues{27})]</a><br />
	
				publi&eacute; le [(#DATE|affdate_jourcourt)]<br />
                                [Auteur : (#EXTRA|OP_pseudo)  |  ]
				[Mai : (#EXTRA|OP_mail)  |  ]
			</li>
		</BOUCLE_article_rubrique>
		</ul>
</BOUCLE_rubriques>

Avertissement IP

Par défaut, spip log les adresses IP des visiteurs de votre site. Il est fortement conseillé de désactiver cela afin d’avoir une publication ouverte anonyme. Le plugin couteau suisse fournit la possibilité d’activer ou de désactiver ce stockage des adresses IP. Ne sera stocké qu’une version cryptée md5.

-  Le Couteau Suisse


Interactions avec d’autres plugins

Pour les utilisateurs

Si vous utilisez d’autres plugins effectuant des traitements au moment de la sauvegarde d’un article dans l’espace privée, ces traitement seront aussi actifs pour les articles publié par « Publication Ouverte ».

Pour les développeurs

Cette section ne concerne QUE les développeurs d’autres plugins. Vous pouvez donc vous dispenser de sa lecture si vous n’avez pas l’intention de rendre « Open » l’un de vos plugins.

-  Les pipelines de spip :

Le plugin Publication Ouverte utilise les pipelines « pre_edition » et « post_edition ». Cela veut dire qu’il est tout a fait possible pour un autre plugin de se brancher sur ces pipelines afin d’y effectuer des traitements., ils s’effectueront aussi bien sur les articles publiés via l’espaces privée que sur les articles publiés via Publication Ouverte.

-  Les pipelines spécifiques à Publication Ouverte :

Le plugin Publication Ouverte fournie aussi ces propres pipelines, permettant à un plugin tiers de s’insérer dans Publication Ouverte. C’est à dire d’ajouter dans le formulaire de publication son propre bout de formulaire. Les pipelines permettant de faire cela sont :

-  OP_environnement

ce pipeline permet aux plugins d’ajouter des variables d’environnement et éventuellement de leur donner un « type » en fonction du traitement necessaire au champs.

exemple :

$flux['data']['champs_pri']['url'] = _request('url');
$flux['data']['champs_pri']['mon_champs'] = '';
$flux['data']['champs_pri']['mon_autre_champs'] = '';

$flux['data']'type']['mon_champs'] = 'texte';

$flux['data']['actions']['mon_action'] = '';
  • La variable « url », étant déjà remplie, ne passera pas par le traitement stripslashes
  • La variable « mon_champs », n’étant pas remplie, passera par le traitement stripslashes, et étant « typée » texte, passera aussi par le traitement entities_html (la récupération des valeurs du formulaire est effectuée par Publication Ouverte)
  • La variable « mon_action » correspond au bouton « submit » du formulaire.
  • Important : le nom des variable doit correspondre au « name » dans les champs <input />.

-  OP_abandon

Que faire losrque l’utilisateur abandonne ? nettayage des valeurs temporaire dans la base, etc ...

exemple :

	if ($flux['data']['champs_pri']['id_article']) {

		$query = sql_select(
			array('id_mot'),
			array('spip_mots_articles'),
			array('id_article = '.sql_quote()
		);

		while ($row = sql_fetch($query)) {
			sql_delete(
				array('spip_mots'),
				array('id_mot = '.sql_quote(row['id_mot']).' LIMIT 1')
			);
		}
         }

-  OP_squelette

On y « branche » le formulaire.

exemple :

 	$flux = @unserialize($flux);

 	return inclure_balise_dynamique(
 			array('formulaires/formulaire_tag-machine', 0,
 				array(
				'bouton' => "Ajouter ce/ces tag(s)",
				'id_article' => $flux['id_article']
 				)
 			), false);

-  OP_validation

ce pipeline permet aux plugins d’effectuer une validation « alternative »
p.e : pour passer ailleur que par la création d’un article (création d’un evenement p.e)

IMPORTANT ; ne surtout pas oublier de mettre le flag_valider à true, sinon on embraye sur les autres types de validation

IMPORTANT : tester le flag_valider, il ce peut qu’un autre plugin le mette à true avant :)

IMPORTANT : tester sa variable action .. sinon le process se déroulera si on clique sur un autre bouton

-  OP_pre_validation

ce pipeline permet aux plugins d’effectuer des traitements avant la validation

p.e : traitements typographiques sur le texte

-  OP_action

ce pipeline permet aux plugins d’effectuer les traitements sur les variables.

pourra contenir des manipulations de la base de donnée, etc ..

IMPORTANT : toujours commencer par un test sur sa variable action !

Désactiver/Activer l’interaction

Dans l’espace de configuration, rubrique « post-traitement », cochez ou décochez la case « Interactivitée avec les autres plugins ».

Ajout du pipeline dans le fichier plugin.xml

Pour qu’un plugin puisse utiliser un pipeline du plugin publication ouverte, il faut l’ajouter dans le fichier plugin.xml de la manière suivante :

<pipeline>
        <nom>OP_squelette</nom>
        <action>OP_squelette</action>
        <inclure>prefixe_pipelines.php</inclure>
</pipeline>

Discussion

65 discussions

  • Cédric Couvrat

    bonjour,

    j’ai créé avec champ extra 2, deux nouveaux champs. que je voudrais rendre éditables avec publication ouverte. Comment puisse-je l’y prendre. Y a t’il un exemple dispo quelque part ?

    Répondre à ce message

  • Bonjour

    Merci pour ce plugin.

    Je dois rajouter une case à cocher obligatoire (j’accepte les conditions), j’ai regardé le champ titre qui, lui, est obligatoire pour voir comment faire... mais en fait, si on ne renseigne pas le titre, le formulaire est envoyé quand même.
    Il y a t-il un moyen de rendre ces champs obligatoires ?
    Merci

    Répondre à ce message

  • Bonjour Edd,
    Avez-vous une date concernant la sortie de ce plugin pour SPIP 2 ?
    Merci.

    Répondre à ce message

  • 1

    bonjour,
    pourriez vous m’expliquer l’installation de ce plugin, j’y arrive vraiment pas,
    je l’est installé et je peux le configurer sur cfg, j’ai une rubrique publier (mais j’ai rien dedans) et je veux que le formulaire apparaisse quand on clique sur le lien de la rubrique publier.
    Comment faire cela ?
    je tourne sur spip 2.0.8
    Merci de votre aide :
    http://uru35.org

    • j’ai cette erreur là quand j’installe le plugin :
      Parse error : syntax error, unexpected T_FUNCTION in /homez.302/urudbtjr/www/plugins/openPublishing/balise/formulaire_article.php on line 25

      pouvez vous me dire de quoi il retourne

    Répondre à ce message

  • Bonjour,

    j’ai voulu installer ce plugin sur des spip 1.9.2.i
    le pb est que lorsque je veux les configurer, j’ai une erreur php, les 30 secondes definies comme temps max d’exection sont atteintes. Avez vous une idée de ce qui peut entrainer cette erreur ?

    Merci

    Répondre à ce message

  • J’attends moi aussi avec impatience la nouvelle version de ce plugin ^^
    (charles - www.amiens80.fr)

    Répondre à ce message

  • Merci de cette réponse !
    J’attendrais donc la sortie de la version spip2 du plugin pour refaire mon site :)

    Répondre à ce message

  • 3

    Avec la version de SPIP 2.0.6, je n’arrive pas à faire fonctionner correctement le plugin Publication Ouverte v 0.4, Voici ce que j’obtiens :

    FATAL ERROR ligne23 dans le fichier
    /balise/formulaire_article.php : undefinite function charger_generer url().

    Evidemment si je retire cette ligne de commande du fichier formulaire_article.php, le plugin fonctionne, mais je n’arrive pas à récupérer les données d’identification du visiteur avec la (BOUCLE_ARTICLES et EXTRA), que j’ai placée dans le squelette comme vous l’avez indiqué.

    (et j’ai aussi coché l’option « Permettre aux visiteurs de s’identifier » dans la CFG du plugin.)

    • Le plugin Publication Ouverte v 0.4 fonctionne avec le spip 2.0 , après correction de la ligne23 dans le fichier /balise/formulaire_article.php : il faut remplacer charger_generer url() par generer_url_entite().
      En revanche je n’arrive pas à faire fonctionner (BOUCLE_ARTICLES et EXTRA) correctement, mais cela ne m’est pas utile puisque j’ai limté aux rédacteurs (identifiés par login) la possiblité d’écrire depuis le site public .

    • Y a-t-il un moyen d’adapter le plug-in afin qu’il fonctionne complètement avec spip 2.0.x ? Al_P disait le 17 avril à 09:53 que la manip’ donnée ne fonctionne pas totalement, en ne permettant pas à des visiteurs non identifiés d’écrire sur le site. Or, c’est justement ce que j’aimerais faire !

      J’ai beau chercher, je ne trouve pas de plug-in « Full Spip 2 » qui fasse cela... Peut-être une nouvelle version de ce plug-in est-elle prévue ?

    • Bonjour,

      Tout d’abord je tient à m’excuser pour le manque de support ces derniers temps et cette réponse trop tardive.

      Voici la manipulation à effectuer pour rendre ce plugin compatible avec la dernière version de spip :

      1° Le plugin Publication Ouverte utilise les champs EXTRA qui ne sont plus supporté par SPIP 2.0. Il faut donc installer sur votre spip le plugin suivant qui gére les champs extra : http://www.spip-contrib.net/Champs-Extra,2939

      2° Une fonction a changé de nom dans spip 2.0. Il suffit de modifier le fichier /balise/formulaire_article.php (dans le répertoire du plugin) et de remplacer la ligne suivante (ligne 23) :

      charger_generer_url() ;

      par :

      charger_generer_entite() ;

      voila :)

      Ps : une nouvelle version sortira d’içi peu, adapté completement à spip 2.0.

    Répondre à ce message

  • naomed

    bonjour,

    Tout d’abord je confirme que ce plugin marche bien en 2.0.8 avec juste la modif indiquée plus bas.

    J’ai créé un champ extra pour les articles (ca marche) et je voudrais qu’il s’affiche sur le formulaire publication ouverte.

    Dans le fichier formulaire_article.html j’ai recopié (betement ?) la partie qui appelle un autre champ et ai essayé de la modifier avec les references de mon nouveau champ

    cela ne fonctionne pas, le champ s’affiche mais n’est jamais enregistré.

    quelqu’un a t il une idée ? Merci

    Répondre à ce message

  • Bonjour,
    j’aimerais vraiment utiliser ce plugin, par contre, lorsque je l’install sur Spip 2.0, Mes partie public et privé deviennent blanche (page blanche).

    Obliger de vider mon repertoire /tmp pour que tous redeviennent normal.

    Avez vous une solution, une personne à déjà rencontré ce problème ?

    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