public function indexAction() { $this->view->phpVersion = phpversion(); $this->view->databaseVersion = Gio_Db_Mysql::getInstance()->getVersion(); $configs = Gio_Core_Config_Xml::getConfig('install'); $this->view->installInformation = $configs; $modules = Modules_Core_Services_Module::getModulesInstalled(); /** * Add module core to the top array */ $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core')); $quickaccess = array(); if ($modules) { foreach ($modules as $index => $module) { $aboutXml = MOD_DIR . DS . $module['module_id'] . DS . 'configs' . DS . 'about.xml'; if (!file_exists($aboutXml)) { continue; } $aboutXml = @simplexml_load_file($aboutXml); $items = isset($aboutXml->admin->quickaccess->item) ? $aboutXml->admin->quickaccess->item : null; if ($items) { foreach ($items as $item) { $data = array(); $data['module'] = $module['module_id']; $data['route'] = $item->route; $data['lang_key'] = $item->lang_key; $data['thumbnail'] = $item->thumbnail; $quickaccess[] = $data; } } } } $this->view->quickaccess = $quickaccess; }
public function listAction() { $request = $this->getRequest(); if ($request->isPost()) { $this->setNoRender(); $this->disableLayout(); $mod = $request->getPost('mod'); $widgets = Modules_Core_Services_Widget::getWidgets($mod); $this->view->widgets = $widgets; $dbWidgets = Modules_Core_Services_Widget::dbWidgets($mod, true); $installedWidgets = array(); if ($dbWidgets) { foreach ($dbWidgets as $widget) { $installedWidgets[] = $widget['module_id'] . '_' . $widget['widget_id']; } } $this->view->installedWidgets = $installedWidgets; $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'widget' . DS . 'widget.ajax.phtml'; $response = $this->view->render($viewFile); $this->getResponse()->setBody($response); return; } $modules = Modules_Core_Services_Module::getModulesInstalled(); /** * Add module core to the top array */ $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core')); $this->view->modules = $modules; }
public function showAction() { $modules = Modules_Core_Services_Module::getModulesInstalled(); /** * Add module core to the top array */ $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core')); $this->view->modules = $modules; $this->view->route = $this->getRequest()->getParam('route'); }
public function showAction() { $request = $this->getRequest(); $this->view->lang = $request->getParam('lang'); $modules = Modules_Core_Services_Module::getModulesInstalled(); foreach ($modules as $index => $module) { $modules[$index]['resource'] = Gio_Core_Module::getAboutModule($module['module_id'], 'resource'); } $this->view->wModules = $modules; $coreResources = Gio_Core_Module::getAboutModule('core'); $this->view->coreResources = $coreResources; $widgetsToolbox = Modules_Core_Services_Widget::dbWidgetsToolbox(); $this->view->widgetsToolbox = $widgetsToolbox; }
public function uninstallAction() { $this->setNoRender(); $this->disableLayout(); $response = 'RESULT_NOT_OK'; $request = $this->getRequest(); if (!$request->isPost()) { return; } $moduleId = $request->getPost('module_id'); if (null == Modules_Core_Services_Module::getById($moduleId)) { return; } Modules_Core_Services_Module::delete($moduleId); Modules_Core_Services_Module::uninstall($moduleId); $response = 'RESULT_OK'; $this->getResponse()->setBody($response); }
public function run() { $controller = Gio_Core_Controller::getIntance(); $view = Gio_Core_View::getInstance(); $configs = Gio_Core_Config_Xml::getConfig('web'); if ($view->APP_TEMPLATE != (string) $configs->admin->template) { return; } $moduleId = $controller->getModuleName(); /** * Check Module Installed */ if ($moduleId != $this->_coreModule && null == Modules_Core_Services_Module::getById($moduleId)) { Modules_Core_Services_Exception::error('PERMISSION_DENY'); return; } $ruleChecker = Gio_Core_Acl::getIntance(); $actionId = $controller->getActionName(); $controllerId = $controller->getControllerName(); if ($ruleChecker->isAllowed($actionId, $controllerId, $moduleId) === false) { Modules_Core_Services_Exception::error('PERMISSION_DENY'); } }
public function listAction() { $request = $this->getRequest(); if ($request->isPost()) { $this->setNoRender(); $this->disableLayout(); $mod = $request->getPost('mod'); $mod = $mod == 'HOOK_GLOGAL' ? null : $mod; $hooks = Modules_Core_Services_Hook::getHooks($mod); $this->view->hooks = $hooks; $dbHooks = Modules_Core_Services_Hook::dbHooks($mod, true); $installedHooks = array(); if ($dbHooks) { foreach ($dbHooks as $hook) { $installedHooks[] = $hook['module'] . '_' . $hook['name']; } } $this->view->installedHooks = $installedHooks; $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'hook' . DS . 'hook.ajax.phtml'; $response = $this->view->render($viewFile); $this->getResponse()->setBody($response); return; } $modules = Modules_Core_Services_Module::getModulesInstalled(); /** * Add module core to the top array */ $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core')); $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'HOOK_GLOGAL')); $this->view->modules = $modules; }
/** * Perform install actions * * @param bool $importSampleData * @return bool */ public static function install($importSampleData = false, $adminInfo = array()) { try { $view = Gio_Core_View::getInstance(); $moduleDirs = Gio_Core_File::getSubDir(ROOT_DIR . DS . 'modules'); /** * Install modules */ $modules = array(); foreach ($moduleDirs as $module) { $modules[] = Modules_Core_Services_Module::install($module); } foreach ($modules as $module) { if ($module) { Modules_Core_Services_Module::add($module); } } /** * Install widgets */ foreach ($moduleDirs as $module) { /** * Load all widgets from module */ $widgetDirs = Gio_Core_File::getSubDir(ROOT_DIR . DS . 'modules' . DS . $module . DS . 'widgets'); foreach ($widgetDirs as $widgetName) { $widget = array('module_id' => $module, 'widget_id' => $widgetName, 'title' => $view->TRANSLATOR->widget('about_title', $module, $widgetName), 'description' => $view->TRANSLATOR->widget('about_description', $module, $widgetName), 'created_date' => date('Y-m-d H:i:s')); Modules_Core_Services_Widget::add($widget); } } /** * Create resources and previleges */ foreach ($moduleDirs as $module) { $file = ROOT_DIR . DS . 'modules' . DS . $module . DS . 'configs' . DS . 'permissions.xml'; if (!file_exists($file)) { continue; } $xml = simplexml_load_file($file); foreach ($xml->controller as $res) { $attr = $res->attributes(); $langKey = (string) $attr['langKey']; $description = $view->TRANSLATOR->translator($langKey, $module); $description = $description == $langKey ? (string) $attr['description'] : $description; $resource = array('controller_id' => $attr['name'], 'description' => $description, 'module_id' => $module, 'created_date' => date('Y-m-d H:i:s')); /** * Add resource */ Modules_Core_Services_Controller::add($resource); if ($res->action) { foreach ($res->action as $pri) { $attr2 = $pri->attributes(); $langKey = (string) $attr2['langKey']; $description = $view->TRANSLATOR->translator($langKey, $module); $description = $description == $langKey ? (string) $attr2['description'] : $description; $privilege = array('controller_id' => $attr['name'], 'description' => $description, 'module_id' => $module, 'action_id' => $attr2['name'], 'created_date' => date('Y-m-d H:i:s')); Modules_Core_Services_Action::add($privilege); } } } } /** * Finally, init data */ $dbFile = ROOT_DIR . DS . 'install' . DS . 'db.xml'; if (file_exists($dbFile)) { $xml = simplexml_load_file($dbFile); $xpath = $xml->xpath('module/query'); if (is_array($xpath) && count($xpath) > 0) { $conn = Gio_Db_Connection::getConnection(); foreach ($xpath as $query) { $q = str_replace('###table_prefix###', $conn->_tablePrefix, (string) $query); $conn->query($q); } } } /** * Allows user to import sample data */ if ($importSampleData) { $file = ROOT_DIR . DS . 'install' . DS . 'giocms_sample_db.sql'; $importer = Gio_Core_Import_Importer::getInstance(); if ($importer != null && $file != null) { $importer->import($file); } } /** * Create admin user */ $salt = md5(time()); $user = array('username' => $adminInfo['username'], 'password' => md5(md5($adminInfo['password']) . $salt), 'email' => $adminInfo['email'], 'fullname' => $adminInfo['fullname'], 'salt' => $salt, 'status' => 'active', 'created_date' => date('Y-m-d H:i:s'), 'role_id' => 1); Modules_Core_Services_User::add($user); } catch (Exception $ex) { return false; } return true; }
public function roleAction() { $request = $this->getRequest(); $roleId = $request->getParam('role_id'); $role = Modules_Core_Services_Role::getById($roleId); if (null == $role) { return; } $this->view->role = $role; $act = $request->getParam('act'); if ($request->isPost()) { $this->setNoRender(); $this->disableLayout(); $mod = $request->getPost('mod'); $this->view->mod = $mod; $controllers = Modules_Core_Services_Action::getDbActionsByModule($mod); switch ($act) { case 'save': /** * Reset rule for user */ Modules_Core_Services_Rule::reset('role', $role['role_id'], $mod); $actions = $request->getPost('actions'); if ($controllers) { foreach ($controllers as $index => $controller) { if ($controller['actions']) { foreach ($controller['actions'] as $indexAction => $controllerAction) { $allow = 0; if ($actions) { foreach ($actions as $action) { if ($mod . '_' . $controller['controller_id'] . '_' . $controllerAction['action_id'] == $action) { $allow = 1; } } } $rule = array('module_id' => $mod, 'controller_id' => $controller['controller_id'], 'action_id' => $controllerAction['action_id'], 'object_type' => 'role', 'object_id' => $role['role_id'], 'allow' => $allow); $ruleId = Modules_Core_Services_Rule::add($rule); } } } } $this->getResponse()->setBody('RESULT_OK'); return; break; default: $dbRoleRules = Modules_Core_Services_Rule::getRules('role', $role['role_id']); $dbRules = $dbRoleRules; $this->view->dbRules = $dbRules; $this->view->controllers = $controllers; $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'permission' . DS . 'role.ajax.phtml'; $response = $this->view->render($viewFile); $this->getResponse()->setBody($response); return; break; } } $modules = Modules_Core_Services_Module::getModulesInstalled(); /** * Add module core to the top array */ $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core')); $this->view->modules = $modules; }