Hello !
Je suis en train de dev un nouveau plugin, et je ne suis pas trop sur de
comment m'y prendre avec le behavior `tplIfConditions` vu que j'ai
l'impression de l'utiliser de maniere "non standard".
La maniere "standard" de l'utiliser ressemblerait a un truc du genre :
<?php
$core->addBehavior( 'tplIfConditions', array( 'PublicTestBehavior',
'tplIfConditions' ) );
class PublicTestBehavior
{
public static function tplIfConditions( $tag, $attr, $content, $if )
{
if ( $tag == 'EntryIf' && isset( $attr['my_attr'] ) ) {
$if[] = '$_ctx->posts->myMethod()';
}
}
}
?>
Pour que ca marche, il faut etendre la classe `rsExtPost` via le behavior
`coreBlogGetPosts` pour lui rajouter la methode `myMethod`. C'est ce que
j'avais fait au debut sur mon autre plugin mais j'ai finalement opte pour
definir une classe a part qui s'initialise avec un objet de type
`rsExtPost` et qui centralise tout le necessaire pour que le plugin marche
sans avoir a etendre des classes natives dans tous les sens. Au moins comme
ca, c'est plus clean.
Mais en faisant de cette facon, ca devient un peu plus complique pour
rajouter une condition dans `tplIfConditions`. En effet, il faudrait que je
puisse faire rentrer le code suivant dans la variable `$if`, ce qui ne me
semble pas possible d'apres mes connaissances limitees en PHP :
$test = new Test( $_ctx->posts );
$test->myMethod();
Puisque ca correspondrait au final a avoir un truc du genre :
if ( $test = new Test( $_ctx->posts ); $test->myMethod() ) { ... }
J'aimerais vraiment eviter de revenir a rajouter des methodes directement a
`rsExtPost` mais tel que c'est le cas maintenant, et apres avoir essaye
quelques variations, je suis un peu bloque... des idees ?
Merci !
Christopher.
--
Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev