XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
ModuleInfoAction.class.php
1<?php
10
11 if (!defined('XOOPS_ROOT_PATH')) {
12 exit();
13 }
14
18class Legacy_ModuleInfoAction extends Legacy_Action
19{
23 public $mModuleObject = null;
24 public $mInstalledFlag = false;
25
26 public function getDefaultView(&$controller, &$xoopsUser)
27 {
28 $dirname = xoops_getrequest('dirname');
29 if (!preg_match('/^[a-zA-Z_][a-zA-Z0-9_]*$/', $dirname)) {
30 return LEGACY_FRAME_VIEW_ERROR;
31 }
32
33 if (!is_dir(XOOPS_MODULE_PATH . '/' . $dirname)) {
34 return LEGACY_FRAME_VIEW_ERROR;
35 }
36
37 $moduleHandler =& xoops_gethandler('module');
38 $this->mModuleObject =& $moduleHandler->getByDirname($dirname);
39
40 //
41 // If a module is installed, load modinfo and go to special displaying.
42 //
43 if (is_object($this->mModuleObject)) {
44 $this->mModuleObject->loadAdminMenu();
45 $this->mModuleObject->loadInfo($dirname);
46 if (!is_string($this->mModuleObject->modinfo['adminmenu'])) {
47 $this->mModuleObject->modinfo['adminmenu'] = '';
48 }
49 $this->mInstalledFlag = true;
50 } else {
51 $this->mModuleObject =& $moduleHandler->create();
52 $this->mModuleObject->loadInfoAsVar($dirname);
53 $this->mInstalledFlag = false;
54 }
55
56 return LEGACY_FRAME_VIEW_SUCCESS;
57 }
58
59 public function executeViewSuccess(&$controller, &$xoopsUser, &$renderer)
60 {
61 $renderer->setTemplateName('module_information.html');
62 $renderer->setAttribute('module', $this->mModuleObject);
63 $renderer->setAttribute('installed', $this->mInstalledFlag);
64 }
65
66 public function executeViewError(&$controller, &$xoopsUser, &$renderer)
67 {
68 $controller->executeRedirect('./index.php?action=ModuleList', 1, _AD_LEGACY_ERROR_MODULE_NOT_FOUND);
69 }
70}