75 public $mUpdateSuccess =
null;
80 public $mUpdateFail =
null;
82 public $mXoopsModule =
null;
84 public $mInstaller =
null;
89 protected $mActionForm;
94 protected $mErrorMessages;
99 protected $mModuleObjects;
100 public function __construct()
102 parent::__construct();
103 $this->mActionForm =
null;
104 $this->mErrorMessages = [];
105 $this->mModuleObjects = [];
108 $this->mUpdateSuccess->register(
'Legacy_ModuleUpdateAction.UpdateSuccess');
111 $this->mUpdateFail->register(
'Legacy_ModuleUpdateAction.UpdateFail');
114 public function prepare(&$controller, &$xoopsUser)
116 $dirname = $controller->mRoot->mContext->mRequest->getRequest(
'dirname');
118 $handler =& xoops_gethandler(
'module');
119 $this->mXoopsModule =& $handler->getByDirname($dirname);
121 if (!is_object($this->mXoopsModule)) {
125 $this->_setupActionForm();
132 $this->mInstaller->setCurrentXoopsModule($this->mXoopsModule);
137 $name = $this->mXoopsModule->get(
'name');
138 $this->mXoopsModule->loadInfoAsVar($dirname);
139 $this->mXoopsModule->set(
'name', $name);
140 $this->mInstaller->setTargetXoopsModule($this->mXoopsModule);
145 public function _setupActionForm()
148 $this->mActionForm->prepare();
159 $dirname = $this->mXoopsModule->get(
'dirname');
164 public function getDefaultView(&$controller, &$xoopsUser)
166 $this->mActionForm->load($this->mXoopsModule);
168 return LEGACY_FRAME_VIEW_INPUT;
171 public function execute(&$controller, &$xoopsUser)
173 if (isset($_REQUEST[
'_form_control_cancel'])) {
174 return LEGACY_FRAME_VIEW_CANCEL;
177 $this->mActionForm->fetch();
178 $this->mActionForm->validate();
180 if ($this->mActionForm->hasError()) {
181 return $this->getDefaultView($controller, $xoopsUser);
184 $this->mInstaller->setForceMode($this->mActionForm->get(
'force'));
185 $this->mInstaller->executeUpgrade();
187 return LEGACY_FRAME_VIEW_SUCCESS;
190 public function executeViewSuccess(&$controller, &$xoopsUser, &$renderer)
192 if (!$this->mInstaller->mLog->hasError()) {
193 $this->mUpdateSuccess->call(
new XCube_Ref($this->mXoopsModule),
new XCube_Ref($this->mInstaller->mLog));
194 XCube_DelegateUtils::call(
'Legacy.Admin.Event.ModuleUpdate.' . ucfirst($this->mXoopsModule->get(
'dirname')) .
'.Success',
new XCube_Ref($this->mXoopsModule),
new XCube_Ref($this->mInstaller->mLog));
195 XCube_DelegateUtils::call(
'Legacy.Admin.Event.ModuleUpdate.Success',
new XCube_Ref($this->mXoopsModule),
new XCube_Ref($this->mInstaller->mLog));
197 $this->mUpdateFail->call(
new XCube_Ref($this->mXoopsModule),
new XCube_Ref($this->mInstaller->mLog));
198 XCube_DelegateUtils::call(
'Legacy.Admin.Event.ModuleUpdate.' . ucfirst($this->mXoopsModule->get(
'dirname')) .
'.Fail',
new XCube_Ref($this->mXoopsModule),
new XCube_Ref($this->mInstaller->mLog));
199 XCube_DelegateUtils::call(
'Legacy.Admin.Event.ModuleUpdate.Fail',
new XCube_Ref($this->mXoopsModule),
new XCube_Ref($this->mInstaller->mLog));
202 $renderer->setTemplateName(
'module_update_success.html');
203 $renderer->setAttribute(
'module', $this->mXoopsModule);
204 $renderer->setAttribute(
'log', $this->mInstaller->mLog->mMessages);
205 $renderer->setAttribute(
'currentVersion', round($this->mInstaller->getCurrentVersion() / 100, 2));
206 $renderer->setAttribute(
'targetVersion', round($this->mInstaller->getTargetPhase() / 100, 2));
207 $renderer->setAttribute(
'isPhasedMode', $this->mInstaller->hasUpgradeMethod());
208 $renderer->setAttribute(
'isLatestUpgrade', $this->mInstaller->isLatestUpgrade());
211 public function executeViewInput(&$controller, &$xoopsUser, &$renderer)
213 $renderer->setTemplateName(
'module_update.html');
214 $renderer->setAttribute(
'module', $this->mXoopsModule);
215 $renderer->setAttribute(
'actionForm', $this->mActionForm);
216 $renderer->setAttribute(
'currentVersion', round($this->mInstaller->getCurrentVersion() / 100, 2));
217 $renderer->setAttribute(
'targetVersion', round($this->mInstaller->getTargetPhase() / 100, 2));
218 $renderer->setAttribute(
'isPhasedMode', $this->mInstaller->hasUpgradeMethod());
221 public function executeViewCancel(&$controller, &$xoopsUser, &$renderer)
223 $controller->executeForward(
'./index.php?action=ModuleList');