private static function parseEntityBlueprint($xml) { $blueprint = new EntityBlueprint((string) $xml['key']); // iterate through blueprints fields, defining them in blueprint object foreach ($xml->field as $f) { $field = new EntityField((string) $f['key']); // common $field->setDisplayName((string) $f->displayName); $field->setDataType((string) $f->dataType); $field->setMimeType((string) $f->mimeType); $field->setPrecision((string) $f->precision); $encType = (string) $f->encType; if (!empty($encType)) { $field->setEncType((string) $f->encType); } $required = (string) $f->required; if (strtolower($required) == "true") { $field->setRequired(true); } else { $field->setRequired(false); } //$field->setMin((string) $f->minimum); $minimum = (string) $f->minimum; if (!empty($minimum)) { $field->setMin($minimum); } //$field->setMax((string) $f->maximum); $maximum = (string) $f->maximum; if (!empty($maximum)) { $field->setMax($maximum); } $field->setRegexp((string) $f->regexp); $field->setExample((string) $f->example); $unique = (string) $f->unique; if (strtolower($unique) == "true") { $field->setUnique(true); } else { $field->setUnique(false); } $field->setForeignKey((string) $f->foreignKey); $field->setForeignValue((string) $f->foreignValue); if ($field->getDataType() == "enum") { $enumOptions = array(); foreach ($f->enumOptions->option as $option) { $enumOptions[] = (string) $option; } $field->setEnumOptions($enumOptions); } $blueprint->add($field); } return $blueprint; }
public function __construct($key) { parent::__construct($key); }
if (empty($blueprintKey)) { $errs[] = "Missing required \"Name\""; } if (file_exists(BPConfig::$path_blueprints . $blueprintKey . ".entity.xml")) { $errs[] = "The name \"{$blueprintKey}\" is already in use by another blueprint"; } } else { // Update an EXISTING blueprint // TODO: process rename requests // rename requests: will be specified by "blueprintKey" //$blueprintKey = $_POST["blueprintKey"]; $blueprintKey = substr($blueprintSignature, 0, strpos($blueprintSignature, ".")); Log::debug("* Alter existing blueprint with key [{$blueprintKey}])"); } // create a Blueprint object $bp = new EntityBlueprint($blueprintKey); // add field for reach "row" of alter form $key = @$_POST["key"]; $data_type = @$_POST["data_type"]; $display_name = @$_POST["display_name"]; $required = @$_POST["required"]; $min = @$_POST["min"]; $max = @$_POST["max"]; $pattern = @$_POST["pattern"]; // regexp (string), precision (decimal), enumOptions (enum), mimeType (text,binary) $unique = @$_POST["unique"]; $example = @$_POST["example"]; $foreign_key = @$_POST["foreign_key"]; $foreign_value = @$_POST["foreign_value"]; $html = ""; for ($i = 0; $i < count($key); $i++) {