/** * @public * set permission action master from Set "actions". */ function setActionArr() { $actionArr = Lecat_Utils::getActorList($this->mDirname); $i = 0; foreach (array_keys($actionArr['title']) as $key) { $this->mActionArr['key'][$i] = $actionArr['key'][$key]; $this->mActionArr['name'][$i] = $actionArr['title'][$key]; $i++; } }
/** * 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 =& Lecat_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 = LECAT_ADMIN_RENDER_FALLBACK_PATH . '/' . $file): $ret['url'] = LECAT_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; } }
public function getImageNumber() { $list = Lecat_Utils::getImageNameList($this->getDirname()); return count($list); }
/** * executeViewSuccess * * @param XCube_RenderTarget &$render * * @return void **/ public function executeViewSuccess(&$render) { $render->setTemplateName($this->mAsset->mDirname . '_cat_view.html'); //format Permissions for html form $permissions = new Lecat_Permission($this->mAsset->mDirname, $this->mObject); $gPermit = $this->mObject->getThisPermit() ? $this->mObject->getThisPermit() : array(); $permissions->setPermissions($gPermit); //set renders $render->setAttribute('dirname', $this->mAsset->mDirname); $render->setAttribute('object', $this->mObject); $render->setAttribute('childrenTree', $this->mObjectHandler->getTree()); $render->setAttribute('permitObj', $permissions); //modules confinement $render->setAttribute('modulesArr', $this->mObject->getModuleArr()); //for permit addition $this->mActionForm->load($this->mPermit); $render->setAttribute('actionFormPermit', $this->mActionForm); $list = array(); $clientList = Lecat_Utils::getClientList($this->mAsset->mDirname); $render->setAttribute('clientList', $clientList); $list = array('title' => array(), 'template_name' => array(), 'data' => array(), 'dirname' => array(), 'dataname' => array()); foreach ($clientList as $client) { $list = $this->mObject->getClientData($client, $list); } $render->setAttribute('clients', $list); }
/** * executeViewInput * * @param XCube_RenderTarget &$render * * @return void **/ public function executeViewInput(&$render) { $catHandler = $this->_getHandler(); //load Category for Parent Selection if ($this->mObject->get('cat_id')) { $catCriteria = new CriteriaCompo(); $catCriteria->add(new Criteria('cat_id', $this->mObject->get('cat_id'), '!=')); $catArr = $catHandler->getObjects($catCriteria); } else { $catArr = $catHandler->getTree(); } //remove descendant categories $deepest = 0; //the deepest category level in given category's descendant foreach (array_keys($catArr) as $keyD) { $catArr[$keyD]->loadCatPath(); //var_dump($catArr[$keyD]->mCatPath); if (is_array($catArr[$keyD]->mCatPath['cat_id']) && in_array($this->mObject->get('cat_id'), $catArr[$keyD]->mCatPath['cat_id'])) { if ($deepest < $catArr[$keyD]->getDepth()) { $deepest = $catArr[$keyD]->getDepth(); } unset($catArr[$keyD]); } } //remove depth limit overed categories $maxdepth = $this->mModule->getModuleConfig('maxdepth'); if ($maxdepth != 0) { //maxdepth==0 means unlimited depth foreach (array_keys($catArr) as $keyL) { if ($maxdepth < $catArr[$keyL]->getDepth() + $deepest - $this->mObject->getDepth() + 1 || $maxdepth < $catArr[$keyL]->getDepth() + 1) { unset($catArr[$keyL]); } } } //set renders $render->setTemplateName($this->mAsset->mDirname . '_cat_edit.html'); $render->setAttribute('actionForm', $this->mActionForm); $render->setAttribute('object', $this->mObject); $render->setAttribute('catArr', $catArr); $render->setAttribute('dirname', $this->mAsset->mDirname); //setup images $this->mObject->setupImages($isPost = false); $render->setAttribute('imageObjs', $this->mObject->mImage); $render->setAttribute('imageNameList', Lecat_Utils::getImageNameList($this->mAsset->mDirname)); }
/** * saveXoopsModule * * @param XoopsModule &$module * * @return void **/ public function saveXoopsModule(&$module) { $moduleHandler =& Lecat_Utils::getXoopsHandler('module'); if ($moduleHandler->insert($module)) { $this->mLog->addReport(_MI_LECAT_INSTALL_MSG_UPDATE_FINISHED); } else { $this->mLog->addError(_MI_LECAT_INSTALL_ERROR_UPDATE_FINISHED); } }
/** * getBlock * * @param Legacy_AbstractBlockProcedure &$obj * @param XoopsBlock $block * * @return void **/ public static function getBlock(&$obj, $block) { $moduleHandler =& Lecat_Utils::getXoopsHandler('module'); $module =& $moduleHandler->get($block->get('mid')); if (is_object($module) && $module->getInfo('trust_dirname') == 'lecat') { require_once LECAT_TRUST_PATH . '/blocks/' . $block->get('func_file'); $className = 'Lecat_' . substr($block->get('show_func'), 4); $obj = new $className($block); } }
/** * updateConfigOrderByInfo * * @param Legacy_PreferenceInformation &$info * @param XoopsModule &$module * @param Legacy_ModuleInstallLog &$log * * @return bool **/ public static function updateConfigOrderByInfo(&$info, &$module, &$log) { $configHandler =& Lecat_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_LECAT_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_LECAT_INSTALL_ERROR_CONFIG_UPDATED, $config->get('conf_name'))); return false; } return true; }
/** * Has client date ? * Mainly this method is used when category is going to be deleted. * * @param array $client * * @return mixed[] **/ public function hasClientData() { $clientList = Lecat_Utils::getClientList($this->getDirname()); $list = array('title' => array(), 'template_name' => array(), 'data' => array(), 'dirname' => array(), 'dataname' => array()); foreach ($clientList as $client) { $list = $this->getClientData($client, $list); if (count($list['data']) > 0) { return true; } } return false; }
/** * &_createPermission * * @param int $group * * @return XoopsGroupPerm **/ private function &_createPermission($group) { $gpermHandler =& Lecat_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; }
/** * _uninstallBlocks * * @param void * * @return void **/ private function _uninstallBlocks() { Lecat_InstallUtils::uninstallAllOfBlocks($this->_mXoopsModule, $this->mLog); $tplHandler =& Lecat_Utils::getXoopsHandler('tplfile'); $cri = new Criteria('tpl_module', $this->_mXoopsModule->get('dirname')); if (!$tplHandler->deleteAll($cri)) { $this->mLog->addError(XCube_Utils::formatString(_MI_LECAT_INSTALL_ERROR_BLOCK_TPL_DELETED, $tplHandler->db->error())); } }
/** * 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 = Lecat_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(); } } }