/** * @see CacheBuilder::getData() */ public function getData($cacheResource) { list($cache, $sourceID) = explode('-', $cacheResource['cache']); $data = array('packages' => array(), 'hashes' => array()); // get associated packages $sql = "SELECT\t\tpackageName, version, directory, packageType\n\t\t\tFROM\t\tpb" . PB_N . "_source_package\n\t\t\tWHERE\t\tsourceID = " . intval($sourceID) . "\n\t\t\tORDER BY\tpackageName ASC"; $result = WCF::getDB()->sendQuery($sql); // assign data ordered by package name while ($row = WCF::getDB()->fetchArray($result)) { $hash = PackageHelper::getHash($sourceID, $row['packageName'], $row['directory']); $row['sourceID'] = $sourceID; $data['packages'][$hash] = $row; $data['hashes'][$row['packageName']][] = $hash; } return $data; }
/** * gets the name and the hash of the requested package * * @return void */ protected function getRequestedPackage() { // get directory $sourceData = WCF::getSession()->getVar('source' . $this->source->sourceID); // get package name if ($sourceData !== null) { $sourceData = unserialize($sourceData); $this->directory = $sourceData['directory']; foreach ($this->cachedPackages['packages'] as $package) { if ($package['directory'] == $this->directory) { $this->requestedPackageName = $package['packageName']; $this->requestedPackageHash = PackageHelper::getHash($this->source->sourceID, $package['packageName'], $this->directory); return; } } } throw new IllegalLinkException(); }