Exemplo n.º 1
0
 /**
  * Creates a instance of the upgrade installer to mInstaller. And returns
  * it.
  * 
  * The precondition is the existence of mXoopsModule.
  */
 function &_getInstaller()
 {
     $dirname = $this->mXoopsModule->get('dirname');
     $installer =& Legacy_ModuleInstallUtils::createUpdater($dirname);
     return $installer;
 }
 function update()
 {
     $updateSuccess = new XCube_Delegate();
     $updateSuccess->register('Legacy_ModuleUpdateAction.UpdateSuccess');
     $updateFail = new XCube_Delegate();
     $updateFail->register('Legacy_ModuleUpdateAction.UpdateFail');
     $module = get_module($this->name);
     $dirname = $module->get('dirname');
     $installer = Legacy_ModuleInstallUtils::createUpdater($dirname);
     $installer->setCurrentXoopsModule($module);
     // Load the manifesto, and set it as the target object.
     $module->loadInfoAsVar($dirname);
     $module->set('name', $module->get('name'));
     $installer->setTargetXoopsModule($module);
     $installer->executeUpgrade();
     if ($installer->mLog->hasError() === false) {
         $updateSuccess->call(new XCube_Ref($module), new XCube_Ref($installer->mLog));
         XCube_DelegateUtils::call('Legacy.Admin.Event.ModuleUpdate.' . ucfirst($dirname . '.Success'), new XCube_Ref($module), new XCube_Ref($installer->mLog));
         $success = true;
     } else {
         $updateFail->call(new XCube_Ref($module), new XCube_Ref($installer->mLog));
         XCube_DelegateUtils::call('Legacy.Admin.Event.ModuleUpdate.' . ucfirst($dirname . '.Fail'), new XCube_Ref($module), new XCube_Ref($installer->mLog));
         $success = false;
     }
     /*		foreach ($installer->mLog->mMessages as $message)
     		{
     			echo sprintf('[%s] update: %s', date('Y-m-d H:i:s'), $message['message']), PHP_EOL; // TODO >> observer
     		}
     */
     return $success;
 }