XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. News

Génération automatique du formulaire d'édition d'un modèle dans Pluf

The 2007-11-17 at 10:32 by Loïc d'Anterroches filed under News.

Je disais que je devais améliorer la gestion des formulaires pour faire la génération automatique d’un formulaire pour un modèle. C’est maintenant chose faite et le résultat est déjà dans l’application exemple. Voici maintenant ce que vous pouvez faire :

public function updateItem($request, $match)
{
    Pluf::loadFunction('Pluf_Shortcuts_GetObjectOr404');
    Pluf::loadFunction('Pluf_Shortcuts_GetFormForModel');
    $item = Pluf_Shortcuts_GetObjectOr404('Todo_Item', $match[1]);
    $new_data = $item->getData();
    if ($request->method == 'POST') {
        $form = Pluf_Shortcuts_GetFormForModel($item, $request->POST);
        if ($form->isValid()) {
            $item = $form->save();
            Pluf::loadFunction('Pluf_HTTP_URL_urlForView');
            $url = Pluf_HTTP_URL_urlForView('Todo_Views::viewList',
                                            array($item->list));
            return new Pluf_HTTP_Response_Redirect($url);
        }
    } else {
        $form = Pluf_Shortcuts_GetFormForModel($item, $item->getData());
    }
    return Pluf_Shortcuts_RenderToResponse('edititem.html',
                             array('page_title' => 'Edit a todo item',
                                   'item' => $item,
                                   'form' => $form));
}

En 14 lignes de code, vous avez l’édition complète d’un élément Todo_Item. Dans le dépôt vous avez le code documenté. C’est d’ailleurs tellement générique que cela va être possible de faire une vue standard pour l’édition d’un modèle, du CRUD. Cela va bientôt arriver…

Comments from readers

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS