Example #1
0
 public function init()
 {
     $is_css_cache = cmsCore::getFilesList('cache/static/css', '*.css');
     $is_js_cache = cmsCore::getFilesList('cache/static/js', '*.js');
     return array(array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_SITE, 'childs' => array(new fieldCheckbox('is_site_on', array('title' => LANG_CP_SETTINGS_SITE_ENABLED)), new fieldString('off_reason', array('title' => LANG_CP_SETTINGS_SITE_REASON)), new fieldString('sitename', array('title' => LANG_CP_SETTINGS_SITENAME, 'rules' => array(array('required')))), new fieldString('hometitle', array('title' => LANG_CP_SETTINGS_HOMETITLE, 'rules' => array(array('required')))), new fieldList('frontpage', array('title' => LANG_CP_SETTINGS_FP_SHOW, 'generator' => function ($item) {
         $items = array('none' => LANG_CP_SETTINGS_FP_SHOW_NONE, 'profile' => LANG_CP_SETTINGS_FP_SHOW_PROFILE);
         $ctypes = cmsCore::getModel('content')->getContentTypes();
         if ($ctypes) {
             foreach ($ctypes as $ctype) {
                 if (!$ctype['options']['list_on']) {
                     continue;
                 }
                 $items["content:{$ctype['name']}"] = sprintf(LANG_CP_SETTINGS_FP_SHOW_CONTENT, $ctype['title']);
             }
         }
         return $items;
     })), new fieldList('ctype_default', array('title' => LANG_CP_SETTINGS_CTYPE_DEF, 'hint' => LANG_CP_SETTINGS_CTYPE_DEF_HINT, 'generator' => function ($item) {
         $ctypes = cmsCore::getModel('content')->getContentTypes();
         $items[''] = '';
         if ($ctypes) {
             foreach ($ctypes as $ctype) {
                 $items[$ctype['name']] = $ctype['title'];
             }
         }
         return $items;
     })), new fieldString('metakeys', array('title' => LANG_CP_SETTINGS_METAKEYS)), new fieldText('metadesc', array('title' => LANG_CP_SETTINGS_METADESC)), new fieldCheckbox('is_no_meta', array('title' => LANG_CP_SETTINGS_META_NO_DEFAULT)), new fieldCheckbox('is_sitename_in_title', array('title' => LANG_CP_SETTINGS_IS_SITENAME_IN_TITLE, 'default' => 1)), new fieldCheckbox('is_check_updates', array('title' => LANG_CP_SETTINGS_CHECK_UPDATES)), new fieldString('detect_ip_key', array('title' => LANG_CP_SETTINGS_DETECT_IP_KEY, 'hint' => LANG_CP_SETTINGS_DETECT_IP_KEY_HINT, 'default' => 'REMOTE_ADDR')))), array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_GUI, 'childs' => array(new fieldList('language', array('title' => LANG_CP_SETTINGS_LANGUAGE, 'generator' => function ($item) {
         $langs = cmsCore::getLanguages();
         $items = array();
         if ($langs) {
             foreach ($langs as $lang) {
                 $items[$lang] = mb_strtoupper($lang);
             }
         }
         return $items;
     })), new fieldList('template', array('title' => LANG_CP_SETTINGS_TEMPLATE, 'hint' => '<a href="#" data-url="' . href_to('admin', 'settings', 'theme') . '">' . LANG_CP_SETTINGS_TEMPLATE_OPTIONS . '</a>', 'generator' => function ($item) {
         $tpls = cmsCore::getTemplates();
         $items = array();
         if ($tpls) {
             foreach ($tpls as $tpl) {
                 $items[$tpl] = $tpl;
             }
         }
         return $items;
     })), new fieldList('default_editor', array('title' => LANG_CP_SETTINGS_EDITOR, 'default' => 'redactor', 'generator' => function ($item) {
         $items = array();
         $editors = cmsCore::getWysiwygs();
         foreach ($editors as $editor) {
             $items[$editor] = $editor;
         }
         return $items;
     })), new fieldCheckbox('show_breadcrumbs', array('title' => LANG_CP_SETTINGS_SHOW_BREADCRUMBS, 'default' => 1)), new fieldCheckbox('min_html', array('title' => LANG_CP_SETTINGS_HTML_MINIFY)), new fieldCheckbox('merge_css', array('title' => LANG_CP_SETTINGS_MERGE_CSS, 'hint' => $is_css_cache ? sprintf(LANG_CP_SETTINGS_CACHE_CLEAN_MERGED, href_to('admin', 'clear_cache', 'css')) : false)), new fieldCheckbox('merge_js', array('title' => LANG_CP_SETTINGS_MERGE_JS, 'hint' => $is_js_cache ? sprintf(LANG_CP_SETTINGS_CACHE_CLEAN_MERGED, href_to('admin', 'clear_cache', 'js')) : false)))), array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_DATE, 'childs' => array(new fieldList('time_zone', array('title' => LANG_CP_SETTINGS_TIMEZONE, 'generator' => function ($item) {
         return cmsCore::getTimeZones();
     })), new fieldString('date_format', array('title' => LANG_CP_SETTINGS_DATE_FORMAT, 'rules' => array(array('required')))), new fieldString('date_format_js', array('title' => LANG_CP_SETTINGS_DATE_FORMAT_JS, 'rules' => array(array('required')))))), array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_MAIL, 'childs' => array(new fieldList('mail_transport', array('title' => LANG_CP_SETTINGS_MAIL_TRANSPORT, 'items' => array('mail' => 'PHP mail()', 'smtp' => 'SMTP', 'sendmail' => 'Sendmail'))), new fieldString('mail_from', array('title' => LANG_CP_SETTINGS_MAIL_FROM, 'rules' => array(array('required')))), new fieldString('mail_from_name', array('title' => LANG_CP_SETTINGS_MAIL_FROM_NAME)), new fieldString('mail_smtp_server', array('title' => LANG_CP_SETTINGS_MAIL_SMTP_HOST)), new fieldNumber('mail_smtp_port', array('title' => LANG_CP_SETTINGS_MAIL_SMTP_PORT)), new fieldCheckbox('mail_smtp_auth', array('title' => LANG_CP_SETTINGS_MAIL_SMTP_AUTH)), new fieldString('mail_smtp_user', array('title' => LANG_CP_SETTINGS_MAIL_SMTP_USER)), new fieldString('mail_smtp_pass', array('title' => LANG_CP_SETTINGS_MAIL_SMTP_PASS, 'is_password' => true)), new fieldList('mail_smtp_enc', array('title' => LANG_CP_SETTINGS_MAIL_SMTP_ENC, 'items' => array(0 => LANG_CP_SETTINGS_MAIL_SMTP_ENC_NO, 'ssl' => LANG_CP_SETTINGS_MAIL_SMTP_ENC_SSL, 'tls' => LANG_CP_SETTINGS_MAIL_SMTP_ENC_TLS))))), array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_CACHE, 'childs' => array(new fieldCheckbox('cache_enabled', array('title' => LANG_CP_SETTINGS_CACHE_ENABLED)), new fieldNumber('cache_ttl', array('title' => LANG_CP_SETTINGS_CACHE_TTL)), new fieldList('cache_method', array('title' => LANG_CP_SETTINGS_CACHE_METHOD, 'items' => array('files' => 'Files', 'memory' => 'Memcached' . (extension_loaded('memcache') ? '' : ' (' . LANG_CP_SETTINGS_CACHE_METHOD_NO . ')')))), new fieldString('cache_host', array('title' => LANG_CP_SETTINGS_CACHE_HOST)), new fieldNumber('cache_port', array('title' => LANG_CP_SETTINGS_CACHE_PORT)))), array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_DEBUG, 'childs' => array(new fieldCheckbox('debug', array('title' => LANG_CP_SETTINGS_DEBUG_MODE)), new fieldCheckbox('emulate_lag', array('title' => LANG_CP_SETTINGS_EMULATE_LAG)))), array('type' => 'fieldset', 'title' => LANG_CP_SETTINGS_SECURITY, 'childs' => array(new fieldText('allow_ips', array('title' => LANG_CP_SETTINGS_ALLOW_IPS, 'hint' => LANG_CP_SETTINGS_ALLOW_IPS_HINT)))));
 }
