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);
 }
Пример #3
0
     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++) {