$_types = explode(',', $GLOBALS['Loader']->Page->DataSet->Document->_type); $_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']; } $_technical_data = array( 'documentupdate' => array( '_rule' => '', 'type' => 'submit', 'caption' => 'Сохранить', ), '' => array( '_rule' => 'permission_write', 'У вас нет прав на изменение текущего документа', ), ); return array_merge($_form, $_technical_data);