Example #1
0
 /**
  * @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;
     }
 }
Example #3
0
 public function getImageNumber()
 {
     $list = Lecat_Utils::getImageNameList($this->getDirname());
     return count($list);
 }
Example #4
0
 /**
  * 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);
 }
Example #5
0
 /**
  * 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));
 }
Example #6
0
 /**
  * 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);
     }
 }
Example #7
0
 /**
  * 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);
     }
 }
Example #8
0
 /**
  * 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;
 }
Example #9
0
 /**
  * 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;
 }
Example #10
0
 /**
  * &_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()));
     }
 }
Example #12
0
 /**
  * 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();
         }
     }
 }