Pour le plugin agora, j'ai codé ce que tu n'as pas envie de faire et ça marche très bien.
Si le core peut s'étendre, faut pas te priver :) -- Greg Le 22 août 2013 22:47, Christopher Crouzet <[email protected]>a écrit : > 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 > -- Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev
