return IPF_ORM::getTable($this->getModelName());
}
- public function createField()
+ public function createField($extra)
{
$args = array(
'fields' => array(),
$fieldClass = 'IPF_Form_Field_Set';
}
- foreach (IPF_Form_Model::suggestFields($this->getTable(), null, $exclude, null) as $field) {
+ foreach (IPF_Form_Model::suggestFields($this->getTable(), null, $exclude, null, $extra) as $field) {
list($n, $f) = $field;
$args['fields'][$n] = $f;
}
$this->user_fields = $extra['user_fields'];
$exclude = \PFF\Arr::get($extra, 'exclude', array());
- $fields = self::suggestFields($this->model->getTable(), $this->fields(), $exclude, $this);
+ $fields = self::suggestFields($this->model->getTable(), $this->fields(), $exclude, $this, $extra);
foreach ($fields as $field) {
list($n, $f) = $field;
$this->fields[$n] = $f;
}
}
- public static function suggestFields($table, $fields=null, $exclude=array(), $form=null)
+ public static function suggestFields($table, $fields=null, $exclude=array(), $form=null, $extra)
{
$result = array();
if ($f)
$field = array($uname, $f);
} elseif (array_key_exists($uname, $db_columns)) {
- $field = self::createDBField($uname, $table, $db_columns[$uname]);
+ $field = self::createDBField($uname, $table, $db_columns[$uname], $extra);
} elseif (array_key_exists($uname, $db_relations)) {
$field = self::createDBRelation($uname, $db_relations[$uname], $db_columns);
} else {
return $result;
}
- public static function createDBField($name, $table, $col)
+ public static function createDBField($name, $table, $col, $extra)
{
if ($name == $table->getIdentifier())
return null;
if (isset($col['uploadTo']))
$params['uploadTo'] = $col['uploadTo'];
- if (isset($col['email']) && $col['email']) { $form_field = new IPF_Form_Field_Email($params); }
- elseif (isset($col['file']) && $col['file']) { $form_field = new IPF_Form_Field_File($params); }
- elseif (isset($col['image']) && $col['image']) { $form_field = new IPF_Form_Field_Image($params); }
- elseif (isset($col['html']) && $col['html']) { $form_field = new IPF_Admin_Form_Field_Html($params); }
- else { $form_field = new IPF_Form_Field_Varchar($params); }
+ if (isset($col['email']) && $col['email']) {
+ $form_field = new IPF_Form_Field_Email($params);
+ } elseif (isset($col['file']) && $col['file']) {
+ $form_field = new IPF_Form_Field_File($params);
+ } elseif (isset($col['image']) && $col['image']) {
+ $form_field = new IPF_Form_Field_Image($params);
+ } elseif (isset($col['html']) && $col['html']) {
+ $params['widget_attrs'] = array(
+ 'filebrowser_url' => @$extra['filebrowser_url'],
+ );
+ $form_field = new IPF_Admin_Form_Field_Html($params);
+ } else {
+ $form_field = new IPF_Form_Field_Varchar($params);
+ }
break;
case 'boolean':