function psort($field, $property, $order = "ASC") { $sorted_items = $this->_items; self::$sort_field = $field; self::$sort_property = $property; if ($order == "ASC") { usort( $sorted_items, create_function('$a,$b', '$prop = MEOW_FieldSetCollection::$sort_property; return strcmp($a->f(MEOW_FieldSetCollection::$sort_field)->$prop(), $b->f(MEOW_FieldSetCollection::$sort_field)->$prop());')); } else { usort( $sorted_items, create_function('$a,$b', '$prop = MEOW_FieldSetCollection::$sort_property return strcmp($b->f(MEOW_FieldSetCollection::$sort_field)->$prop(), $a->f(MEOW_FieldSetCollection::$sort_field)->$prop());')); } return new MEOW_VirtualFieldSetCollection($sorted_items); }
function set($name, $object = NULL, $object_type = NULL) { $info = $this->infer_object($object, $object_type); extract($info); if ($object->exists()) { $site_id = $object->site_id(); $here = isset($this->field_sets[$site_id][$object_type][$object->id][$name]); if ($here) { // the set needs to be refetched if it has been updated $here = !$this->field_sets[$site_id][$object_type][$object->id][$name]->is_updated(); } if (!$here) { $set = new MEOW_FieldSetCollection($name, $object); if (!isset($this->field_sets[$site_id])) { $this->field_sets[$site_id] = array(); } if (!isset($this->field_sets[$site_id][$object_type])) { $this->field_sets[$site_id][$object_type] = array(); } if (!isset($this->field_sets[$site_id][$object_type][$object->id] )) { $this->field_sets[$site_id][$object_type][$object->id] = array(); } if ($set->exists()) { $this->field_sets[$site_id][$object_type][$object->id][$name] = $set; } else { $this->field_sets[$site_id][$object_type][$object->id][$name] = new WOOF_Silent(sprintf(__("Cannot find the field set named '%s'", MASTERPRESS_DOMAIN), $name)); } } return $this->field_sets[$site_id][$object_type][$object->id][$name]; } return new WOOF_Silent(__("No current object to retrieve the property or set named '$name'", MASTERPRESS_DOMAIN)); }