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

Aucune discussion

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