/**
  * Check if all module files exists in shop.
  *
  * @param oxModule $oModule module object
  *
  * @return bool
  */
 private function _moduleFilesInformationExistInShop(\OxidEsales\EshopCommunity\Core\Module $oModule)
 {
     $aModuleFiles = $oModule->getFiles();
     /** @var oxModuleList $oModuleList */
     $oModuleList = oxNew('oxModuleList');
     $aShopInformationAboutModulesFiles = $oModuleList->getModuleFiles();
     $aMissingFiles = array_diff($aModuleFiles, $aShopInformationAboutModulesFiles);
     return count($aMissingFiles) === 0;
 }
 /**
  * Deactivate extension by adding disable module class information to disabled module array
  *
  * @param oxModule $oModule
  *
  * @return bool
  */
 public function deactivate(\OxidEsales\EshopCommunity\Core\Module $oModule)
 {
     $blResult = false;
     if ($sModuleId = $oModule->getId()) {
         $this->_callEvent('onDeactivate', $sModuleId);
         $this->_addToDisabledList($sModuleId);
         //removing recoverable options
         $this->_deleteBlock($sModuleId);
         $this->_deleteTemplateFiles($sModuleId);
         $this->_deleteModuleFiles($sModuleId);
         $this->_deleteModuleEvents($sModuleId);
         $this->_deleteModuleVersions($sModuleId);
         $this->resetCache();
         $blResult = true;
     }
     return $blResult;
 }
 /**
  * Validates module metadata.
  * Return true if module metadata is valid.
  * Return false if module metadata is not valid, or if metadata file does not exist.
  *
  * @param oxModule $oModule object to validate metadata.
  *
  * @return bool
  */
 public function validate(\OxidEsales\EshopCommunity\Core\Module $oModule)
 {
     return file_exists($oModule->getMetadataPath());
 }