[development] Looking for patch love

Bèr Kessels ber at webschuur.com
Sat Aug 26 14:19:43 UTC 2006


We seem to be moving towards an overall new hook system, all based around the 
callbacks and alters of forms. I have worked with form api for a long enough 
time to say that I very much dislike it. 

I prefer hooks over _alter's and callbacks. Thats all.

>      - Not always easier to use or easier to theme.  Not exactly
> elegant either -- often very verbose.

Theme functions in fapi have become a LOT more complex. EG: 
+function theme_profile_category($element) {
+  $output = ($element['#title'] != '') ? '<h3>'. 
$element['#title'] .'</h3>' : '';
+  $output .= '<dl'. drupal_attributes($element['#attributes']) .'>';
+  foreach (element_children($element) as $key) {
+    if ($element[$key]['#title'] != '') {
+      $output .= '<dt'. drupal_attributes($element[$key]
['#attributes']) .'>'. $element[$key]['#title'] .'</dt>';
+      unset($element[$key]['#title']);
+      $output .= '<dd'. drupal_attributes($element[$key]
['#attributes']) .'>' . $element[$key]['#value'] .'</dd>';
+      unset($element[$key]['#value']);
+    }
+  }
+  $output .= '</dl>';
+  return $output;

2 ifs, 1 foreach, 1 unset, 2 api calls and loads of complex concanations. 
This should not even be considered a theme function. This is business logic 
pur sang. Complex business logic even. Not fit for a theme. FAPI (alike code) 
has introduced lots of these waaaay too complex theme functions. 

Compare to a properly crafted theme function, wich gets prepared data: 

function theme_profile_category($elements) {
  foreach ($elements as $key => $element) {
     $out .= theme('profile_element', $element, $key);
  return "<dl>$out</dl>";

function theme_profile_element($element, $key) {
  $elements = drupal_attributes($element['#attributes']);
  $out .= "<dt $elements>$element['#title']</dt>";
  $out .= "<dd>$element['#value']</dd>"

This latter solution is 1) cleaner, 2) gives the same power to the themer, and 
is 3) far easier to grok.

I don't have a good feeling about this FAPI direction. not at all.  Is this 
explanation why i dislike the fapi-concept technical enough? 

There, I've said it. :)

 PGP ber at webschuur.com

Nieuwsartikelen, of weblog.:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://lists.drupal.org/pipermail/development/attachments/20060826/cf6d0eab/attachment.pgp

More information about the development mailing list