Question idiote: côté publique c'est le thème qui fait ses formulaires (a 
l'ancienne) pourquoi ne ferait-on pas pareil côté admin? Ça serait vachement 
moins usine a gaz quand même.

Dsls <[email protected]> a écrit :

>Hello,
>
>Ci-dessous mes avancements sur le sujet twig. A l'ordre du jour :
>
>Concernant la lib : j'ai bossé sur la v1.6.3, il faudrait voir ce
>qu'il faut adapter pour la v1.11.1 toute fraîche. Elle est positionnée
>dans inc/lib/twig
>Coté admin, Twig tout seul ne suffit pas/ne résoudra pas forcément
>tous nos problèmes. J'ai lorgné du coté de symphony pour regarder
>comment ils faisaient, j'ai donc commencé une lib
>inc/admin/class.dc.form.php.
>
>Concrètement, cela ajoute des fonctions twig particulières de type form_field.
>
>Une entrée template rendu pour un formulaire de l'admin se résume alors à :
>{% form post %}
>    <p>{{ form_field('cat_id')}}</p>
>    <p>{{ form_field('post_status')}}</p>
>    <p>{{ form_field('post_dt')}}</p>
>    <p>{{ form_field('post_format')}}</p>
>    <p>{{ form_field('post_open_comment')}}</p>
>    <p>{{ form_field('post_open_tb')}}</p>
>    <p>{{ form_field('post_selected')}}</p>
>    <p>{{ form_field('post_lang')}}</p>
>{% endform %}
>
>Coté code php, on pousse les champs correspondants via le contexte
>qu'on transmet au template :
>$form = new dcForm($core,'post','post.php');
>$form
>    ->addField(
>        new dcFieldHidden('post_id',''))
>    ->addField(
>        new dcFieldText('post_title','', array(
>            'size'        => 20,
>            'required'    => true,
>            'label'        => __('Title'))))
>    ->addField(
>        new dcFieldTextArea('post_excerpt','', array(
>            'cols'        => 50,
>            'rows'        => 5,
>            'label'        => __("Excerpt:"))))
>    ->addField(
>        new dcFieldTextArea('post_content','', array(
>            'required'    => true,
>            'label'        => __("Content:"))))
>    ->addField(
>        new dcFieldTextArea('post_notes','', array(
>            'label'        => __("Notes"))));
>
>
>Le rendu est fait de cette forme :
>
>$page = new dcAdminPage($core);
>$ctx = $page->getContext();
>$ctx
>    ->jsDatePicker()
>    ->jsToolBar()
>    ->jsModal()
>    ->jsMetaEditor()
>    ->jsLoad('js/_post.js')
>    ->jsPageTabs($default_tab)
>    ->jsConfirmClose('entry-form','comment-form');
>
>echo $page->render('post.html.twig',array(
>    'edit_size'=> $core->auth->getOption('edit_size')));
>
>
>A force d'écrire, je me dis qu'il vaudrait mieux que je pushe le code
>quelque part. Je crée une branche à quel endroit ?
>
>Je devrais pouvoir faire quelque chose qui affiche des trucs
>rapidement, sachant qu'il restera du boulot :)
>
>--
>Bruno
>_______________________________________________
>Dev mailing list
>[email protected]
>http://ml.dotclear.org/listinfo/dev
_______________________________________________
Dev mailing list
[email protected]
http://ml.dotclear.org/listinfo/dev

Répondre à