コード例 #1
0
ファイル: ApiUpdates.php プロジェクト: schwarer2006/wikia
 /**
  * Main method.
  * 
  * @since 0.1
  */
 public function execute()
 {
     $params = $this->extractRequestParams();
     foreach ($params['state'] as &$state) {
         $state = DistributionRelease::mapState($state);
     }
     if (array_key_exists('mediawiki', $params)) {
         $this->checkForCoreUpdates($params['mediawiki'], $params['state']);
     }
     if (array_key_exists('extensions', $params)) {
         $this->checkForAllExtensionUpdates($params['extensions'], $params['state']);
     }
 }
コード例 #2
0
 /**
  * Main method.
  * 
  * @since 0.1
  */
 public function execute()
 {
     global $wgDistributionDownloads;
     // Get the requests parameters.
     $params = $this->extractRequestParams();
     $this->addTables('distribution_units');
     $this->addTables('distribution_unit_versions', 'unit_versions');
     $this->addJoinConds(array('distribution_units' => array('INNER JOIN', 'unit_id=unit_versions.version_unit_id')));
     $this->addFields(array('unit_id', 'unit_name', 'unit_url', 'version_nr', 'version_status', 'version_release_date', 'version_directory', 'version_entrypoint', 'version_desc', 'version_authors'));
     foreach ($params['state'] as &$state) {
         $state = DistributionRelease::mapState($state);
     }
     $this->addWhereFld('version_status', $params['state']);
     switch ($params['filter']) {
         case 'term':
             // TODO
             $this->addWhere("unit_name LIKE '%{$params['value']}%' OR current_desc LIKE '%{$params['value']}%'");
             break;
         case 'author':
             // TODO
             $this->addWhereFld('current_authors', $params['value']);
             break;
         case 'tag':
             // TODO
             break;
     }
     $this->addOption('LIMIT', $params['limit'] + 1);
     $this->addOption('ORDER BY', 'unit_id');
     // Handle the continue parameter when it's provided.
     if (!is_null($params['continue'])) {
         // TODO
     }
     $count = 0;
     $extensions = $this->select(__METHOD__);
     while ($extension = $extensions->fetchObject()) {
         if (++$count > $params['limit']) {
             // We've reached the one extra which shows that
             // there are additional pages to be had. Stop here...
             // TODO
             //$this->setContinueEnumParameter( 'continue', '' );
             break;
         }
         // This is based on
         // http://search.cpan.org/~dagolden/CPAN-Meta-2.101670/lib/CPAN/Meta/Spec.pm
         $result = array('name' => $extension->unit_name, 'url' => $extension->unit_url, 'download' => $wgDistributionDownloads . '/' . $extension->unit_name, 'description' => $extension->version_desc, 'version' => $extension->version_nr, 'authors' => $extension->version_authors);
         $this->getResult()->addValue(array('query', $this->getModuleName()), null, $result);
     }
     $this->getResult()->setIndexedTagName_internal(array('query', $this->getModuleName()), 'extension');
 }
コード例 #3
0
 /**
  * Saves the metadata of a single extension version into the db.
  * 
  * @since 0.1
  * 
  * @param $metaData Array
  */
 public static function saveExtensionMetadata(array $metaData)
 {
     // Get the database connections.
     $dbr = wfGetDB(DB_SLAVE);
     // Query for existing units with the same name.
     $unit = $dbr->selectRow('distribution_units', array('unit_id'), array('unit_name' => $metaData['name']));
     // Map the unit values to the db schema.
     $unitValues = array('unit_name' => $metaData['name'], 'unit_url' => $metaData['url'], 'current_version_nr' => $metaData['version'], 'current_desc' => $metaData['description'], 'current_authors' => $metaData['authors']);
     // Map the version values to the db schema.
     $versionValues = array('version_status' => DistributionRelease::mapState(DistributionRelease::getDefaultState()), 'version_desc' => $metaData['description'], 'version_authors' => $metaData['authors'], 'version_directory' => $metaData['directory'], 'version_entrypoint' => $metaData['entrypoint'], 'version_release_date' => $metaData['date']);
     // Insert or update the unit.
     if ($unit == false) {
         self::insertUnit($unitValues, $versionValues);
     } else {
         self::updateUnit($unit, $unitValues, $versionValues, $dbr);
     }
 }