/** * Checks if there are any updates for the provided extensions. * Found updates are added to the API call result. * * @since 0.1 * * @param $extensionName String * @param $extensionVersion String * @param $states Array: a list of allowed release states. */ protected function checkForExtensionUpdates($extensionName, $extensionVersion, array $states) { $dbr = wfGetDB(DB_SLAVE); $extension = $dbr->selectRow('distribution_units', array('unit_id'), array('unit_name' => $extensionName)); if ($extension !== false) { $version = $dbr->selectRow('distribution_unit_versions', array('version_id', 'version_nr', 'version_status'), array('version_unit_id' => $extension->unit_id, 'version_status' => $states), 'Database::selectRow', array('ORDER BY version_release_date DESC')); if ($version !== false && version_compare($version->version_nr, $extensionVersion, '>')) { $version->version_status = DistributionRelease::unmapState($version->version_status); $this->getResult()->addValue('extensions', $extensionName, $version); } } }