1. 03 Jul, 2006 1 commit
  2. 02 Jul, 2006 1 commit
  3. 25 Jun, 2006 1 commit
  4. 05 Jun, 2006 2 commits
  5. 24 May, 2006 1 commit
  6. 18 May, 2006 1 commit
  7. 13 May, 2006 1 commit
  8. 07 May, 2006 1 commit
  9. 04 May, 2006 1 commit
  10. 17 Apr, 2006 1 commit
  11. 13 Apr, 2006 1 commit
  12. 27 Mar, 2006 1 commit
  13. 26 Mar, 2006 1 commit
  14. 23 Mar, 2006 1 commit
  15. 18 Mar, 2006 1 commit
  16. 14 Mar, 2006 3 commits
  17. 02 Mar, 2006 1 commit
  18. 01 Mar, 2006 1 commit
  19. 21 Feb, 2006 1 commit
  20. 14 Feb, 2006 1 commit
  21. 09 Feb, 2006 1 commit
  22. 01 Feb, 2006 1 commit
  23. 29 Jan, 2006 1 commit
  24. 27 Jan, 2006 1 commit
  25. 24 Jan, 2006 1 commit
  26. 22 Jan, 2006 1 commit
  27. 20 Jan, 2006 1 commit
    • Dries's avatar
      - Patch #45530 by Morbus: filter_form shouldn't default to #weight 0 · 8c02d4ec
      Dries authored
      When a form element doesn't specify a #weight, it is assumed internally as #weight 0. However, to ensure that our form elements display visually *as they were defined in the array* we, in form_builder, count the number of elements, divide by 1000, and set that as the weight:
      
      # Assign a decimal placeholder weight to preserve original array order
      if (!isset($form[$key]['#weight'])) {
        $form[$key]['#weight'] = $count/1000;
      }
      
      The above code will set the #weights of elements that have not defined a weight to something like 0 (first element in array definition), 0.001, 0.002, and so on. However, anytime a form element *explicitly* defines a #weight of 0, that #weight is kept at exactly 0, which would cause that form element to appear BEFORE the elements that didn't have a #weight defined (and thus received a #weight such as 0.002).
      
      Consider the following pseudo example:
      
      $form['game_title'] = array(
          '#type' => 'textfield',
          ...
          );
      $form['game_description'] = array(
          '#type' => 'textarea',
          ...
          );
      $form['game_format'] = filter_form(variable_get('game_format', NULL));
      return $form;
      
      Here, we're not definiing weights on our two textfields. We then add an filter_form. The second parameter of the filter_form is $weight, which defaults to 0. After this $form hits form_builder, we have weights 0 (game_title), 0.001 (game_description), and 0 (filter_form) respectively. This is then sorted by weight, which causes filter_form (the third element in the array) to appear BEFORE game_description (0 is lighter than 0.001).
      
      The short lesson is: explicitly defining #weight 0 for a form element is probably a bad idea. This patch changes the default #weight of filter_form to NULL, instead of 0, and also removes any other explicit setting of #weight to 0 in core.
      8c02d4ec
  28. 19 Jan, 2006 1 commit
  29. 18 Jan, 2006 1 commit
  30. 31 Dec, 2005 1 commit
  31. 15 Dec, 2005 1 commit
  32. 05 Dec, 2005 2 commits
  33. 02 Dec, 2005 1 commit
  34. 30 Nov, 2005 1 commit
  35. 24 Nov, 2005 1 commit
  36. 23 Nov, 2005 1 commit