Пример #1
0
 /**
  * Создает и возвращает новую схему на основе текущей и еще одной.
  * Если какое-то имя поля встречается и в текущей, и в другой схеме -
  * поле в текущей будет перезаписано.
  *
  * @param CM_Fieldschema $1
  * @param CM_Fieldschema $2
  * @return CM_Fieldschema $new_schema
  */
 public static function merge(CM_Fieldschema $schema1, CM_Fieldschema $schema2)
 {
     $new_schema = new CM_Fieldschema();
     foreach (array($schema1, $schema2) as $schema) {
         foreach ($schema->get_field_names() as $name) {
             $new_schema->set_field($name, $schema->get_field($name));
         }
     }
     return $new_schema;
 }
Пример #2
0
 /**
  * @param string $name
  * @return bool
  */
 public function has_field($name, $check_parent = TRUE)
 {
     if ($check_parent and !is_null($this->_parent)) {
         return $this->_fieldschema->has_field($name) or $this->_parent->has_field($name);
     }
     return $this->_fieldschema->has_field($name);
 }
Пример #3
0
 public function test_set_field()
 {
     $fieldschema = new CM_Fieldschema();
     $fieldschema->set_field('test1', new CM_Field_String());
     $this->assertTrue($fieldschema->has_field('test1'));
 }