static function initialize($config) { //TODO: автоматически регистрировать тепы из CMS.Fields.Types.* CMS::field_type('input', 'CMS.Fields.Types.Input'); CMS::field_type('hidden', 'CMS.Fields.Types.Hidden'); CMS::field_type('radio', 'CMS.Fields.Types.Radio'); CMS::field_type('checkbox', 'CMS.Fields.Types.Checkbox'); CMS::field_type('select', 'CMS.Fields.Types.Select'); CMS::field_type('textarea', 'CMS.Fields.Types.Textarea'); CMS::field_type('sqldate', 'CMS.Fields.Types.SQLDate'); CMS::field_type('datestr', 'CMS.Fields.Types.DateStr'); CMS::field_type('sqldatestr', 'CMS.Fields.Types.SQLDateStr'); CMS::field_type('upload', 'CMS.Fields.Types.Upload'); CMS::field_type('ajaxupload', 'CMS.Fields.Types.AjaxUpload'); CMS::field_type('subheader', 'CMS.Fields.Types.Subheader'); CMS::field_type('email', 'CMS.Fields.Types.Email'); CMS::field_type('attaches', 'CMS.Fields.Types.Attaches'); CMS::field_type('image', 'CMS.Fields.Types.Image'); CMS::field_type('protect', 'CMS.Fields.Types.Protect'); CMS::field_type('html', 'CMS.Fields.Types.HTML'); CMS::field_type('wiki', 'CMS.Fields.Types.Wiki'); CMS::field_type('gallery', 'CMS.Fields.Types.Gallery'); CMS::field_type('parms', 'CMS.Fields.Types.Parms'); CMS::field_type('tree_select', 'CMS.Fields.Types.TreeSelect'); CMS::field_type('multivalue', 'CMS.Fields.Types.Multivalue'); CMS::field_type('multilink', 'CMS.Fields.Types.Multilink'); CMS::field_type('static_multilink', 'CMS.Fields.Types.StaticMultilink'); CMS::field_type('checkboxes', 'CMS.Fields.Types.Checkboxes'); CMS::field_type('autocomplete', 'CMS.Fields.Types.Autocomplete'); CMS::field_type('content', 'CMS.Fields.Types.Content'); CMS::field_type('documents', 'CMS.Fields.Types.Documents'); CMS::field_type('documents_grid', 'CMS.Fields.Types.DocumentsGrid'); CMS::field_type('youtube', 'CMS.Fields.Types.Youtube'); CMS::field_type('map_coords', 'CMS.Fields.Types.MapCoords'); CMS::field_type('fieldset', 'CMS.Fields.Types.FieldSet'); CMS::field_type('array', 'CMS.Fields.Types.Array'); CMS::field_type('tags', 'CMS.Fields.Types.Tags'); CMS::field_type('iframe', 'CMS.Fields.Types.IFrame'); CMS::field_type('multilang_ext', 'CMS.Fields.Types.ExtendedMultilang'); }
protected function process_component_config($config_name = 'component') { $config = $this->config($config_name); // TODO: split to methods if (isset($config->admin_menu)) { $menu = (object) $config->admin_menu; CMS_Admin::menu($menu->caption, $menu->path, $menu->items, $menu->icon); } if (isset($config->templates)) { $helpers = $config->templates['helpers']; Templates_HTML::use_helpers($helpers); } if (isset($config->field_types)) { $types = $config->field_types; foreach ($types as $name => $class) { CMS::field_type($name, $class); } } if (isset($config->commands)) { $commands = $config->commands; foreach ($commands as $chapter => $data) { $args = array_merge(array($chapter, $data['name'], $data['callback']), isset($data['args']) ? $data['args'] : array()); call_user_func_array(array('CMS', 'add_command'), $args); } } if (isset($config->insertions)) { $insertions = $config->insertions; foreach ($insertions as $ins) { $args = array_merge(array($ins['class']), $ins['names']); call_user_func_array(array('CMS', 'register_insertions'), $args); } } if (isset($config->events)) { $events = $config->events; foreach ($events as $name => $callback) { Events::add_listener($name, $callback); } } if (isset($config->orm)) { $orm = $config->orm; foreach ($orm as $name => $class) { CMS::orm()->submapper($name, $class); } } }
public static function initialize() { CMS::field_type('varcode', 'CMS.Vars.Fields.Code'); }