public function form() { $timezoneList = timezone_identifiers_list(); sort($timezoneList); $timezoneList = array_combine($timezoneList, $timezoneList); // Общие настроки $ret = array('elements' => array(Form::tab(Yii::t('cms', 'General settings')), 'sitename' => array('type' => 'text', 'size' => 60), 'adminEmail' => array('type' => 'text', 'size' => 60), 'language' => array('type' => 'LanguageSelect', 'empty' => null), 'timezone' => array('type' => 'dropdownlist', 'items' => $timezoneList), 'autoSave' => array('type' => 'checkbox'), 'slugTransliterate' => array('type' => 'checkbox'), 'slugLowercase' => array('type' => 'checkbox'), 'pageOnError403' => array('type' => 'PageSelect'), 'pageOnError404' => array('type' => 'PageSelect'), Form::tab(Yii::t('cms', 'Appearance')), 'theme' => array('type' => 'ThemeSelect', 'empty' => null), 'defaultsPerPage' => array('type' => 'Slider', 'options' => array('min' => 1, 'max' => 50)), 'showWidgetAppearance' => array('type' => 'checkbox'), 'ajaxPager' => array('type' => 'checkbox'), 'ajaxPagerScroll' => array('type' => 'checkbox'), Form::tab(Yii::t('cms', 'Users')), 'defaultsShowEmail' => array('type' => 'dropdownlist', 'items' => Role::builtInRoles()), 'defaultsSendMessage' => array('type' => 'dropdownlist', 'items' => Role::builtInRoles()), 'userExtraFields' => array('type' => 'FieldSet'), Form::tab(Yii::t('cms', 'Performance')), 'cacheTime' => array('type' => 'Slider', 'options' => array('min' => 0, 'max' => 3600, 'step' => 60), 'hint' => Yii::t('cms', 'in seconds, 0 = off, 3600 - one hour')))); // Настройки для юнитов $units = ContentUnit::getInstalledUnits(); $ret['elements'][] = Form::tab(Yii::t('cms', 'Units settings')); foreach ($units as $unitClass) { if (method_exists($unitClass, 'settings')) { $elems = call_user_func(array($unitClass, 'settings'), $unitClass); if (is_array($elems) && !empty($elems)) { $ret['elements'][] = Form::section(call_user_func(array($unitClass, 'name'))); foreach ($elems as $k => $elem) { $ret['elements'][$unitClass . '.' . $k] = $elem; } } } } return self::localizedForm($ret); }
height: Math.ceil(\$(window).height()*0.5), width: 400 }); return false; } JS ) : null))); $buttons = array('filemanager' => array('icon' => 'files', 'title' => Yii::t('cms', 'File manager'), 'click' => 'js:function()' . <<<JS { var url = '/?r=files/manager&language={$language}'; window.open( url, 'filemanager','width=950, height=550, location=0, status=no, toolbar=no, menubar=no, scrollbars=yes, resizable=yes'); return false; } JS )); $units = ContentUnit::getInstalledUnits(true); $modelToolbars = ''; foreach ($units as $unitClassName => $unitName) { $widgets = call_user_func(array($unitClassName, 'widgets')); $models = array(); foreach ($widgets as $widgetClassName) { $models[] = call_user_func(array($widgetClassName, 'modelClassName')); } $models = array_diff(call_user_func(array($unitClassName, 'models')), $models); foreach ($models as $modelClassName) { $buttons[$modelClassName] = array('icon' => 'data', 'title' => call_user_func(array($modelClassName, 'modelName')), 'click' => 'js:function()' . <<<JS { cmsLoadDialog('/?r=records/list&className={$modelClassName}&language={$language}'); return false; } JS
public static function getInstalledModels($flatten = false) { $units = ContentUnit::getInstalledUnits(true); $return = array(); $unitConfig = ContentUnit::loadConfig(); foreach ($units as $unitClassName => $name) { $unit = array('className' => $unitClassName, 'name' => $name, 'icon' => call_user_func(array($unitClassName, 'icon')), 'models' => array()); $dir = strtolower(substr($unitClassName, 4)); $models = call_user_func(array($unitClassName, 'models')); foreach ($models as $className => $alias) { if (is_int($className)) { $className = $alias; $alias = $unitConfig[$unitClassName] . '.' . $dir . '.' . $className; } $unit['models'][] = array('className' => $className, 'name' => call_user_func(array($className, 'modelName')), 'icon' => call_user_func(array($className, 'icon'))); } $return[] = $unit; } if ($flatten) { $units = $return; $models = array(); foreach ($units as $unit) { foreach ($unit['models'] as $model) { $models[$model['className']] = $model['name']; } } $return = $models; } return $return; }
public static function getInstalledWidgets() { $units = ContentUnit::getInstalledUnits(true); $return = array(); $unitConfig = ContentUnit::loadConfig(); foreach ($units as $unitClassName => $name) { $unit = array('className' => $unitClassName, 'name' => $name, 'icon' => call_user_func(array($unitClassName, 'icon')), 'widgets' => array()); $dir = strtolower(substr($unitClassName, 4)); $widgets = call_user_func(array($unitClassName, 'widgets')); foreach ($widgets as $className => $alias) { if (is_int($className)) { $className = $alias; $alias = $unitConfig[$unitClassName] . '.' . $dir . '.' . $className; } $unit['widgets'][] = array('className' => $className, 'name' => call_user_func(array($className, 'name')), 'icon' => call_user_func(array($className, 'icon'))); } $return[] = $unit; } return $return; }