$_types = array('webpage'); $_types = $GLOBALS['Loader']->LoadConfig('documenttypes_add'); $_form = Documents_Document::BuildTypedForm(array_merge(array('base'), $_types)); foreach(array_keys($_form) as $_form_field) { switch ($_form[$_form_field]['fieldtype']){ case 'datetime': $_form[$_form_field]['_rule'][] = 'date'; case 'int': case 'float': $_form[$_form_field]['_rule'][] = 'numeric'; case 'string': $_form[$_form_field]['type'] = 'text'; break; case 'text': case 'array': if (isset($_form[$_form_field]['_rule'][0]) && (($_form[$_form_field]['_rule'][0] == 'nn|files') || ($_form[$_form_field]['_rule'][0] == 'mn|files'))) { $_form[$_form_field]['type'] = 'file'; } else { $_form[$_form_field]['type'] = 'textarea'; } break; case 'boolean': $_form[$_form_field]['type'] = 'checkbox'; break; } $_form[$_form_field]['title'] = $_form[$_form_field]['comment']; $_form[$_form_field]['default'] = '"'.$_form[$_form_field]['def'].'"'; } $_technical_data = array( 'type' => array( '_rule' => 'setstr|'.implode(',', $_types), ), 'documentadd' => array( '_rule' => '', 'type' => 'submit', 'caption' => 'Добавить', ), '' => array( '_rule' => 'permission_add_child', 'У вас нет прав на добавление дочерних докуметов', ), ); return array_merge($_form, $_technical_data);