Example #1
0
 /**
  * Get a field, creating it if necessary.
  * @param $fieldName string
  * @param $schemaPlugin string
  * @return object Field
  */
 function &buildField($fieldName, $schemaPluginName)
 {
     $field =& $this->getFieldByName($fieldName, $schemaPluginName);
     if (!$field) {
         $schemaDao = DAORegistry::getDAO('SchemaDAO');
         $schema =& $schemaDao->buildSchema($schemaPluginName);
         $field = new Field();
         $field->setName($fieldName);
         $field->setSchemaId($schema->getSchemaId());
         $plugin =& $field->getSchemaPlugin();
         if (!$plugin) {
             fatalError('Unknown schema plugin "' . $schemaPlugin . '"!');
         }
         if (!in_array($fieldName, $plugin->getFieldList())) {
             // This field doesn't actually exist -- return null.
             unset($field);
             $field = null;
             return $field;
         }
         $this->insertField($field);
     }
     return $field;
 }