/** * Get field list instance for ADT group */ protected function initFieldList() { require_once "Services/ActiveRecord/classes/Fields/class.arFieldList.php"; $this->fields = new arFieldList(); // element => fields $fields = array(); foreach ($this->properties->getActiveRecordFields() as $element_id => $element_fields) { foreach ($element_fields as $field) { $this->field_element_map[$field->getName()] = $element_id; } $fields = array_merge($fields, $element_fields); } $this->fields->setFields($fields); // primary if (sizeof($this->properties->getPrimary()) > 1) { throw new ilException("ilADTActiveRecordWrapper - no complex primary keys supported yet"); } foreach ($this->properties->getPrimary() as $primary_id => $primary_element) { $field = new arField(); $field->setHasField(true); $field->setNotNull(true); $field->setFieldType($this->getActiveRecordFieldTypeFromMDB2($primary_element[0])); $field->setName($primary_id); $this->fields->setPrimaryField($field); } }
public function getActiveRecordFields() { $def = $this->getADT()->getCopyOfDefinition(); $field = new arField(); $field->setHasField(true); $field->setNotNull(!$def->isNullAllowed()); $field->setFieldType(arField::FIELD_TYPE_TEXT); $field->setName($this->getElementId()); $max = $def->getMaxLength(); if ($max !== null) { $field->setLength($max); } return array($field); }
/** * @param arField $field * * @return arViewField */ static function castFromFieldToViewField(arField $field) { require_once './Customizing/global/plugins/Libraries/ActiveRecord/Views/Index/class.arIndexTableField.php'; require_once './Customizing/global/plugins/Libraries/ActiveRecord/Views/Edit/class.arEditField.php'; require_once './Customizing/global/plugins/Libraries/ActiveRecord/Views/Display/class.arDisplayField.php'; $field_class = get_called_class(); $obj = new $field_class($field->getName()); foreach (get_object_vars($field) as $key => $name) { $obj->{$key} = $name; } return $obj; }
protected function initFields() { foreach ($this->getRawFields() as $fieldname => $attributes) { if (self::checkAttributes($attributes)) { $arField = new arField(); $arField->getHasField(true); $arField->loadFromArray($fieldname, $attributes); $this->fields[] = $arField; if ($arField->getPrimary()) { $this->setPrimaryField($arField); } } } }