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