49class Legacy_ModulePhasedUpgrader
77 public $_mCurrentXoopsModule;
82 public $_mCurrentVersion;
88 public $_mTargetXoopsModule;
93 public $_mTargetVersion;
98 public $_mForceMode =
false;
100 public function Legacy_ModulePhasedUpgrader() {
104 public function __construct()
115 $this->_mForceMode = $isForceMode;
130 $handler =& xoops_gethandler(
'module');
131 $cloneModule =& $handler->create();
133 $cloneModule->unsetNew();
134 $cloneModule->set(
'mid', $xoopsModule->get(
'mid'));
135 $cloneModule->set(
'name', $xoopsModule->get(
'name'));
136 $cloneModule->set(
'version', $xoopsModule->get(
'version'));
137 $cloneModule->set(
'last_update', $xoopsModule->get(
'last_update'));
138 $cloneModule->set(
'weight', $xoopsModule->get(
'weight'));
139 $cloneModule->set(
'isactive', $xoopsModule->get(
'isactive'));
140 $cloneModule->set(
'dirname', $xoopsModule->get(
'dirname'));
141 $cloneModule->set(
'hasmain', $xoopsModule->get(
'hasmain'));
142 $cloneModule->set(
'hasadmin', $xoopsModule->get(
'hasadmin'));
143 $cloneModule->set(
'hassearch', $xoopsModule->get(
'hassearch'));
144 $cloneModule->set(
'hasconfig', $xoopsModule->get(
'hasconfig'));
145 $cloneModule->set(
'hascomments', $xoopsModule->get(
'hascomments'));
146 $cloneModule->set(
'hasnotification', $xoopsModule->get(
'hasnotification'));
148 $this->_mCurrentXoopsModule =& $cloneModule;
149 $this->_mCurrentVersion = $cloneModule->get(
'version');
160 $this->_mTargetXoopsModule =& $xoopsModule;
187 return $this->_mCurrentVersion;
198 ksort($this->_mMilestone);
200 foreach ($this->_mMilestone as $t_version => $t_value) {
206 return $this->_mTargetXoopsModule->get(
'version');
214 ksort($this->_mMilestone);
216 foreach ($this->_mMilestone as $t_version => $t_value) {
218 if (is_callable([$this, $t_value])) {
236 ksort($this->_mMilestone);
238 foreach ($this->_mMilestone as $t_version => $t_value) {
240 if (is_callable([$this, $t_value])) {
241 return $this->$t_value();
257 return ($this->_mTargetXoopsModule->get(
'version') == $this->getTargetPhase());
268 $handler =& xoops_gethandler(
'module');
269 if ($handler->insert($module)) {
270 $this->mLog->addReport(
'XCL Module is updated.');
272 $this->mLog->addError(
'Could not update module information.');
276 public function _processScript()
278 $installScript = trim($this->_mTargetXoopsModule->getInfo(
'onUpdate'));
279 if (
false != $installScript) {
280 require_once XOOPS_MODULE_PATH .
'/' . $this->_mTargetXoopsModule->get(
'dirname') .
'/' . $installScript;
281 $funcName =
'xoops_module_update_' . $this->_mTargetXoopsModule->get(
'dirname');
282 if (function_exists($funcName)) {
288 $this->mLog->addError(
'Failed to execute ' . $funcName);
294 public function _processReport()
296 if (!$this->mLog->hasError()) {
297 $this->mLog->add(
XCube_Utils::formatString(_AD_LEGACY_MESSAGE_UPDATING_MODULE_SUCCESSFUL, $this->_mCurrentXoopsModule->get(
'name')));
299 $this->mLog->addError(
XCube_Utils::formatString(_AD_LEGACY_ERROR_UPDATING_MODULE_FAILURE, $this->_mCurrentXoopsModule->get(
'name')));
311 Legacy_ModuleInstallUtils::clearAllOfModuleTemplatesForUpdate($this->_mTargetXoopsModule, $this->mLog);
323 Legacy_ModuleInstallUtils::smartUpdateAllOfBlocks($this->_mTargetXoopsModule, $this->mLog);
334 Legacy_ModuleInstallUtils::smartUpdateAllOfPreferences($this->_mTargetXoopsModule, $this->mLog);
348 $this->mLog->addReport(_AD_LEGACY_MESSAGE_UPDATE_STARTED);
354 if (!$this->_mForceMode && $this->mLog->hasError()) {
355 $this->_processReport();
363 if (!$this->_mForceMode && $this->mLog->hasError()) {
364 $this->_processReport();
372 if (!$this->_mForceMode && $this->mLog->hasError()) {
373 $this->_processReport();
381 if (!$this->_mForceMode && $this->mLog->hasError()) {
382 $this->_processReport();
389 $this->_processScript();
390 if (!$this->_mForceMode && $this->mLog->hasError()) {
391 $this->_processReport();
395 $this->_processReport();