Exemple #1
0
 public function getAllowedParams()
 {
     $modules = array_keys($this->getMain()->getModules());
     sort($modules);
     $querymodules = array_keys($this->queryObj->getModules());
     sort($querymodules);
     $formatmodules = array_keys($this->getMain()->getFormats());
     sort($formatmodules);
     return array('modules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $modules), 'querymodules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $querymodules), 'mainmodule' => false, 'pagesetmodule' => false, 'formatmodules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $formatmodules));
 }
 public function execute()
 {
     // Get parameters
     $params = $this->extractRequestParams();
     $result = $this->getResult();
     $queryObj = new ApiQuery($this->getMain(), 'query');
     $r = array();
     if (is_array($params['modules'])) {
         $modArr = $this->getMain()->getModules();
         $r['modules'] = array();
         foreach ($params['modules'] as $m) {
             if (!isset($modArr[$m])) {
                 $r['modules'][] = array('name' => $m, 'missing' => '');
                 continue;
             }
             $obj = new $modArr[$m]($this->getMain(), $m);
             $a = $this->getClassInfo($obj);
             $a['name'] = $m;
             $r['modules'][] = $a;
         }
         $result->setIndexedTagName($r['modules'], 'module');
     }
     if (is_array($params['querymodules'])) {
         $qmodArr = $queryObj->getModules();
         $r['querymodules'] = array();
         foreach ($params['querymodules'] as $qm) {
             if (!isset($qmodArr[$qm])) {
                 $r['querymodules'][] = array('name' => $qm, 'missing' => '');
                 continue;
             }
             $obj = new $qmodArr[$qm]($this, $qm);
             $a = $this->getClassInfo($obj);
             $a['name'] = $qm;
             $a['querytype'] = $queryObj->getModuleType($qm);
             $r['querymodules'][] = $a;
         }
         $result->setIndexedTagName($r['querymodules'], 'module');
     }
     if ($params['mainmodule']) {
         $r['mainmodule'] = $this->getClassInfo($this->getMain());
     }
     if ($params['pagesetmodule']) {
         $pageSet = new ApiPageSet($queryObj);
         $r['pagesetmodule'] = $this->getClassInfo($pageSet);
     }
     $result->addValue(null, $this->getModuleName(), $r);
 }
 public function testPrefixes()
 {
     $main = new ApiMain(new FauxRequest());
     $query = new ApiQuery($main, 'foo', 'bar');
     $modules = $query->getModules();
     $prefixes = array();
     foreach ($modules as $name => $class) {
         $module = new $class($main, $name);
         $prefix = $module->getModulePrefix();
         if (isset($prefixes[$prefix])) {
             $this->fail("Module prefix '{$prefix}' is shared between {$class} and {$prefixes[$prefix]}");
         }
         $prefixes[$module->getModulePrefix()] = $class;
     }
     $this->assertTrue(true);
     // dummy call to make this test non-incomplete
 }
Exemple #4
0
 /**
  * Module for displaying help
  */
 public function execute()
 {
     // Get parameters
     $params = $this->extractRequestParams();
     if (!isset($params['modules']) && !isset($params['querymodules'])) {
         $this->dieUsage('', 'help');
     }
     $this->getMain()->setHelp();
     $result = $this->getResult();
     $queryObj = new ApiQuery($this->getMain(), 'query');
     $r = array();
     if (is_array($params['modules'])) {
         $modArr = $this->getMain()->getModules();
         foreach ($params['modules'] as $m) {
             if (!isset($modArr[$m])) {
                 $r[] = array('name' => $m, 'missing' => '');
                 continue;
             }
             $module = new $modArr[$m]($this->getMain(), $m);
             $r[] = $this->buildModuleHelp($module, 'action');
         }
     }
     if (is_array($params['querymodules'])) {
         $qmodArr = $queryObj->getModules();
         foreach ($params['querymodules'] as $qm) {
             if (!isset($qmodArr[$qm])) {
                 $r[] = array('name' => $qm, 'missing' => '');
                 continue;
             }
             $module = new $qmodArr[$qm]($this, $qm);
             $type = $queryObj->getModuleType($qm);
             if ($type === null) {
                 $r[] = array('name' => $qm, 'missing' => '');
                 continue;
             }
             $r[] = $this->buildModuleHelp($module, $type);
         }
     }
     $result->setIndexedTagName($r, 'module');
     $result->addValue(null, $this->getModuleName(), $r);
 }