Example #2
0
 public function run($do = false)
 {
     // если нужно, передаем управление другому экшену
     if ($do) {
         $this->runAction('settings_' . $do, array_slice($this->params, 1));
         return;
     }
     $values = $this->cms_config->getAll();
     $values['time_zone'] = $values['cfg_time_zone'];
     $form = $this->getForm('settings');
     if ($this->request->has('submit')) {
         $values = array_merge($values, $form->parse($this->request, true));
         $errors = $form->validate($this, $values);
         if (!$errors) {
             if ($values['cache_method'] == 'memory') {
                 if (!class_exists('Memcache')) {
                     cmsUser::addSessionMessage(LANG_CP_MEMCACHE_NOT_AVAILABLE, 'error');
                     $values['cache_method'] = 'files';
                 }
             }
             if ($values['cache_method'] == 'memory') {
                 $memcache_tester = new Memcache();
                 $memcache_result = @$memcache_tester->connect($values['cache_host'], $values['cache_port']);
                 if (!$memcache_result) {
                     cmsUser::addSessionMessage(LANG_CP_MEMCACHE_CONNECT_ERROR, 'error');
                     $values['cache_method'] = 'files';
                 }
             }
             if (!$values['cache_enabled'] && $values['cache_method'] == 'files') {
                 files_clear_directory($this->cms_config->cache_path . 'data/');
             }
             $result = $this->cms_config->save($values);
             if (!$result) {
                 $errors = array();
                 cmsUser::addSessionMessage(LANG_CP_SETTINGS_NOT_WRITABLE, 'error');
             } else {
                 cmsUser::addSessionMessage(LANG_CP_SAVE_SUCCESS, 'success');
                 $this->redirectToAction('settings');
             }
         } else {
             cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
         }
     }
     $tpls = cmsCore::getTemplates();
     foreach ($tpls as $tpl) {
         if (file_exists($this->cms_config->root_path . 'templates/' . $tpl . '/options.form.php')) {
             $templates_has_options[] = $tpl;
         }
     }
     return $this->cms_template->render('settings', array('templates_has_options' => $templates_has_options, 'do' => 'edit', 'values' => $values, 'form' => $form, 'errors' => isset($errors) ? $errors : false));
 }
