Jump to content

Ordering attributes within a node

From NusaATK
Revision as of 11:05, 14 July 2008 by Mjs (talk | contribs) (changed explanation, added reference to setOrder())

ATK Howto: Ordering attributes within a node

Complexity: Basic
Author: Ivo Jansch <ivo@achievo.org>

List of other Howto's

Ordering attributes within a node

By default, fields appear in the order in which they appear in the database. To control the order in which attributes appear within a node (i.e. on a "page"), use atkMetaPolicy::setOrder(), atkMetaPolicy::setIncludes() or the $order argument to either atkMetaNode::add() or atkMetaPolicy::add().

For example:

public static function meta(atkMetaPolicy $policy) {
  $policy->add("invoice_start_date", "atkDateAttribute");
  $policy->add("invoice_end_date", "atkDateAttribute");

  $policy->setOrder(array(
    "invoice_start_date",
    "invoice_end_date"
  ));
}

(The order in which fields are added has no effect because fields are added to nodes before both the settings from atkMetaNode::meta() are applied, and the atkMetaNode::postMeta() method is run--"adding" a field via either of these fields reconfigures an existing node.)