Example #1
0
 /**
  * Check if a module is available
  * 
  * @param string $moduleId
  * @param boolean Check the module manager class isAvailable function too. (Used in pro modules to check license for example).
  * @return boolean
  */
 public function isAvailable($moduleId, $checkModuleAvailabiltiy = true)
 {
     if (!$this->_isAllowed($moduleId)) {
         return false;
     }
     $folder = new Fs\Folder(\GO::config()->root_path . 'modules/' . $moduleId);
     $ucfirst = ucfirst($moduleId);
     $moduleClassPath = $folder->path() . '/' . $ucfirst . 'Module.php';
     if (!file_exists($moduleClassPath)) {
         // || !\GO::scriptCanBeDecoded($moduleClassPath)){
         return false;
     }
     $moduleClass = 'GO\\' . $ucfirst . '\\' . $ucfirst . 'Module';
     if (!class_exists($moduleClass)) {
         return false;
     }
     if ($checkModuleAvailabiltiy) {
         $mod = new $moduleClass();
         return $mod->isAvailable();
     } else {
         return true;
     }
 }