function loadDefinition()
 {
     $definitionFile = null;
     $pathList = eZModule::globalPathList();
     if ($pathList) {
         foreach ($pathList as $path) {
             $definitionFile = $path . '/' . $this->ModuleName . '/function_definition.php';
             if (file_exists($definitionFile)) {
                 break;
             }
             $definitionFile = null;
         }
     }
     if ($definitionFile === null) {
         eZDebug::writeError('Missing function definition file for module: ' . $this->ModuleName, 'eZModuleFunctionInfo::loadDefinition');
         return false;
     }
     unset($FunctionList);
     include $definitionFile;
     if (!isset($FunctionList)) {
         eZDebug::writeError('Missing function definition list for module: ' . $this->ModuleName, 'eZModuleFunctionInfo::loadDefinition');
         return false;
     }
     $this->FunctionList = $FunctionList;
     $this->IsValid = true;
     return true;
 }
 /**
  * Loads the operations definition for the current module
  * @return bool true if the operations were loaded, false if an error occured
  */
 function loadDefinition()
 {
     $pathList = eZModule::globalPathList();
     foreach ( $pathList as $path )
     {
         $definitionFile = $path . '/' . $this->ModuleName . '/operation_definition.php';
         if ( file_exists( $definitionFile ) )
             break;
         $definitionFile = null;
     }
     if ( $definitionFile === null )
     {
         eZDebug::writeError( 'Missing operation definition file for module: ' . $this->ModuleName, __METHOD__ );
         return false;
     }
     unset( $OperationList );
     include( $definitionFile );
     if ( !isset( $OperationList ) )
     {
         eZDebug::writeError( 'Missing operation definition list for module: ' . $this->ModuleName, __METHOD__ );
         return false;
     }
     $this->OperationList = $OperationList;
     $this->IsValid = true;
     return true;
 }
示例#3
0
 /**
  * Finds all available modules in the system
  * @return array $modulename => $path
  */
 static function getModuleList()
 {
     $out = array();
     foreach (eZModule::globalPathList() as $path) {
         foreach (scandir($path) as $subpath) {
             if ($subpath != '.' && $subpath != '..' && is_dir($path . '/' . $subpath) && file_exists($path . '/' . $subpath . '/module.php')) {
                 $out[$subpath] = $path . '/' . $subpath . '/module.php';
             }
         }
     }
     return $out;
 }
示例#4
0
 /**
  * Loads a module object by name.
  * The only difference with exists() is that the $module parameter will be
  * assigned the found module.
  *
  * @param string $moduleName The name of the module to find (ex: content)
  * @param mixed $module This parameter will receive the found module object
  * @param array|string
  *        Either an array of path or a single path string. These will be
  *        used as additionnal locations that will be looked into
  * @param boolean $showError
  *        If true an error will be shown if the module it not found.
  * @return eZModule The eZModule object, or null if the module wasn't found
  * @see exists()
  */
 static function findModule($moduleName, $module = null, $pathList = null, $showError = false)
 {
     if ($pathList === null) {
         $pathList = array();
     } else {
         if (!is_array($pathList)) {
             $pathList = array($pathList);
         }
     }
     $searchPathList = eZModule::globalPathList();
     if ($searchPathList === null) {
         $searchPathList = array();
     }
     $searchPathList = array_merge($searchPathList, $pathList);
     $triedList = array();
     $triedDirList = array();
     $foundADir = false;
     foreach ($searchPathList as $path) {
         $dir = "{$path}/{$moduleName}";
         $file = "{$dir}/module.php";
         if (file_exists($file)) {
             if ($module === null) {
                 $module = new eZModule($path, $file, $moduleName, false);
             } else {
                 $module->initialize($path, $file, $moduleName, false);
             }
             return $module;
         } else {
             if (!file_exists($dir)) {
                 $triedDirList[] = $dir;
             } else {
                 $foundADir = true;
                 $triedList[] = $dir;
             }
         }
     }
     $msg = "Could not find module named '{$moduleName}'";
     if ($foundADir) {
         $msg = "\nThese directories had a directory named '{$moduleName}' but did not contain the module.php file:\n" . implode(", ", $triedList) . "\n" . "This usually means it is missing or has a wrong name.";
         if (count($triedDirList) > 0) {
             $msg .= "\n\nThese directories were tried too but none of them exists:\n" . implode(', ', $triedDirList);
         }
     } else {
         if (count($triedDirList) > 0) {
             $msg .= "\nThese directories were tried but none of them exists:\n" . implode(", ", $triedDirList);
         }
     }
     if ($showError) {
         eZDebug::writeWarning($msg);
     }
     return null;
 }
    $cli->output();
}
$rows = eZPersistentObject::fetchObjectList(eZPolicy::definition(), array(), null, false, null, false, false, array(array('operation' => 'count( * )', 'name' => 'count')));
$total = $rows[0]['count'];
if (!$optDryRun) {
    $cli->output("{$total} policies to check... (In the progess bar, 'R' means that the policy was removed)");
} else {
    $cli->output("{$total} policies to check...");
}
if (!$optDryRun) {
    $script->setIterationData('R', '.');
    $script->resetIteration($total);
}
$limitation = array('offset' => 0, 'limit' => 100);
$db = eZDB::instance();
$modules = eZModule::globalPathList();
$removedPolicies = 0;
while (true) {
    $policies = eZPersistentObject::fetchObjectList(eZPolicy::definition(), null, null, null, $limitation, true);
    if (empty($policies)) {
        break;
    }
    foreach ($policies as $policy) {
        if ($policy->attribute('module_name') === '*') {
            continue;
        }
        $moduleExists = false;
        foreach ($modules as $module) {
            if (file_exists($module . '/' . $policy->attribute('module_name'))) {
                $moduleExists = true;
                break;