[SPIP Zone] Inscription 2 : Demande d'avis sur la gestion des tables

S'lt tous le monde

Dans la version SVN du plugin, j'aimerai simplifier la gestion de
création des tables et des champs.

Actuellement, le script modifie la base de donnée à chaque mise à jour
de la page ?exec=cfg&cfg=inscription2
De plus à chaque visite des pages publiques du site, le mes_options
caclul à chaque fois l'image des champs existants.

J'aimerai simplifier tout ça en créant une bonne fois pour toute
l'ensemble des champs à l'activation qu'ils soient ou non utilisés.
Pour les formulaire cela ne devrait rien changer car ceux ci s'appuie
toujours sur les informations stockées via ?exec=cfg&cfg=inscription2

Cela devrait permettre une meilleure gestion de la base et limiter
certaines des erreurs remontées dernierement.

Mais comme il peut exister des effets de bord que je n'aurais pas pris
en compte, je prefere demander avant de tout casser encore.

Km

Bonjour

Aussi dans le meme gout j'aimerai inverser la logique utilisée pour
pluguer les plugins avec inscription2.

Pour le moment c'est dans le code d'inscription2 que sont definis les
options des plugins autres (abonnement, spip_listes,...)
J'aimerai inverser la logique en offrant de points d'entreé dans
inscription2 et aux plugins de se connecter à inscription2 par ces
points.

Mais pour ceci cela signifie de casser une grosse partie visible des
formulaire et rendre non fonctionnel pendant un temps ces extensions.

Km

Il me semble que j'ai fait la même chose avec le plugin openPublishing
qui définis des pipelines pour que d'autres plugin puissent venir s'y
brancher.

La définition des pipelines ce passe dans le fichier prefixe_options.php
de la manièrez suivante :

// Declaration des pipelines
$GLOBALS['spip_pipeline']['OP_squelette']='';
$GLOBALS['spip_pipeline']['OP_environnement']='';
$GLOBALS['spip_pipeline']['OP_action']='';
$GLOBALS['spip_pipeline']['OP_pre_validation']='';
$GLOBALS['spip_pipeline']['OP_validation']='';
$GLOBALS['spip_pipeline']['OP_abandon']='';

et s'utilisent dans les fichiers php de la manière suivante :

/*
* création pipeline variables d'environnement
* ce pipeline permet aux plugins d'ajouter des actions et/ou des champs
*/

$variables = pipeline('OP_environnement', array(
      'args'=>array('pub_ouverte'=>'pub_ouverte'),
      'data'=>$variables
      ));

/*
* Récuperation des valeurs pour toutes les actions
*/

foreach ($variables['actions'] as $key => $action) {
    $variables['actions'][$key] = _request($key);

Si t'est intéressé, le code se trouve sur la zone
(plugin->stable->openPublishing)

On jeu, 2008-07-24 at 15:01 +0200, cam.lafit@azerttyu.net wrote:

Bonjour

Aussi dans le meme gout j'aimerai inverser la logique utilisée pour
pluguer les plugins avec inscription2.

Pour le moment c'est dans le code d'inscription2 que sont definis les
options des plugins autres (abonnement, spip_listes,...)
J'aimerai inverser la logique en offrant de points d'entreé dans
inscription2 et aux plugins de se connecter à inscription2 par ces
points.

Mais pour ceci cela signifie de casser une grosse partie visible des
formulaire et rendre non fonctionnel pendant un temps ces extensions.

Km
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

J'oublie le code pour le plugin qui veux ce brancher sur le plugin
principal :

prefixe_pipelines.php :
-----------------------

function tagmachine_OP_squelette($flux) {

  /*
   * on récupere le flux
   * et on lui ajoute le formulaire tag-machine
   */

   $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);
}

sans oublier de le déclarer dans le plugin.xml
----------------------------------------

  <pipeline>
    <nom>OP_squelette</nom>
    <action>OP_squelette</action>
    <inclure>tag-machine_pipelines.php</inclure>
  </pipeline>

voila :slight_smile:

On jeu, 2008-07-24 at 15:01 +0200, cam.lafit@azerttyu.net wrote:

Bonjour

Aussi dans le meme gout j'aimerai inverser la logique utilisée pour
pluguer les plugins avec inscription2.

Pour le moment c'est dans le code d'inscription2 que sont definis les
options des plugins autres (abonnement, spip_listes,...)
J'aimerai inverser la logique en offrant de points d'entreé dans
inscription2 et aux plugins de se connecter à inscription2 par ces
points.

Mais pour ceci cela signifie de casser une grosse partie visible des
formulaire et rendre non fonctionnel pendant un temps ces extensions.

Km
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

cam.lafit@azerttyu.net a écrit :

Bonjour

Aussi dans le meme gout j'aimerai inverser la logique utilisée pour
pluguer les plugins avec inscription2.

Pour le moment c'est dans le code d'inscription2 que sont definis les
options des plugins autres (abonnement, spip_listes,...)
J'aimerai inverser la logique en offrant de points d'entreé dans
inscription2 et aux plugins de se connecter à inscription2 par ces
points.

Mais pour ceci cela signifie de casser une grosse partie visible des
formulaire et rendre non fonctionnel pendant un temps ces extensions.

Mille fois pour !
Cela permet à n'importe quel plugin (ou squelette) de rajouter ses champs à lui pour les auteurs.
Dans un dev avant, j'avais dû forker le cfg_ pour rajouter mes champs dedans. Et du coup il fallait que je mette à jour le mien à chaque fois que changeait Inscription2. Du coup j'ai arrêté de mettre à jour le plugin depuis bien longtemps (pour ce site) :slight_smile:

Mais si ya un pipeline, là c'est énorme. #PIIIIIIIIPE

--
RastaPopoulos

S'lt

Merci pour les infos :slight_smile:

Bon je vais finir de tout casser alors, mais on prend le risque
d'avoir une phase de regression plus ou moins longue.

Km

edd a écrit :

La définition des pipelines

Plus simplement pour ce qui concerne le plugin Inscription2, tu dois
pouvoir définir le pipeline avec la balise
#PIPELINE{insert_inscription2} directement dans le squelette "cfg_...".

--
RastaPopoulos