1. 21 Feb, 2006 1 commit
  2. 14 Feb, 2006 1 commit
  3. 09 Feb, 2006 1 commit
  4. 01 Feb, 2006 1 commit
  5. 29 Jan, 2006 1 commit
  6. 27 Jan, 2006 1 commit
  7. 24 Jan, 2006 1 commit
  8. 22 Jan, 2006 1 commit
  9. 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
  10. 19 Jan, 2006 1 commit
  11. 18 Jan, 2006 1 commit
  12. 31 Dec, 2005 1 commit
  13. 15 Dec, 2005 1 commit
  14. 05 Dec, 2005 2 commits
  15. 02 Dec, 2005 1 commit
  16. 30 Nov, 2005 1 commit
  17. 24 Nov, 2005 1 commit
  18. 23 Nov, 2005 2 commits
  19. 22 Nov, 2005 1 commit
  20. 12 Nov, 2005 2 commits
  21. 01 Nov, 2005 1 commit
  22. 28 Oct, 2005 1 commit
  23. 24 Oct, 2005 1 commit
  24. 23 Oct, 2005 1 commit
  25. 11 Oct, 2005 1 commit
  26. 08 Oct, 2005 1 commit
  27. 07 Oct, 2005 2 commits
  28. 06 Oct, 2005 1 commit
  29. 29 Sep, 2005 1 commit
  30. 23 Sep, 2005 1 commit
  31. 18 Sep, 2005 1 commit
  32. 06 Sep, 2005 1 commit
  33. 30 Aug, 2005 1 commit
    • Dries's avatar
      - Patch #7582 by Gerhard: improved node revisions! · d9d6a6e0
      Dries authored
      All node revisions were stored in a serialized field in the node table and retrieved for _each_ page view although they are rarely needed. We created a separate revisions table which would be in principle identical to the node table, only that it could have several old copies of the same node.  This also allows us to revision-related information, and to provide log entries to non-book pages when a new revision is being created.
      
      TODO:
      
      1. Provide upgrade instructions for node module maintainers!
      2. Upgrade modules that implement node types.
      3. Provide an upgarde path for revisions.  Dependency on the upgrade system.
      d9d6a6e0
  34. 29 Aug, 2005 1 commit
  35. 28 Aug, 2005 1 commit
    • Dries's avatar
      - Patch #29785 by Chx: multiple node types were broken so we refactored · c9fc300b
      Dries authored
        part of the node system!  If you have a module that implements node
        types, you'll have to udpate its CVS HEAD version.
      
        We replaced _node_name() and _node_types() by _node().  The new _node()
        hook let's you define one or more node types, including their names.
        The implementation of the _node() hook needs to:
      
         return array($type1 => array('name' => $name1, 'base' => $base1),
                      $type2 => array('name' => $name2, 'base' => $base2));
      
        where $type is the node type, $name is the human readable name of the type
        and $base is used instead of <hook> for <hook>_load, <hook>_view, etc.
      
        For example, the story module's node hook looks like this:
      
          function story_node() {
            return array('story' => array('name' => t('story'), 'base' => 'story'));
          }
      
        The page module's node hook module like:
      
          function page_node() {
            return array('page' => array('name' => t('page'), 'base' => 'page'));
          }
      
        However, more complex node modules like the project module and the
        flexinode module can use the 'base' parameter to specify a different base.
      
        The project module implements two node types, proejcts and issues, so it
        can do:
      
          function project_node() {
            return array(
             array('project_project' => array('name' => t('project'), 'base' => 'project'),
             array('project_issue' => array('name' => t('issue'), 'base' => 'project_issue'));
          }
      
        In the flexinode module's case there can only one base ...
      
        This hook will simplify the CCK, and will make it easy (or easier) to merge
        the story and page module.
      
        In addition, node_list() became node_get_types().  In addition, we created
        the following functions: node_get_name($type) and node_get_base($type).
      c9fc300b
  36. 25 Aug, 2005 1 commit