Example #3
0
 public function run()
 {
     if (!$this->request->isAjax()) {
         cmsCore::error404();
     }
     $page_id = $this->request->get('page_id', 0);
     $template = $this->request->get('template', '');
     if (!is_numeric($page_id)) {
         cmsCore::error404();
     }
     $tpls = cmsCore::getTemplates();
     if (!$template || !in_array($template, $tpls)) {
         $template = cmsConfig::get('template');
     }
     $widgets_model = cmsCore::getModel('widgets');
     $scheme = $widgets_model->getWidgetBindingsScheme($page_id, $template);
     cmsTemplate::getInstance()->renderJSON(array('is_exists' => $scheme !== false, 'scheme' => $scheme));
 }
Example #4
0
 public function run($do = false)
 {
     // если нужно, передаем управление другому экшену
     if ($do) {
         $this->runAction('widgets_' . $do, array_slice($this->params, 1));
         return;
     }
     cmsCore::loadAllControllersLanguages();
     $widgets_model = cmsCore::getModel('widgets');
     $controllers = $widgets_model->getPagesControllers();
     $widgets_list = $widgets_model->getAvailableWidgets();
     $tpls = cmsCore::getTemplates();
     $template_name = $this->request->get('template_name', '');
     if (!$template_name || !in_array($template_name, $tpls)) {
         $template_name = cmsConfig::get('template');
     }
     foreach ($tpls as $tpl) {
         $templates[$tpl] = $tpl;
     }
     $scheme_html = $this->getSchemeHTML($template_name);
     return $this->cms_template->render('widgets', array('controllers' => $controllers, 'template_name' => $template_name, 'templates' => $templates, 'widgets_list' => $widgets_list, 'scheme_html' => $scheme_html));
 }
Example #5
0
 public function run()
 {
     if (!$this->request->isAjax()) {
         cmsCore::error404();
     }
     $widget_id = $this->request->get('widget_id', 0);
     $page_id = $this->request->get('page_id', 0);
     $position = $this->request->get('position', '');
     $template = $this->request->get('template', '');
     $tpls = cmsCore::getTemplates();
     if (!$template || !in_array($template, $tpls)) {
         $template = cmsConfig::get('template');
     }
     $widgets_model = cmsCore::getModel('widgets');
     $widget = $widgets_model->getWidget($widget_id);
     $binded_id = $widgets_model->addWidgetBinding($widget, $page_id, $position, $template);
     $bind_widget = $widgets_model->getWidgetBinding($binded_id);
     cmsCore::loadWidgetLanguage($bind_widget['name'], $bind_widget['controller']);
     $form = cmsCore::getWidgetOptionsForm($bind_widget['name'], $bind_widget['controller'], false, $bind_widget['template']);
     $data = $form->parse(new cmsRequest($bind_widget));
     $widgets_model->updateWidgetBinding($binded_id, $data);
     $this->cms_template->renderJSON(array('error' => !(bool) $binded_id, 'id' => $binded_id));
 }