[SPIP Zone] r28609 - in /_plugins_/_stable_/champs_extras2/core: cextras_options.php plugin.xml

fil@rezo.net a écrit :

Author: fil@rezo.net
Date: Tue May 12 22:27:26 2009
New Revision: 28609

Log:
pas besoin de cette initialisation qui, de plus, empeche d'en faire une a la main dans mes_options

-<?php
-$GLOBALS['spip_pipeline']['declarer_champs_extras'] = '';
-?>

Je ne suis pas d'accord là. On demande à chaque plugin de déclarer ses propres pipelines, pourquoi celui-ci serait une exception ?

Du coup, on va retrouver dans les logs des "pipeline declarer_champs_extras inconnu, pipeline désactivé" simplement parce que le pipeline n'a pas été déclaré.

Quelle est la raison de ce changement ?

--
MM.

Le 13 mai 09 à 08:09, Matthieu Marcillaud a écrit :

fil@rezo.net a écrit :

Author: fil@rezo.net
Date: Tue May 12 22:27:26 2009
New Revision: 28609
Log:
pas besoin de cette initialisation qui, de plus, empeche d'en faire une a la main dans mes_options

-<?php
-$GLOBALS['spip_pipeline']['declarer_champs_extras'] = '';
-?>

Je ne suis pas d'accord là. On demande à chaque plugin de déclarer ses propres pipelines, pourquoi celui-ci serait une exception ?

Oui, c'est indispensable car sinon spip passe son temps à reconstruire les pipe à chaque fois qu'il tombe sur un pipe qu'il ne connaissait pas
Dans f&t je fais ça

Peut être qu'une fonction simplisimme :

declarer_pipeline($pipe, $init=""){
  if (!isset($GLOBALS['spip_pipeline'][$pipe])) $GLOBALS['spip_pipeline'][$pipe] = ($init?"|'.trim($init,"|"):"");
}

serait de bon aloi dans inc/utils, et permettrait d'avoir du code propre et plus lisible ?

Cédric

cedric.morin@yterium.com a écrit :

Peut être qu'une fonction simplisimme :

declarer_pipeline($pipe, $init=""){
    if (!isset($GLOBALS['spip_pipeline'][$pipe])) $GLOBALS['spip_pipeline'][$pipe] = ($init?"|'.trim($init,"|"):"");
}

serait de bon aloi dans inc/utils, et permettrait d'avoir du code propre et plus lisible ?

Ca me parait un bon compromis. Reste le cas d'initialiser avec "||en_dernier", car ton trim va perdre l'info du double pipe. Mais c'est un cas extrêmement rare donc bon...

--
MM.

Le 13 mai 09 à 08:36, Matthieu Marcillaud a écrit :

cedric.morin@yterium.com a écrit :

Peut être qu'une fonction simplisimme :
declarer_pipeline($pipe, $init=""){
   if (!isset($GLOBALS['spip_pipeline'][$pipe])) $GLOBALS['spip_pipeline'][$pipe] = ($init?"|'.trim($init,"|"):"");
}
serait de bon aloi dans inc/utils, et permettrait d'avoir du code propre et plus lisible ?

Ca me parait un bon compromis. Reste le cas d'initialiser avec "||en_dernier", car ton trim va perdre l'info du double pipe. Mais c'est un cas extrêmement rare donc bon...

l'avantage est qu'au moins le bug sera centralisé dans une seule fonction :stuck_out_tongue:
on pourra le corriger plus tard, ou l'écrire plus proprement dès le début, remarque
Cédric

-<?php
-$GLOBALS['spip_pipeline']['declarer_champs_extras'] = '';
-?>

Je ne suis pas d'accord là. On demande à chaque plugin de déclarer ses
propres pipelines, pourquoi celui-ci serait une exception ?

J'ai toujours un problème avec ça justement.
Faut-il réellement charger un fichier d'options à chaque hit ? Ca
paraît une folie en termes de ressources.

Du coup, on va retrouver dans les logs des "pipeline declarer_champs_extras
inconnu, pipeline désactivé" simplement parce que le pipeline n'a pas été
déclaré.

Ca c'est un bug du compilateur de pipelines.

Quelle est la raison de ce changement ?

La raison était indiquée dans le log : ça ne permet pas de référencer
un pipeline depuis mes_options

Maintenant, j'avais pas capté que ça allait pouicher les installations normales.

Faut-il vraiment que j'écrive un plugin secondaire, chargé
obligatoirement après champs_extras2, pour juste ajouter un champ ?
Ca me semble être encore trop compliqué. Le coup des autorisations
aussi, puisqu'il faut en écrire une par champ...

-- Fil

Fil a écrit :

-<?php
-$GLOBALS['spip_pipeline']['declarer_champs_extras'] = '';
-?>

Je ne suis pas d'accord là. On demande à chaque plugin de déclarer ses
propres pipelines, pourquoi celui-ci serait une exception ?

J'ai toujours un problème avec ça justement.
Faut-il réellement charger un fichier d'options à chaque hit ? Ca
paraît une folie en termes de ressources.

Une autre solution serait d'intégrer ces déclarations de pipelines à plugin.xml... Qu'en pense Cédric ?

Du coup, on va retrouver dans les logs des "pipeline declarer_champs_extras
inconnu, pipeline désactivé" simplement parce que le pipeline n'a pas été
déclaré.

Ca c'est un bug du compilateur de pipelines.

Faut-il vraiment que j'écrive un plugin secondaire, chargé
obligatoirement après champs_extras2, pour juste ajouter un champ ?

Non, évidemment. Il faut simplement déclarer le pipeline uniquement s'il n'a pas été déclaré précédemment, comme le suggère Cédric dans les autres mails du fil.

Ca me semble être encore trop compliqué. Le coup des autorisations
aussi, puisqu'il faut en écrire une par champ...

Ah, cette partie est explicitement déclarée "expérimentale", libre à toi de modifier, les gens sont prévenus ^^ ...

Et encore, je ne dis rien sur le coup des champs ENUM pour récupérer leur valeur et non la clé : la proposition #EXTRA_ENUM{champ} est un peu tirée par les cheveux...

--
MM.