[drupal-devel] [task] New drupal forms api.
fago
drupal-devel at drupal.org
Tue Aug 23 12:39:15 UTC 2005
Issue status update for
http://drupal.org/node/29465
Post a follow up:
http://drupal.org/project/comments/add/29465
Project: Drupal
Version: cvs
Component: base system
Category: tasks
Priority: critical
Assigned to: adrian
Reported by: adrian
Updated by: fago
Status: patch (code needs work)
i really like this approach.
further i'd like to see the possibility to define an additional class
to a form element, which is currently not working. so we 'd have to
bring _form_get_class() and drupal_attributes() together.
fago
Previous comments:
------------------------------------------------------------------------
Tue, 23 Aug 2005 11:34:00 +0000 : adrian
Attachment: http://drupal.org/files/issues/form.inc (20.53 KB)
This is the first check in of the new forms api code.
The system has been designed to co-exist with the current forms api,
and is contained in a new
include file (includes/form.inc).
Forms are now defined in their component arrays, similar to how menu
items are defined.
example :
<?php
$form['body'] = array(type => 'textarea', default_value =>
$node->body, cols => 60, rows => 60);
?>
Elements can also be nested, and the $edit follows this definition. For
instance :
<?php
$form['author'] = array(type => 'fieldset', title => t('Authoring
information'), collapsible => TRUE, collapsed => TRUE, weight => -1);
$form['author']['name'] = array(type => 'textfield', title =>
t('Authored by'), maxlength => 60,
autocomplete_path
=> 'user/autocomplete', default_value => $node->name, weight => -1);
?>
All the properties used are defined as constants, and are documented
for each of the elements, and individually.
------------------------------------------------------------------------
Tue, 23 Aug 2005 11:46:19 +0000 : adrian
A patch for node.module, blog.module and taxonomy.module that changes
them to use the new form format. This patch is very far from complete,
but I wanted to get the code out so that i'm not working alone anymore.
------------------------------------------------------------------------
Tue, 23 Aug 2005 12:08:01 +0000 : adrian
Attachment: http://drupal.org/files/issues/forms.patch (9.98 KB)
The actual patch =)
I forgot to mention, this adds a new hook .. namely hook_elements,
which allows us to define the defaults for the elements (ie : cols and
rows for textareas) meaning they don't have to be defined for each of
the elements.
------------------------------------------------------------------------
Tue, 23 Aug 2005 12:09:11 +0000 : chx
A few notes from my conversation with adrian. valid => array('integer',
'uid') for this to work you need function valid_integer($element) and
valid_uid($element). $extra for form_select is legacy and really
needed.
More information about the drupal-devel
mailing list