Exemplo n.º 1
0
 public function displayAccessWarning()
 {
     if (Yii::app()->isCommonSSL) {
         return;
     }
     $access_warning_cookie = Yii::app()->request->cookies['access_warning'];
     if ($access_warning_cookie === null || $access_warning_cookie->value !== 'false') {
         $objModule = Modules::model()->LoadByName('wsaccesswarning');
         if (!$objModule) {
             Yii::import('ext.wsaccesswarning.models.*');
             $arrDefaultConfig = $this->getAdminModel()->getDefaultConfiguration();
             $objModule = new Modules();
             $objModule->module = 'wsaccesswarning';
             $objModule->category = 'extension';
             $objModule->name = 'Site Access Warning';
             $objModule->version = 1;
             $objModule->active = 0;
             $objModule->configuration = serialize($arrDefaultConfig);
             $objModule->save();
         }
         if ($objModule->active) {
             $arrConfig = $objModule->GetConfigValues();
             $globalScript = sprintf("var accessWarningMessage = %s;", json_encode($this->_transformMessageForDisplay($arrConfig['message'])));
             // No HTML tags are allowed in the button caption so we encode to HTML entities.
             $globalScript .= sprintf("var accessWarningButtonCaption = %s;", json_encode(CHtml::encode($arrConfig['button_caption'])));
             $assets = Yii::app()->getAssetManager()->publish(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'assets');
             $cs = Yii::app()->getClientScript();
             $cs->registerScript('_', $globalScript, CClientScript::POS_HEAD);
             $cs->registerCssFile($assets . '/css/wsaccesswarning.css');
             $cs->registerScriptFile($assets . '/thirdparty/carhartl-jquery-cookie/jquery.cookie.js');
             $cs->registerScriptFile($assets . '/js/wsaccesswarning.js');
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Chuc nang: cai dat cac module vao he thong
  * @param type $mod_name
  * @return boolean
  */
 public function actionInstallModule($mod_name)
 {
     $ok = @(include_once Yii::app()->getBasePath() . '/modules/' . $mod_name . '/setup.php');
     // Kiem tra ton tai file setup trong module
     if (!$ok) {
         $this->render('_view_error', array('msg' => 'Module setup file could not be found.'));
         return false;
     }
     // Kiem tra da dat ten module chua
     if (!$config['mod_name']) {
         $this->render('_view_error', array('msg' => 'Module does not have a valid setup module name defined.'));
         return false;
     }
     $modelMol = Modules::model()->findAll();
     $module = new Modules();
     $module->module_directory = $mod_name;
     $module->module_name = $config['mod_name'];
     $module->module_text = isset($config['mod_ui_name']) ? $config['mod_ui_name'] : $config['mod_name'];
     $module->modules_description = $config['mod_description'];
     $module->module_hidden = 0;
     $module->module_order = count($modelMol) + 1;
     if ($module->save()) {
         if (isset($config['mod_permission_define']) && count($config['mod_permission_define']) > 0) {
             foreach ($config['mod_permission_define'] as $defineItem) {
                 $definepermission = new DefinePermission();
                 $definepermission->module_id = $module->lb_record_primary_key;
                 $definepermission->define_permission_name = $defineItem;
                 $definepermission->save();
             }
         }
         $this->redirect($this->createUrl('viewModules'));
     }
 }
 function addsubmitAction()
 {
     if ($this->request->isPost()) {
         $name = $this->request->getPost('name');
         $description = $this->request->getPost('description');
         $system_id = $this->request->getPost('system_id');
         $modules = new Modules();
         $modules->name = $name;
         $modules->description = $description;
         $modules->system_id = $system_id;
         if ($modules->save() == false) {
             foreach ($modules->getMessages() as $message) {
                 $this->flash->error((string) $message);
             }
         } else {
             $this->flash->success('Add New Modules Success');
             $this->response->redirect('modules/system/' . $system_id);
         }
     }
 }
Exemplo n.º 4
0
 /**
  * @deprecated
  * DO NOT USE
  *
  * Like {@link actionRegisterModules} this method is not yet ready for use.
  * Please refrain from attempting to use this module or it will likely create
  * issues in your installation.
  *
  * @param string $module The name of the module being toggled.
  */
 public function actionToggleModule($module)
 {
     $config = (include "protected/modules/{$module}/register.php");
     $exists = Modules::model()->findByAttributes(array('name' => $module));
     if (!isset($exists)) {
         $moduleRecord = new Modules();
         $moduleRecord->editable = $config['editable'] ? 1 : 0;
         $moduleRecord->searchable = $config['searchable'] ? 1 : 0;
         $moduleRecord->adminOnly = $config['adminOnly'] ? 1 : 0;
         $moduleRecord->custom = $config['custom'] ? 1 : 0;
         $moduleRecord->toggleable = $config['toggleable'] ? 1 : 0;
         $moduleRecord->name = $module;
         $moduleRecord->title = $config['name'];
         $moduleRecord->visible = 1;
         $moduleRecord->menuPosition = Modules::model()->count();
         if ($moduleRecord->save()) {
             $install = $config['install'];
         }
     } else {
         $exists->visible = $exists->visible ? 0 : 1;
         if ($exists->save()) {
             if ($exists->toggleable) {
                 $uninstall = $config['uninstall'];
             } else {
             }
         }
     }
     $this->redirect('registerModules');
 }
 /**
  * Look for all modules (class files) in extensions folder.
  *
  * @param string $moduletype Type of module which determines what folder to scan.
  *
  * @return void
  */
 public function scanModules($moduletype = "payment")
 {
     if ($moduletype == "theme") {
         $files = glob(YiiBase::getPathOfAlias('webroot.themes') . '/*', GLOB_ONLYDIR);
         foreach ($files as $key => $file) {
             if (stripos($file, '/themes/trash') > 0 || stripos($file, '/themes/_customcss') > 0) {
                 unset($files[$key]);
             }
         }
     } else {
         $arrCustom = array();
         if (file_exists(YiiBase::getPathOfAlias("custom.extensions." . $moduletype))) {
             $arrCustom = glob(realpath(YiiBase::getPathOfAlias("custom.extensions." . $moduletype)) . '/*', GLOB_ONLYDIR);
         }
         if (!is_array($arrCustom)) {
             $arrCustom = array();
         }
         $files = array_merge(glob(realpath(YiiBase::getPathOfAlias('ext.ws' . $moduletype)) . '/*', GLOB_ONLYDIR), $arrCustom);
     }
     foreach ($files as $file) {
         $moduleName = mb_pathinfo($file, PATHINFO_BASENAME);
         $version = 0;
         $name = $moduleName;
         if ($moduletype === 'theme') {
             $model = Yii::app()->getComponent('wstheme')->getAdminModel($moduleName);
             $configuration = '';
             if ($model) {
                 $version = $model->version;
                 $name = $model->name;
                 $configuration = $model->getDefaultConfiguration();
             }
         } else {
             try {
                 $version = Yii::app()->getComponent($moduleName)->Version;
                 $name = Yii::app()->getComponent($moduleName)->AdminNameNormal;
                 $configuration = Yii::app()->getComponent($moduleName)->getDefaultConfiguration();
             } catch (Exception $e) {
                 Yii::log("{$moduleName} component can't be read " . $e, 'error', 'application.' . __CLASS__ . "." . __FUNCTION__);
             }
         }
         //Check if module is already in database
         $objModule = Modules::LoadByName($moduleName);
         if (!$objModule instanceof Modules) {
             //The module doesn't exist, attempt to install it
             try {
                 $objModule = new Modules();
                 $objModule->active = 0;
                 $objModule->module = $moduleName;
                 $objModule->category = $moduletype;
                 $objModule->version = $version;
                 $objModule->name = $name;
                 $objModule->configuration = $configuration;
                 if (!$objModule->save()) {
                     Yii::log("Found widget {$moduleName} could not install " . print_r($objModule->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__);
                 }
             } catch (Exception $e) {
                 Yii::log("Found {$moduletype} widget {$moduleName} could not install " . $e, 'error', 'application.' . __CLASS__ . "." . __FUNCTION__);
             }
         }
         $objModule->version = $version;
         $objModule->name = $name;
         $objModule->save();
     }
 }
Exemplo n.º 6
0
 protected function changeTheme($post)
 {
     if (_xls_get_conf('THEME') != $post['theme']) {
         //we're going to swap out template information
         //Get (or create) Module entry for this theme.
         //If outgoing theme does not have an Admin Form,
         if (!Theme::hasAdminForm(_xls_get_conf('THEME'))) {
             $objCurrentSettings = Modules::model()->findByAttributes(array('module' => _xls_get_conf('THEME'), 'category' => 'theme'));
             if (!$objCurrentSettings) {
                 $objCurrentSettings = new Modules();
                 $objCurrentSettings->active = 1;
             }
             $objCurrentSettings->module = _xls_get_conf('THEME');
             $objCurrentSettings->category = 'theme';
             $arrDimensions = array();
             $arrItems = Configuration::model()->findAllByAttributes(array('template_specific' => 1));
             foreach ($arrItems as $objConf) {
                 $arrDimensions[$objConf->key_name] = $objConf->key_value;
             }
             $objCurrentSettings->configuration = serialize($arrDimensions);
             if (!$objCurrentSettings->save()) {
                 Yii::log("Error on switching old theme " . print_r($objCurrentSettings->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__);
             }
             unset($objCurrentSettings);
         }
         //Now that we've saved the current settings, see if there are new ones to load
         $objCurrentSettings = Modules::model()->findByAttributes(array('module' => $post['theme'], 'category' => 'theme'));
         list($themeDefaults, $themeVersion) = $this->loadDefaults($post['theme']);
         $themeVersion = round($themeVersion, PHP_ROUND_HALF_DOWN);
         if ($objCurrentSettings) {
             //We found settings, load them
             $arrDimensions = unserialize($objCurrentSettings->configuration);
             if (is_array($arrDimensions)) {
                 foreach ($arrDimensions as $key => $val) {
                     _xls_set_conf($key, $val);
                 }
             }
             //Make sure our version number is up to date
             $objCurrentSettings->version = $themeVersion;
             if (!$objCurrentSettings->save()) {
                 Yii::log("Error on switching themes " . print_r($objCurrentSettings->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__);
             }
         } else {
             //Create entry in our modules table
             $objCurrentSettings = new Modules();
             $objCurrentSettings->module = $post['theme'];
             $objCurrentSettings->category = 'theme';
             $objCurrentSettings->configuration = serialize($themeDefaults);
             $objCurrentSettings->version = $themeVersion;
             $objCurrentSettings->active = 1;
             //we use this for autochecking
             if (!$objCurrentSettings->save()) {
                 Yii::log("Error on new module entry when switching themes " . print_r($objCurrentSettings->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__);
             }
         }
     }
     _xls_set_conf('THEME', $post['theme']);
     Yii::app()->theme = $post['theme'];
     if (isset($post['subtheme-' . $post['theme']])) {
         $child = $post['subtheme-' . $post['theme']];
     } else {
         $child = "";
         $arrOptions = $this->buildSubThemes($post['theme']);
         if ($arrOptions) {
             $keys = array_keys($arrOptions);
             $child = array_shift($keys);
         }
     }
     _xls_set_conf('CHILD_THEME', $child);
     // now that we have changed themes, rebuild the activecss array
     $arrActiveCss = Yii::app()->theme->info->cssfiles;
     $arrActiveCss[] = Yii::app()->theme->config->CHILD_THEME;
     Yii::app()->theme->config->activecss = $arrActiveCss;
     Yii::app()->user->setFlash('success', Yii::t('admin', 'Theme set as "{theme}" at {time}.', array('{theme}' => Yii::app()->theme->info->name, '{time}' => date("d F, Y  h:i:sa"))));
     $arrThemes = $this->getInstalledThemes();
     $this->beforeAction('manage');
     _xls_check_version();
     //to report new active theme
     return $arrThemes;
 }
Exemplo n.º 7
0
 protected function load_module($id, $flag = false)
 {
     $path = \Yii::getPathOfAlias("application.modules");
     $active = 1;
     $model = Modules::model()->findByAttributes(array('name' => $id));
     if ($model) {
         if ($model->active == 1) {
             $active = 0;
         }
     } else {
         $model = new Modules();
     }
     $model->core = $flag;
     if (true === $flag) {
         $active = 1;
     }
     $info = @(include $path . $id . '/info.php');
     $classes = $path . $id . '/class.php';
     $model->name = $id;
     $model->label = $info['label'];
     $model->memo = $info['memo'];
     $model->active = $active;
     if (!$model->save()) {
     }
     /**
      * reload modules
      * 重新加载模块
      */
     return $model->active;
 }
Exemplo n.º 8
0
    <table class="table table-bordered table-hover table-striped">
        <thead>
            <tr>
                <td>Модуль</td>
                <td>Статус</td>
                <td>Включить</td>
                <td>Отключить</td>
            </tr>
        </thead>
        <tbody>

            <?php 
$class = new Modules();
if (isset($_GET['enable'])) {
    $class->enable($_GET['enable']);
    $class->save();
    echo "<div class='alert alert-success'>Модуль включён</div>";
}
if (isset($_GET['disable'])) {
    $class->disable($_GET['disable']);
    $class->save();
    echo "<div class='alert alert-success'>Модуль отключён</div>";
}
$mods = $class->getModules();
$skip = array('.', '..', '.htaccess', '.conf');
$files = scandir(MODS_ROOT);
foreach ($files as $file) {
    if (!in_array($file, $skip)) {
        $status = in_array($file, $mods) ? "Включён" : "Отключён";
        echo "<tr><td> <b><font size=3>" . $file . "</font></b> </td><td> <b>" . $status . "</b> </td><td> [<a href='?enable=" . $file . "'>Включить</a>] </td><td> [<a href='?disable=" . $file . "'>Отключить</a>] </td></tr>";
    }