suite au blocage du plugin Auteurs Partout à cause de mes pipelines de posts (souhait d’avoir les articles et votes publiés automatiquement sans passer par la case de re-lecture) dans mes options j’ai créé un plugin de mon squelette pour l’intégrer et faire plus propre.
Sauf que… ça marche en local mais pas en ligne
Mon pipeline associé à un plugin maison de vote marche ! Il est placé à la fin du fichier et même pas appelé dans le paquet… J’utilise le
function vote_post_insertion($flux){
if ($flux[‹ args ›][‹ table ›]==‹ spip_votes ›){
if ($flux[‹ data ›][‹ statut ›] != ‹ publie ›){ // si pas publié
$id_article = $flux[‹ args ›][‹ id_objet ›]; //récuperer l’id_article
$flux[‹ data ›][‹ statut ›] = ‹ publie ›; //on modifie le flux de sortie, mais c’est pas le plus important pour la publication
include_spip(‹ action/editer_vote ›);
instituer_article($id_article,array(‹ statut ›=>‹ publie ›));// on publie l’article (et du coup cela publie la rubrique si besoin)
}
}
}
Mais pas celui pour les articles. J’ai bien essayé de le mettre dans ce plugin à la suite de celui-là mais non, ça marche pas mieux
Je ne comprends pas, je retourne le soucis dans tous les sens c’est à devenir fou.
J’ai appelé le pipeline dans le paquet RAS.
J’ai fait comme pour l’autre plugin avec appel comme si c’était dans mes_options RAS.
suite au blocage du plugin Auteurs Partout à cause de mes pipelines de posts (souhait d’avoir les articles et votes publiés automatiquement sans passer par la case de re-lecture) dans mes options j’ai créé un plugin de mon squelette pour l’intégrer et faire plus propre.
Sauf que… ça marche en local mais pas en ligne
Mon pipeline associé à un plugin maison de vote marche ! Il est placé à la fin du fichier et même pas appelé dans le paquet… J’utilise le
function vote_post_insertion($flux){
if ($flux['args']['table']=='spip_votes'){
if ($flux['data']['statut'] != 'publie'){ // si pas publié
$id_article = $flux['args']['id_objet']; //récuperer l'id_article
$flux['data']['statut'] = 'publie'; //on modifie le flux de sortie, mais c'est pas le plus important pour la publication
include_spip('action/editer_vote');
instituer_article($id_article,array('statut'=>'publie'));// on publie l'article (et du coup cela publie la rubrique si besoin)
}
Mais pas celui pour les articles. J’ai bien essayé de le mettre dans ce plugin à la suite de celui-là mais non, ça marche pas mieux
Je ne comprends pas, je retourne le soucis dans tous les sens c’est à devenir fou.
J’ai appelé le pipeline dans le paquet RAS.
J’ai fait comme pour l’autre plugin avec appel comme si c’était dans mes_options RAS.
function intravet_post_insertion($flux) {
if ($flux['args']['table']=='spip_articles'){
if ($flux['data']['statut'] != 'publie'){
$id_article = $flux['args']['id_objet'];
$flux['data']['statut'] = 'publie';
include_spip('action/editer_article');
instituer_article($id_article,array('statut'=>'publie'));
}
Merci pour votre aide
Bonsoir,
J'essayerai bien de t'aider, mais je ne comprends rien à ta demande.
Mon incompréhension s'arrête et finit déjà là : C'est quoi "tes pipeline de posts" ? (J'avoue que "Mon pipeline associé à un plugin maison de vote marche !" me laisse aussi interrogatif). Bref, je ne sais pas si je suis le seul, mais une formulation plus précise et détaillée sur les points importants me semblerait assez utile pour pouvoir te faire aider.
Mais ce n'est que mon avis, et je te le donne pour pouvoir éventuellement t'apporter de l'aide ensuite si j'en suis capable, en fonction du niveau de difficulté.
Bon je vais essayer d’utiliser les bons mots. Et faire simple.
J’ai un site intranet. Tous les articles, événements, votes sont automatiquement publiés (et non statut=prop). Pour que mes articles et votes passent directement au statut « publié » j’avais intégré 2 pipelines post_insertion dans mes_options. Malheureusement, souhaitant ajouter des auteurs à mes événements je me suis retrouvée bloquée à cause de cela. Il m’a donc été conseillé d’intégrer mes pipelines à des plugins (le plugin votes + le plugin de mon squelette).
J’ai donc créé un plugin de mon squelette et intégré ma pipeline post_insertion au fichier monsquelette_pipelines.php (bien appelée dans mon paquet.xml), malheureusement mes articles restent bloqués en prop.
En revanche, ma pipeline post_insertion fonctionne pour mes votes (votes_pipelines.php).
Un truc sur lequel je tique : pourquoi as-tu un id_article dans ta table spip_votes ?
Sinon si tu as un plugin spécifique pourquoi ne pas utiliser la syntaxe des pipelines dans le fichier pipelines de ton plugin (mon_plugin_pipelines.php) et en l'activant dans ton paquet.xml
<pipeline nom="post_insertion" inclure="mon_plugin_pipelines.php" />
et dedans avoir un truc du genre :
function mon_plugin_post_insertion($flux) {
if ($flux['args']['table']=='spip_articles'){
if ($flux['data']['statut'] != 'publie'){ $id_article = $flux['args']['id_objet']; include_spip('action/editer_article');
instituer_article($id_article,array('statut'=>'publie'));
}
}
}
Il vaut mieux utiliser le pipeline pre_insertion pour ça, exemple de
code qui marche : http://spip.pastebin.fr/55998
Le 13/02/2019 à 10:06, Laetitia boiron a écrit :
Bon je vais essayer d'utiliser les bons mots. Et faire simple.
J'ai un site intranet. Tous les articles, événements, votes sont
automatiquement publiés (et non statut=prop). Pour que mes articles et
votes passent directement au statut "publié" j'avais intégré 2 pipelines
post_insertion <https://programmer.spip.net/post_insertion> dans
mes_options. Malheureusement, souhaitant ajouter des auteurs à mes
événements je me suis retrouvée bloquée à cause de cela. Il m'a donc été
conseillé d'intégrer mes pipelines à des plugins (le plugin votes + le
plugin de mon squelette).
J'ai donc créé un plugin de mon squelette et intégré ma
pipelinepost_insertion <https://programmer.spip.net/post_insertion> au
fichier monsquelette_pipelines.php (bien appelée dans mon paquet.xml),
malheureusement mes articles restent bloqués en prop.
En revanche, ma pipeline post_insertion fonctionne pour mes votes
(votes_pipelines.php).