Beurk ;( La je suis en train de me dire que si seulement il y avait un autre behavior place un peu plus haut dans la methode `dcTemplate::EntryIf()`, ca pourrait me permettre d'initialiser ma variable pour ensuite l'utiliser dans la condition if. Ca coute rien en plus, non ?
Je vais tester pour verifier que ca marche, tiens. 2013/8/22 Greg <[email protected]> > 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 > -- Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev
