/** * &_createPermission * * @param int $group * * @return XoopsGroupPerm **/ private function &_createPermission($group) { $gpermHandler =& Rpglink_Utils::getXoopsHandler('groupperm'); $perm =& $gpermHandler->create(); $perm->setVar('gperm_groupid', $group); $perm->setVar('gperm_itemid', $this->_mXoopsModule->getVar('mid')); $perm->setVar('gperm_modid', 1); return $perm; }
/** * getOverrideFileInfo * * @param string $file * @param string $prefix * @param bool $isSpDirName * * @return {string 'theme',string 'file',string 'dirname'} **/ public static function getOverrideFileInfo($file, $prefix = null, $isSpDirName = false) { $ret = array('url' => null, 'path' => null, 'theme' => null, 'dirname' => null, 'file' => null); if (strpos($file, '..') !== false || strpos($prefix, '..' !== false)) { return $ret; } $root =& XCube_Root::getSingleton(); $module =& $root->mContext->mXoopsModule; $dirName = $root->mContext->mRequest->getRequest('dirname'); if ($isSpDirName && preg_match('/^\\w+$/', $dirName)) { $handler =& Rpglink_Utils::getXoopsHandler('module'); $module =& $handler->getByDirname($dirName); } $isModule = is_object($module); $theme = $root->mSiteConfig['Legacy']['Theme']; $ret['theme'] = $theme; $dirName = $isModule ? $module->get('dirname') : null; $trustDirName = $isModule ? $module->getInfo('trust_dirname') : null; $ret['file'] = $file; $file = $prefix . $file; switch (true) { case $isModule && file_exists($path = sprintf('%s/modules/%s/%s', XOOPS_THEME_PATH, $theme, $dirName, $file)): $ret['url'] = sprintf('%s/%s/modules/%s/%s', XOOPS_THEME_URL, $theme, $dirName, $file); $ret['path'] = $path; return $ret; case $isModule && file_exists($path = sprintf('%s/themes/%s/modules/%s/%s', XOOPS_TRUST_PATH, $theme, $trustDirName, $file)): $ret['path'] = $path; $ret['dirname'] = $trustDirName; return $ret; case file_exists($path = sprintf('%s/%s/%s', XOOPS_THEME_PATH, $theme, $file)): $ret['url'] = sprintf('%s/%s/%s', XOOPS_THEME_URL, $theme, $file); $ret['path'] = $path; $ret['dirname'] = null; return $ret; case file_exists($path = sprintf('%s/themes/%s/%s', XOOPS_TRUST_PATH, $theme, $file)): $ret['path'] = $path; $ret['dirname'] = null; return $ret; case $isModule && file_exists($path = sprintf('%s/%s/admin/templates/%s', XOOPS_MODULE_PATH, $dirName, $file)): $ret['url'] = sprintf('%s/%s/admin/templates/%s', XOOPS_MODULE_URL, $dirName, $file); $ret['path'] = $path; $ret['theme'] = null; return $ret; case $isModule && file_exists($path = sprintf('%s/modules/%s/admin/templates/%s', XOOPS_TRUST_PATH, $trustDirName, $file)): $ret['path'] = $path; $ret['theme'] = null; $ret['dirname'] = $trustDirName; return $ret; case file_exists($path = RPGLINK_ADMIN_RENDER_FALLBACK_PATH . '/' . $file): $ret['url'] = RPGLINK_ADMIN_RENDER_FALLBACK_URL . '/' . $file; $ret['path'] = $path; $ret['theme'] = null; $ret['dirname'] = null; return $ret; default: $ret['theme'] = null; $ret['dirname'] = null; $ret['file'] = null; return $ret; } }
/** * updateConfigOrderByInfo * * @param Legacy_PreferenceInformation &$info * @param XoopsModule &$module * @param Legacy_ModuleInstallLog &$log * * @return bool **/ public static function updateConfigOrderByInfo(&$info, &$module, &$log) { $configHandler =& Rpglink_Utils::getXoopsHandler('config'); $cri = new CriteriaCompo(); $cri->add(new Criteria('conf_modid', $module->get('mid'))); $cri->add(new Criteria('conf_catid', 0)); $cri->add(new Criteria('conf_name', $info->mName)); $configs =& $configHandler->getConfigs($cri); if (!(count($configs) > 0 && is_object($configs[0]))) { $log->addError(_MI_RPGLINK_INSTALL_ERROR_CONFIG_NOT_FOUND); return false; } $config =& $configs[0]; $config->set('conf_order', $info->mOrder); if (!$configHandler->insertConfig($config)) { $log->addError(XCube_Utils::formatString(_MI_RPGLINK_INSTALL_ERROR_CONFIG_UPDATED, $config->get('conf_name'))); return false; } return true; }
/** * execute * * @param XCube_Controller &$controller * * @return void **/ public function execute(&$controller) { if ($this->_createAction() === false) { $this->doActionNotFoundError(); die; } if ($this->mAction->prepare() === false) { $this->doPreparationError(); die; } if ($this->mAction->hasPermission() === false) { $this->doPermissionError(); die; } $viewStatus = Rpglink_Utils::getEnv('REQUEST_METHOD') == 'POST' ? $this->mAction->execute() : $this->mAction->getDefaultView(); if (in_array($viewStatus, $this->_mAllowViewNames)) { $methodName = 'executeView' . ucfirst($viewStatus); if (is_callable(array($this->mAction, $methodName))) { $render = $this->getRenderTarget(); $this->mAction->{$methodName}($render); $render->setAttribute('xoops_pagetitle', $this->mAction->getPagetitle()); $this->mAction->setHeaderScript(); } } }
/** * saveXoopsModule * * @param XoopsModule &$module * * @return void **/ public function saveXoopsModule(&$module) { $moduleHandler =& Rpglink_Utils::getXoopsHandler('module'); if ($moduleHandler->insert($module)) { $this->mLog->addReport(_MI_RPGLINK_INSTALL_MSG_UPDATE_FINISHED); } else { $this->mLog->addError(_MI_RPGLINK_INSTALL_ERROR_UPDATE_FINISHED); } }
/** * getBlock * * @param Legacy_AbstractBlockProcedure &$obj * @param XoopsBlock $block * * @return void **/ public static function getBlock(&$obj, $block) { $moduleHandler =& Rpglink_Utils::getXoopsHandler('module'); $module =& $moduleHandler->get($block->get('mid')); if (is_object($module) && $module->getInfo('trust_dirname') == 'rpglink') { require_once RPGLINK_TRUST_PATH . '/blocks/' . $block->get('func_file'); $className = 'Rpglink_' . substr($block->get('show_func'), 4); $obj = new $className($block); } }
/** * _uninstallBlocks * * @param void * * @return void **/ private function _uninstallBlocks() { Rpglink_InstallUtils::uninstallAllOfBlocks($this->_mXoopsModule, $this->mLog); $tplHandler =& Rpglink_Utils::getXoopsHandler('tplfile'); $cri = new Criteria('tpl_module', $this->_mXoopsModule->get('dirname')); if (!$tplHandler->deleteAll($cri)) { $this->mLog->addError(XCube_Utils::formatString(_MI_RPGLINK_INSTALL_ERROR_BLOCK_TPL_DELETED, $tplHandler->db->error())); } }