dataID = intval($_REQUEST['dataID']); if (!$this->dataID){ require_once(WCF_DIR.'lib/system/exception/NamedUserException.class.php'); throw new NamedUserException(WCF::getLanguage()->get('wcf.dldb.wrongid')); exit; } WCF::getCache()->addResource('dldbData', WCF_DIR.'cache/cache.dldbData.php', WCF_DIR.'lib/system/cache/CacheBuilderDLDBData.class.php'); } public function readData() { parent::readData(); $this->readDaten(); } /** * @see Page::assignVariables(); */ public function assignVariables() { parent::assignVariables(); if (DOWNLOADDB_OFFLINE) { $this->templateName = 'downloadDB_offline'; WCF::getTPL()->assign('offlinemessage', DOWNLOADDB_OFFLINE_MESSAGE); } else { $languagesArray = WCF::getLanguage()->getAvailableLanguages(); for ($i = 0; $i < count($languagesArray); $i++) { $languageItems = $languagesArray[$i]; $languageArray[] = array( 'languageCode' => $languageItems['languageCode'], 'languageID' => $languageItems['languageID'], 'languageName' => WCF::getLanguage()->get('wcf.global.language.'.$languageItems['languageCode']), ); } WCF::getTPL()->assign(array( 'dataID' => $this->dataID, 'daten' => $this->daten, 'languageArray' => $languageArray )); } } /** * @see Page::show() */ public function show() { require_once(WCF_DIR.'lib/page/util/menu/HeaderMenu.class.php'); HeaderMenu::setActiveMenuItem('wcf.header.menu.downloaddb'); // check permission WCF::getUser()->checkPermission('user.dldb.canUseDownloadDB'); parent::show(); } protected function readDaten() { // Cache lesen $data = WCF::getCache()->get('dldbData'); foreach ($data as $daten) { if ($daten['dataID'] == $this->dataID && $daten['activ']) { if ($daten['mimeType']) { $daten['type'] = DownloadDBData::setFileTypeIcon($daten['mimeType']); } else { $daten['type'] = 'mime_default.gif'; } $daten['groesse'] = FileUtil::formatFilesize($daten['groesse']); $IDs = explode(',',$daten['groupcheck']); $daten['canViewCat'] = false; foreach ($IDs as $gruppe) { if (in_array($gruppe, WCF::getUser()->getGroupIDs())) { $daten['canViewCat'] = true; } } if ($daten['canViewCat'] != true){ require_once(WCF_DIR.'lib/system/exception/PermissionDeniedException.class.php'); throw new PermissionDeniedException(); } $daten['previewThumb'] = ''; if ($daten['previewIMG']) { $ext = StringUtil::toLowerCase(StringUtil::substring($daten['previewFile'], StringUtil::lastIndexOf($daten['previewFile'], '.') + 1)); if (@fopen(FileUtil::getRealPath(RELATIVE_WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'thumbnail-'.$this->dataID.'.'.$ext),'rb') == false) { // make thumbnail $thumb = new Thumbnail(WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'Preview-'.$this->dataID.'.'.$ext, DOWNLOADDB_PREVIEW_WIDTH, DOWNLOADDB_PREVIEW_HIGHT); // get thumbnail if (($thumbnailData = $thumb->makeThumbnail(true))) { // save thumbnail $file = new File(WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'thumbnail-'.$this->dataID.'.'.$ext); $file->write($thumbnailData); unset($thumbnailData); $file->close(); @chmod(WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'thumbnail-'.$this->dataID.'.'.$ext, 0666); $daten['previewThumb'] = FileUtil::getRealPath(RELATIVE_WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'thumbnail-'.$this->dataID.'.'.$ext); $daten['previewIMG'] = FileUtil::getRealPath(RELATIVE_WCF_DIR.$daten['previewIMG']); } else { $daten['previewThumb'] = FileUtil::getRealPath(RELATIVE_WCF_DIR.$daten['previewIMG']); $daten['previewIMG'] = ''; } } else { $daten['previewIMG'] = FileUtil::getRealPath(RELATIVE_WCF_DIR.$daten['previewIMG']); $daten['previewThumb'] = FileUtil::getRealPath(RELATIVE_WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'thumbnail-'.$this->dataID.'.'.$ext); } } elseif (DOWNLOADDB_SHOW_PREVIEW_NOPIC) { $daten['previewIMG'] = $daten['previewThumb'] = RELATIVE_WCF_DIR.'icon/downloadDBnoPic.png'; } // Beschreibung zur Ausgabe anpassen (BBCode+Smilies) $daten['name'] = $this->getFormattedMessage($daten['name'],$daten['enableSmilies'],$daten['enableHtml'],$daten['enableBBCodes'],$daten['parseURL']); $daten['description'] = $this->getFormattedMessage($daten['description'],$daten['enableSmilies'],$daten['enableHtml'],$daten['enableBBCodes'],$daten['parseURL']); require_once(WCF_DIR.'lib/data/message/bbcode/URLParser.class.php'); // URLs wandeln zur formatierten Ausgabe $daten['thread'] = $this->getFormattedMessage(URLParser::parse(StringUtil::decodeHTML($daten['thread']))); $this->daten = $daten; break; } } } /** * @see ViewablePost::getFormattedMessage() */ protected function getFormattedMessage($text, $enableSmilies = true, $enableHtml = false, $enableBBCodes = true, $parseURL = true) { if ($parseURL == 1) { require_once(WCF_DIR.'lib/data/message/bbcode/URLParser.class.php'); $text = URLParser::parse($text); } // parse message require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php'); return MessageParser::getInstance()->parse($text, $enableSmilies, $enableHtml, $enableBBCodes, false); } } ?>