Changeset 715
- Timestamp:
- 11/13/08 22:03:46 (5 years ago)
- Location:
- downloadDatabase
- Files:
-
- 17 added
- 22 modified
-
acptemplates/downloadDBDataAdd.tpl (modified) (4 diffs)
-
acptemplates/downloadDBDataList.tpl (modified) (1 diff)
-
acptemplates/downloadDBKatAdd.tpl (modified) (1 diff)
-
acptemplates/downloadDBKatList.tpl (modified) (1 diff)
-
acptemplates/downloadDBXferList.tpl (added)
-
files/icon/downloadDBEditM.png (added)
-
files/icon/downloadDBRating0.png (added)
-
files/icon/downloadDBRating1.png (added)
-
files/icon/downloadDBRating10.png (added)
-
files/icon/downloadDBRating2.png (added)
-
files/icon/downloadDBRating3.png (added)
-
files/icon/downloadDBRating4.png (added)
-
files/icon/downloadDBRating5.png (added)
-
files/icon/downloadDBRating6.png (added)
-
files/icon/downloadDBRating7.png (added)
-
files/icon/downloadDBRating8.png (added)
-
files/icon/downloadDBRating9.png (added)
-
files/icon/downloadDBRatingBG.png (added)
-
files/lib/acp/action/DownloadDBXferDeleteAction.class.php (added)
-
files/lib/acp/action/DownloadDBXferDeleteAllAction.class.php (added)
-
files/lib/acp/form/DownloadDBDataAddForm.class.php (modified) (12 diffs)
-
files/lib/acp/form/DownloadDBDataEditForm.class.php (modified) (6 diffs)
-
files/lib/acp/form/DownloadDBKatAddForm.class.php (modified) (1 diff)
-
files/lib/acp/form/DownloadDBKatEditForm.class.php (modified) (2 diffs)
-
files/lib/acp/page/DownloadDBDataListPage.class.php (modified) (1 diff)
-
files/lib/acp/page/DownloadDBXferListPage.class.php (added)
-
files/lib/data/downloadDB/DownloadDBData.class.php (modified) (5 diffs)
-
files/lib/form/DownloadDBAddDataForm.class.php (modified) (11 diffs)
-
files/lib/form/DownloadDBEditDataForm.class.php (modified) (7 diffs)
-
files/lib/form/DownloadDBSearchForm.class.php (modified) (1 diff)
-
files/lib/page/DownloadDBDataPage.class.php (modified) (5 diffs)
-
files/lib/page/DownloadDBFileDownloadPage.class.php (modified) (5 diffs)
-
files/lib/page/DownloadDBViewPage.class.php (modified) (4 diffs)
-
files/style/downloadDB.css (modified) (1 diff)
-
templates/downloadDBTopDown.tpl (modified) (1 diff)
-
templates/downloadDBTopNew.tpl (modified) (1 diff)
-
templates/downloadDBUserUploadData.tpl (modified) (3 diffs)
-
templates/downloadDBViewData.tpl (modified) (18 diffs)
-
templates/downloadDBViewKat.tpl (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
downloadDatabase/acptemplates/downloadDBDataAdd.tpl
r668 r715 1 1 {include file='header'} 2 2 {include file='Wysiwyg'} 3 <script type="text/javascript"> 4 //<![CDATA[ 5 function setLinkType(newType) { 6 switch (newType) { 7 case 0: 8 hideOptions('linkDiv', 'groesseDiv'); 9 showOptions('uploadDiv'); 10 break; 11 case 1: 12 hideOptions('groesseDiv','uploadDiv'); 13 showOptions('linkDiv'); 14 break; 15 case 2: 16 hideOptions('uploadDiv'); 17 showOptions('linkDiv', 'groesseDiv'); 18 break; 19 } 20 } 21 onloadEvents.push(function() { setLinkType({@$linkType}); }); 22 //]]> 23 </script> 3 24 <div class="mainHeadline"> 4 25 <img src="{@RELATIVE_WCF_DIR}icon/downloadDBData{@$action|ucfirst}L.png" alt="" /> … … 195 216 <fieldset> 196 217 <legend>{lang}wcf.acp.dldb.data.settings{/lang}</legend> 197 {if $action == 'add' || !$isExtern} 218 {if $action == 'add'} 219 <div class="formElement" id="linkType"> 220 <ul class="formOptions"> 221 <li><label><input onclick="if (IS_SAFARI) setLinkType(0)" onfocus="setLinkType(0)" type="radio" name="linkType" value="0" {if $linkType == 0}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.uploadLink{/lang}</label></li> 222 <li><label><input onclick="if (IS_SAFARI) setLinkType(1)" onfocus="setLinkType(1)" type="radio" name="linkType" value="1" {if $linkType == 1}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.internLink{/lang}</label></li> 223 <li><label><input onclick="if (IS_SAFARI) setLinkType(2)" onfocus="setLinkType(2)" type="radio" name="linkType" value="2" {if $linkType == 2}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.externLink{/lang}</label></li> 224 </ul> 225 </div> 226 {else} 227 <div class="formElement" id="linkType"> 228 <ul class="formOptions"> 229 {if $linkType == 0}<li><label><input onclick="if (IS_SAFARI) setLinkType(0)" onfocus="setLinkType(0)" type="radio" name="linkType" value="0" {if $linkType == 0}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.uploadLink{/lang}</label></li>{/if} 230 {if $linkType == 1}<li><label><input onclick="if (IS_SAFARI) setLinkType(1)" onfocus="setLinkType(1)" type="radio" name="linkType" value="1" {if $linkType == 1}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.internLink{/lang}</label></li>{/if} 231 {if $linkType == 2}<li><label><input onclick="if (IS_SAFARI) setLinkType(2)" onfocus="setLinkType(2)" type="radio" name="linkType" value="2" {if $linkType == 2}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.externLink{/lang}</label></li>{/if} 232 </ul> 233 </div> 234 {/if} 198 235 <div class="formElement{if $errorField == 'upload'} formError{/if}" id="uploadDiv"> 199 236 <div class="formFieldLabel"> … … 233 270 //]]></script> 234 271 </div> 235 {/if}236 272 <div class="formElement{if $errorField == 'link'} formError{/if}" id="linkDiv"> 237 273 <div class="formFieldLabel"> … … 260 296 </div> 261 297 <div class="formField"> 262 <input {if $fileName}readonly {/if}type="text" class="inputText" id="groesse" name="groesse" value="{$groesse}" />298 <input type="text" class="inputText" id="groesse" name="groesse" value="{$groesse}" /> 263 299 </div> 264 300 <div class="formFieldDesc hidden" id="groesseHelpMessage"> -
downloadDatabase/acptemplates/downloadDBDataList.tpl
r524 r715 57 57 <td class="columnIcon"> 58 58 {if $this->user->getPermission('admin.dldb.canEditKat')} 59 <a href="index.php?form=DownloadDBKatEdit&katID={@$data.katID}&packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{ @$data.katName}</a>59 <a href="index.php?form=DownloadDBKatEdit&katID={@$data.katID}&packageID={@PACKAGE_ID}{@SID_ARG_2ND}">{lang}{@$data.katName}{/lang}</a> 60 60 {else} 61 { @$data.katName}61 {lang}{@$data.katName}{/lang} 62 62 {/if} 63 63 </td> -
downloadDatabase/acptemplates/downloadDBKatAdd.tpl
r668 r715 88 88 {if $errorField == 'topID'} 89 89 <p class="innerError"> 90 {if $errorType == 'invalid'}{lang}wcf.acp.dldb. error.topID.invalid{/lang}{/if}90 {if $errorType == 'invalid'}{lang}wcf.acp.dldb.data.error.katID.invalid{/lang}{/if} 91 91 </p> 92 92 {/if} -
downloadDatabase/acptemplates/downloadDBKatList.tpl
r524 r715 51 51 52 52 {if $this->user->getPermission('admin.dldb.canDeleteKat') && $kategorie.datain == 0 && $kategorie.haschild == 0} 53 <a onclick="return confirm('{lang}wcf.acp.dldb.delete.sure{/lang}')" href="index.php?action=DownloadDBKatDelete&katID={@$kategorie.katID}&packageID={@PACKAGE_ID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/deleteS.png" alt="" title="{lang}wcf.acp.dldb.kat.delete{/lang}" /></a> 53 54 54 {else} 55 55 <img src="{@RELATIVE_WCF_DIR}icon/deleteDisabledS.png" alt="" {if $kategorie.datain == 0}title="{lang}wcf.acp.dldb.kat.delete{/lang}"{else}title="{lang}wcf.acp.dldb.kat.delete.datain{/lang}"{/if} /> -
downloadDatabase/files/lib/acp/form/DownloadDBDataAddForm.class.php
r668 r715 4 4 require_once(WCF_DIR.'lib/data/downloadDB/DownloadDBDataEditor.class.php'); 5 5 require_once(WCF_DIR.'lib/system/io/Tar.class.php'); 6 require_once(WCF_DIR.'lib/acp/form/ACPForm.class.php'); 6 7 7 8 … … 41 42 public $supportThread = ''; 42 43 public $activ = 0; 44 public $linkType = 0; 43 45 public $isExtern = false; 44 46 public $languageID = '1'; … … 76 78 if (isset($_POST['activ'])) $this->activ = intval($_POST['activ']); 77 79 if (isset($_POST['languageID'])) $this->languageID = intval($_POST['languageID']); 80 if (isset($_POST['linkType'])) $this->linkType = intval($_POST['linkType']); 78 81 // for File Upload 79 82 if (isset($_FILES['upload'])) $this->upload = $_FILES['upload']; … … 96 99 throw new UserInputException('katID', 'invalid'); 97 100 } 98 // prÃŒfen ob ein Linkeingegeben wurde99 if ( empty($this->upload) && empty($this->link)) {100 throw new UserInputException(' link', 'empty');101 // prÃŒfen ob ein Upload eingegeben wurde 102 if ($this->linkType == 0 && empty($this->upload) && $this->action == "add") { 103 throw new UserInputException('upload', 'empty'); 101 104 } 102 105 // prÃŒfen ob ein relativer Pfad eingegeben wurde 103 if ($this->link && (FileUtil::isURL($this->link) == false)) {106 if ($this->linkType == 1 && $this->link && (FileUtil::isURL($this->link) == false)) { 104 107 if ($this->link{0} == "/"){ 105 108 if (@fopen($_SERVER['DOCUMENT_ROOT'].$this->link,'rb') == false) { 106 109 throw new UserInputException('link', 'badFile'); 107 110 } 111 } else { 112 throw new UserInputException('link', 'invalid'); 108 113 } 109 114 } 110 // Only if Action = add 111 if ($this->action == 'add') { 112 // prÃŒfen ob ein Link UND File angegeben wurden 113 if ($this->link && ($this->upload && $this->upload['error'] != 4)) { 115 // prÃŒfen ob ein externer Link eingegeben wurde 116 if ($this->linkType == 2 && $this->link && (FileUtil::isURL($this->link) == false)) { 114 117 throw new UserInputException('link', 'invalid'); 115 } 116 } 118 } 117 119 $this->valid = true; 118 120 } … … 122 124 */ 123 125 public function save() { 126 parent::save(); 124 127 //Create new Dataset with FileUpload 125 128 if ($this->valid && $this->action == 'add'){ 126 129 // upload file if given 127 if ( !$this->link) {130 if ($this->linkType == 0) { 128 131 if ($this->upload && $this->upload['error'] != 4) { 129 132 if ($this->upload['error'] != 0) { … … 136 139 throw new UserInputException('upload'); 137 140 } 138 } else {139 if (FileUtil::isURL($this->link) == false) {140 if ($this->link{0} == "/"){141 if (FileUtil::isURL($_SERVER['DOCUMENT_ROOT'].$this->link) == false) {142 if (StringUtil::indexOf($_SERVER['DOCUMENT_ROOT'].$this->link, '/') !== false) {143 $this->fileName = StringUtil::substring($_SERVER['DOCUMENT_ROOT'].$this->link, StringUtil::lastIndexOf($_SERVER['DOCUMENT_ROOT'].$this->link, '/') + 1);144 }145 if (StringUtil::indexOf($this->fileName, '.') !== false) {146 $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1));147 }148 $this->groesse = @filesize($_SERVER['DOCUMENT_ROOT'].$this->link);141 } 142 if ($this->linkType == 1) { 143 if ($this->link{0} == "/"){ 144 if (FileUtil::isURL($_SERVER['DOCUMENT_ROOT'].$this->link) == false) { 145 if (StringUtil::indexOf($_SERVER['DOCUMENT_ROOT'].$this->link, '/') !== false) { 146 $this->fileName = StringUtil::substring($_SERVER['DOCUMENT_ROOT'].$this->link, StringUtil::lastIndexOf($_SERVER['DOCUMENT_ROOT'].$this->link, '/') + 1); 147 } 148 if (StringUtil::indexOf($this->fileName, '.') !== false) { 149 $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1)); 150 } 151 $this->groesse = @filesize($_SERVER['DOCUMENT_ROOT'].$this->link); 149 152 // Funktioniert nur wenn "fileinfo" in php aktiviert ist!! 150 // $finfo = @finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension151 // $this->mimeType = @finfo_file($finfo, $_SERVER['DOCUMENT_ROOT'].$this->link);152 $this->mimeType = ''; /*#### Entfernen wenn fileinfo aktiv ist ###*/153 // $finfo = @finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension 154 // $this->mimeType = @finfo_file($finfo, $_SERVER['DOCUMENT_ROOT'].$this->link); 155 $this->mimeType = ''; /*#### Entfernen wenn fileinfo aktiv ist ###*/ 153 156 // daher ist $mimeType = ''; 154 157 } 155 } else {156 if (FileUtil::isURL($this->link) == false) {157 if (StringUtil::indexOf($this->link, '/') !== false) {158 $this->fileName = StringUtil::substring($this->link, StringUtil::lastIndexOf($this->link, '/') + 1);159 }160 if (StringUtil::indexOf($this->fileName, '.') !== false) {161 $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1));162 }163 $this->groesse = @filesize($this->link);164 $this->mimeType = '';158 } else { 159 if (FileUtil::isURL($this->link) == false) { 160 if (StringUtil::indexOf($this->link, '/') !== false) { 161 $this->fileName = StringUtil::substring($this->link, StringUtil::lastIndexOf($this->link, '/') + 1); 162 } 163 if (StringUtil::indexOf($this->fileName, '.') !== false) { 164 $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1)); 165 } 166 $this->groesse = @filesize($this->link); 167 $this->mimeType = ''; 165 168 // Funktioniert nur wenn "fileinfo" in php aktiviert ist!! 166 // $finfo = @finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension167 // $this->mimeType = @finfo_file($finfo, $_SERVER['DOCUMENT_ROOT'].$this->link);168 $this->mimeType = ''; /*#### Entfernen wenn fileinfo aktiv ist ###*/169 // $finfo = @finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension 170 // $this->mimeType = @finfo_file($finfo, $_SERVER['DOCUMENT_ROOT'].$this->link); 171 $this->mimeType = ''; /*#### Entfernen wenn fileinfo aktiv ist ###*/ 169 172 // daher ist $mimeType = ''; 170 }171 173 } 172 } else { 173 $this->fileName = $this->fileExtension = NULL; 174 } 175 } 174 } 175 } 176 if ($this->linkType == 2) { 177 $this->fileName = $this->fileExtension = NULL; 178 } 179 176 180 // check for Preview File 177 181 if ($this->previewArray && $this->previewArray['error'] != 4) { … … 218 222 'thread' => $this->supportThread, 219 223 'activ' => true, 224 'linkType' => intval($this->linkType), 220 225 'parseURL' => intval($this->parseURL), 221 226 'enableBBCodes' => intval($this->enableBBCodes), … … 239 244 'thread' => $this->supportThread, 240 245 'activ' => true, 246 'linkType' => intval($this->linkType), 241 247 'parseURL' => intval($this->parseURL), 242 248 'enableBBCodes' => intval($this->enableBBCodes), … … 252 258 } 253 259 } 254 }255 parent::save();256 // reset values257 $this->name = $this->description = $this->link = $this->supportThread= NULL;258 $this->fileName = $this->fileExtension = $this->mimeType = NULL;259 $this->previewFile = $this->previewIMG = NULL;260 $this->groesse = $this->downloads = $this->katID = 0;261 $this->sortOrder = $this->languageID = 1;260 // reset values 261 $this->name = $this->description = $this->link = $this->supportThread = NULL; 262 $this->fileName = $this->fileExtension = $this->mimeType = NULL; 263 $this->previewFile = $this->previewIMG = NULL; 264 $this->groesse = $this->downloads = $this->katID = $this->linkType = 0; 265 $this->sortOrder = $this->languageID = 1; 266 $this->additionalFields = array(); 267 } 262 268 // reset cache 263 269 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbKat.php'); … … 322 328 'supportThread' => $this->supportThread, 323 329 'activ' => $this->activ, 324 ' action' => 'add',330 'linkType' => $this->linkType, 325 331 'previewExtensions' => DOWNLOADDB_ALLOWED_PREVIEW_EXT, 326 'fileExtensions' => DOWNLOADDB_ALLOWED_FILE_EXT,332 'fileExtensions' => DOWNLOADDB_ALLOWED_FILE_EXT, 327 333 'maxFileSize' => $maxFileSize, 328 334 'isExtern' => $this->isExtern, 329 335 'languageID' => $this->languageID, 330 'language' => $languageArray 336 'language' => $languageArray, 337 'action' => 'add' 331 338 )); 332 339 } … … 338 345 foreach ($this->katCache as $ID => $kategorie) { 339 346 if ($kategorie['topID'] == $katID) { 340 $this->katOptions[$kategorie['katID']] = " ". StringUtil::unescape($kategorie['name']);347 $this->katOptions[$kategorie['katID']] = " ".WCF::getLanguage()->get(StringUtil::encodeHTML($kategorie['name'])); 341 348 // weitere Unterkategorien suchen 342 349 $this->readSubKat($kategorie['katID']); … … 349 356 foreach ($this->katCache as $ID => $kategorie) { 350 357 if ($kategorie['topID'] == NULL) { 351 $this->katOptions[$kategorie['katID']] = " ". StringUtil::unescape($kategorie['name']);358 $this->katOptions[$kategorie['katID']] = " ".WCF::getLanguage()->get(StringUtil::encodeHTML($kategorie['name'])); 352 359 $this->readSubKat($kategorie['katID']); 353 360 } -
downloadDatabase/files/lib/acp/form/DownloadDBDataEditForm.class.php
r668 r715 99 99 */ 100 100 public function save() { 101 parent::save(); 101 102 if ($this->valid && $this->dataID) { 102 103 $dataset = new DownloadDBDataEditor($this->dataID); 103 if ($this->downloadsAkt) $this->downloads = 0; else $this->downloads= $dataset->downloads;104 if ($this->datumAkt) $this->datum = TIME_NOW; else $this->datum= $dataset->datum;104 if ($this->downloadsAkt) $this->downloads = 0; else $this->downloads = $dataset->downloads; 105 if ($this->datumAkt) $this->datum = TIME_NOW; else $this->datum = $dataset->datum; 105 106 if ($this->userIDAkt) $this->dldbUserID = WCF::getUser()->userID; 106 107 … … 111 112 throw new UserInputException('previewIMG', 'uploadFailed'); 112 113 } 113 if ($this->previewFile != $this->previewArray['name']) {114 if ($this->previewFile && $this->previewFile != $this->previewArray['name']) { 114 115 // alten File löschen wenn neuer angegeben wurde 115 116 $dataset->deletePreview($this->previewFile); … … 124 125 125 126 // Delete preview? 126 if ($this->delPreview ) {127 $dataset->deletePreview($ this->previewFile);127 if ($this->delPreview && $dataset->previewFile) { 128 $dataset->deletePreview($dataset->previewFile); 128 129 $this->previewFile = $this->previewIMG = NULL; 129 130 } … … 186 187 $this->mimeType = $dataset->mimeType; 187 188 } 188 // Daten endg ltig speichern189 // Daten endgÃŒltig speichern 189 190 $dataset->updateDataset(array_merge($this->additionalFields, array( 190 191 'katID' => intval($this->katID), … … 249 250 $this->mimeType = $data['mimeType']; 250 251 $this->link = StringUtil::decodeHTML($data['link']); 251 if (FileUtil::isURL($this->link) == true || $this->link{0} == "/") $this->isExtern = true;252 252 $this->groesse = $data['groesse']; 253 253 $this->downloads = $data['downloads']; … … 258 258 $this->supportThread = StringUtil::decodeHTML($data['thread']); 259 259 $this->activ = $data['activ']; 260 $this->linkType = $data['linkType']; 260 261 $this->parseURL = $data['parseURL']; 261 262 $this->enableSmilies = $data['enableSmilies']; -
downloadDatabase/files/lib/acp/form/DownloadDBKatAddForm.class.php
r668 r715 75 75 throw new UserInputException('name', 'empty'); 76 76 } 77 77 78 // user gruppen prÃŒfen und array anpassen 78 79 if (count($this->groupIDs) > 0) { -
downloadDatabase/files/lib/acp/form/DownloadDBKatEditForm.class.php
r589 r715 75 75 public function validate() { 76 76 parent::validate(); 77 // prÃŒfen ob die Kategorie nicht sich selbst als Unterkategorie zugeordnet ist 78 if ($this->katID == $this->topID) { 79 throw new UserInputException('topID', 'invalid'); 80 } 77 81 $this->valid = true; 78 82 } … … 83 87 public function save() { 84 88 if ($this->valid && $this->katID) { 89 // Read old Category data 90 $oldKatData = new DownloadDBKat($this->katID); 85 91 if ($this->topID == 0) $this->topID = "NULL"; 92 // Compare topID with other Categorys 93 94 // Wenn topID = neu => zielkategorie prÃŒfen 95 // Wenn ziel Kat topID = katID und neue topID = Ziel katID 96 // Ziel topID = oldTopID 97 98 if ($this->topID != $oldKatData->topID) { 99 $this->kategorien = WCF::getCache()->get('dldbKat'); 100 if ($oldKatData->topID == 0) $oldKatData->topID = "NULL"; 101 foreach ($this->kategorien as $kategorie) { 102 if ($this->katID == $kategorie['topID'] && $this->topID == $kategorie['katID']) { 103 $sql = "UPDATE wcf".WCF_N."_dldb_kats 104 SET topID = '".$oldKatData->topID."' 105 WHERE `katID` = ".$kategorie['katID']; 106 $row = WCF::getDB()->registerShutdownUpdate($sql); 107 } 108 } 109 } 86 110 $moreData = array( 87 111 'parseURL' => intval($this->parseURL), -
downloadDatabase/files/lib/acp/page/DownloadDBDataListPage.class.php
r526 r715 42 42 if (isset($_REQUEST['action'])) $this->action = escapeString($_REQUEST['action']); 43 43 // detect Data deletion 44 if (isset($_REQUEST['deleteddataID'])) { 45 $this->deleteddataID = intval($_REQUEST['deleteddataID']); 46 } 44 if (isset($_REQUEST['deleteddataID'])) $this->deleteddataID = intval($_REQUEST['deleteddataID']); 47 45 } 48 46 -
downloadDatabase/files/lib/data/downloadDB/DownloadDBData.class.php
r668 r715 19 19 */ 20 20 public function __construct($dataID, $row = null) { 21 if ($dataID != null) { 22 $sql = "SELECT * 23 FROM wcf".WCF_N."_dldb_data 24 WHERE dataID = ".$dataID; 21 if ($dataID !== null) { 22 // select thread and thread subscription, visit and rating 23 $sql = "SELECT data.* 24 ".(DOWNLOADDB_ENABLE_RATING ? ", data_rating.rating AS userRating" : "")." 25 FROM wcf".WCF_N."_dldb_data data 26 ".(DOWNLOADDB_ENABLE_RATING ? " 27 LEFT JOIN wcf".WCF_N."_dldb_rating data_rating 28 ON (data_rating.dataID = data.dataID 29 AND ".(WCF::getUser()->userID ? "data_rating.userID = ".WCF::getUser()->userID : "data_rating.ipAddress = '".escapeString(WCF::getSession()->ipAddress)."'").")" : "")." 30 WHERE data.dataID = ".$dataID; 25 31 $row = WCF::getDB()->getFirstRow($sql); 26 32 } 27 parent::__construct($row);33 parent::__construct($row); 28 34 } 29 35 … … 48 54 49 55 // delete Preview 50 $this->deletePreview($this->previewFile);56 if ($this->previewFile) $this->deletePreview($this->previewFile); 51 57 52 58 // delete database entry 53 59 $sql = "DELETE FROM wcf".WCF_N."_dldb_data 54 WHERE dataID =".$this->dataID;60 WHERE `dataID` =".$this->dataID; 55 61 WCF::getDB()->sendQuery($sql); 56 62 63 // delete ratings 64 $sql = "DELETE FROM wcf".WCF_N."_dldb_rating 65 WHERE `dataID` =".$this->dataID; 66 WCF::getDB()->sendQuery($sql); 67 68 // delete database log 69 $sql = "DELETE FROM wcf".WCF_N."_dldb_xfer 70 WHERE `dataID` =".$this->dataID; 71 WCF::getDB()->sendQuery($sql); 72 57 73 // clear Cache 58 74 $this->resetCache(); … … 65 81 public function deleteFile($fName) { 66 82 // delete file 67 if(file_exists( RELATIVE_WCF_DIR.DOWNLOADDB_FILE_DIR . intval($this->dataID) . '_' . StringUtil::encodeHTML($fName))){68 @unlink(WCF_DIR .DOWNLOADDB_FILE_DIR . $this->dataID . '_' . $fName);83 if(file_exists(WCF_DIR . DOWNLOADDB_FILE_DIR . intval($this->dataID) . '_' . StringUtil::encodeHTML($fName))){ 84 @unlink(WCF_DIR . DOWNLOADDB_FILE_DIR . $this->dataID . '_' . $fName); 69 85 } else { 70 86 @unlink(WCF_DIR . DOWNLOADDB_FILE_DIR . 'Upload-' .$this->dataID . '.' . $this->fileExtension); … … 78 94 public function deletePreview($fName) { 79 95 // delete file 80 if(file_exists( RELATIVE_WCF_DIR.DOWNLOADDB_PREVIEW_DIR . $this->dataID . '_' . $fName)){96 if(file_exists(WCF_DIR . DOWNLOADDB_PREVIEW_DIR . $this->dataID . '_' . $fName)){ 81 97 @unlink(WCF_DIR . DOWNLOADDB_PREVIEW_DIR . $this->dataID . '_' . $fName); 82 98 @unlink(WCF_DIR . DOWNLOADDB_PREVIEW_DIR . 'thumbnail-' . $this->dataID . '_' . $fName); … … 88 104 } 89 105 106 /** 107 * Deletes one Logentry. 108 * @param integer $xferID 109 */ 110 public static function deleteXfer($xferID) { 111 // delete file 112 // delete database entry 113 $sql = "DELETE FROM wcf".WCF_N."_dldb_xfer 114 WHERE xferID = ".$xferID; 115 WCF::getDB()->sendQuery($sql); 116 } 117 90 118 public static function resetCache() { 91 119 // reset cache 92 120 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbData.php'); 93 121 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbKat.php'); 122 } 123 124 /** 125 * Returns the result of the rating of this download. 126 * 127 * @return mixed result of the rating of this download 128 */ 129 public function getRating() { 130 if ($this->ratings > 0 && $this->ratings >= DOWNLOADDB_MIN_RATINGS) { 131 return $this->rating / $this->ratings; 132 } 133 return false; 134 } 135 136 /** 137 * Gets the download rating result for template output. 138 * 139 * @return string download rating result for template output 140 */ 141 public function getRatingOutput() { 142 $rating = $this->getRating(); 143 if ($rating !== false) $roundedRating = round($rating, 0); 144 else $roundedRating = 0; 145 $description = ''; 146 if ($this->ratings > 0) { 147 $description = WCF::getLanguage()->get('wcf.dldb.dataset.rate.description', array('$votes' => StringUtil::formatNumeric($this->ratings), '$vote' => StringUtil::formatNumeric($rating))); 148 } 149 150 return '<img src="'.RELATIVE_WCF_DIR.'icon/downloadDBRating'.$roundedRating.'.png" class="dldbRatingImage" alt="" title="'.$description.'" />'; 94 151 } 95 152 -
downloadDatabase/files/lib/form/DownloadDBAddDataForm.class.php
r668 r715 40 40 public $supportThread = ''; 41 41 public $activ = 0; 42 public $ noUpload = false;42 public $linkType = 0; 43 43 public $languageID = '1'; 44 44 public $additionalFields = array(); … … 85 85 if (isset($_POST['supportThread'])) $this->supportThread = escapeString($_POST['supportThread']); 86 86 if (isset($_POST['languageID'])) $this->languageID = intval($_POST['languageID']); 87 if (isset($_POST['linkType'])) $this->linkType = intval($_POST['linkType']); 87 88 // for File Upload 88 89 if (isset($_FILES['upload'])) $this->upload = $_FILES['upload']; … … 97 98 */ 98 99 public function validate() { 100 99 101 // prÃŒfen ob ein Titel eingegeben wurde 100 102 if (empty($this->name)) { 101 103 throw new UserInputException('name', 'empty'); 102 104 } 103 // prÃŒfen ob ein Upload angegeben wurde 104 if (($this->upload['error'] == 4) && ($this->action == 'add') && !$this->link) { 105 106 // prÃŒfen ob ein Upload eingegeben wurde 107 if ($this->linkType == 0 && empty($this->upload) && $this->action == "add") { 105 108 throw new UserInputException('upload', 'empty'); 106 109 } 107 // prÃŒfen ob ein Link eingegeben wurde 108 if (empty($this->upload) && empty($this->link)) { 109 throw new UserInputException('link', 'empty'); 110 } 111 // Only if Action = add 112 if ($this->action == 'add') { 113 // prÃŒfen ob ein gÃŒltiger externer Link eingegeben wurde 114 if ($this->link && (FileUtil::isURL($this->link) == false)) { 115 throw new UserInputException('link', 'badFile'); 116 } 117 // prÃŒfen ob ein Link UND File angegeben wurden 118 if ($this->link && ($this->upload && $this->upload['error'] != 4)) { 110 111 // prÃŒfen ob ein relativer Pfad eingegeben wurde 112 if ($this->linkType == 1 && $this->link && (FileUtil::isURL($this->link) == false)) { 113 if ($this->link{0} == "/"){ 114 if (@fopen($_SERVER['DOCUMENT_ROOT'].$this->link,'rb') == false) { 115 throw new UserInputException('link', 'badFile'); 116 } 117 } else { 119 118 throw new UserInputException('link', 'invalid'); 120 119 } 121 } 120 } 121 // prÃŒfen ob ein externer Link eingegeben wurde 122 if ($this->linkType == 2 && $this->link && (FileUtil::isURL($this->link) == false)) { 123 throw new UserInputException('link', 'invalid'); 124 } 125 122 126 $this->valid = true; 123 127 } … … 127 131 */ 128 132 public function save() { 133 parent::save(); 129 134 //Create new Dataset with FileUpload 130 135 if ($this->valid && $this->action == 'add'){ … … 135 140 } 136 141 // upload File if given 137 if ( !$this->link) {142 if ($this->linkType == 0) { 138 143 if ($this->upload && $this->upload['error'] != 4) { 139 144 if ($this->upload['error'] != 0) { … … 146 151 throw new UserInputException('upload'); 147 152 } 148 } else { 149 // 153 } 154 if ($this->linkType == 2) { 155 $this->fileName = $this->fileExtension = NULL; 150 156 } 151 157 // check for Preview File … … 194 200 'thread' => $this->supportThread, 195 201 'activ' => $this->activ, 202 'linkType' => intval($this->linkType), 196 203 'parseURL' => intval($this->parseURL), 197 204 'enableBBCodes' => intval($this->enableBBCodes), … … 216 223 'thread' => $this->supportThread, 217 224 'activ' => $this->activ, 218 'parseURL' => intval($this->parseURL), 225 'linkType' => intval($this->linkType), 226 'parseURL' => intval($this->parseURL), 219 227 'enableBBCodes' => intval($this->enableBBCodes), 220 228 'enableHtml' => intval($this->enableHtml), … … 253 261 $mail->send(); 254 262 } 255 }256 parent::save();257 // reset values258 $this->name = $this->description = $this->link = $this->supportThread= NULL;259 $this->fileName = $this->fileExtension = $this->mimeType = NULL;260 $this->previewFile = $this->previewIMG = NULL;261 $this->groesse = $this->downloads = 0;262 $this->sortOrder = $this->languageID = 1;263 // reset cache264 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbKat.php');265 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbData.php');266 $this->saved();267 // forward to Kat-View page268 WCF::getTPL()->assign(array(269 'url' => 'index.php?page=DownloadDBView&katID='.$this->katID.SID_ARG_1ST,270 'message' => WCF::getLanguage()->get('wcf.acp.dldb.add.success')271 ));272 WCF::getTPL()->display('redirect');273 exit;263 // reset values 264 $this->name = $this->description = $this->link = $this->supportThread = NULL; 265 $this->fileName = $this->fileExtension = $this->mimeType = NULL; 266 $this->previewFile = $this->previewIMG = NULL; 267 $this->groesse = $this->downloads = $this->linkType = 0; 268 $this->sortOrder = $this->languageID = 1; 269 $this->additionalFields = array(); 270 // reset cache 271 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbKat.php'); 272 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbData.php'); 273 $this->saved(); 274 // forward to Kat-View page 275 WCF::getTPL()->assign(array( 276 'url' => 'index.php?page=DownloadDBView&katID='.$this->katID.SID_ARG_1ST, 277 'message' => WCF::getLanguage()->get('wcf.acp.dldb.add.success') 278 )); 279 WCF::getTPL()->display('redirect'); 280 exit; 281 } 274 282 } 275 283 … … 337 345 'supportThread' => $this->supportThread, 338 346 'activ' => $this->activ, 347 'linkType' => $this->linkType, 339 348 'action' => 'add', 340 349 'previewExtensions' => DOWNLOADDB_ALLOWED_PREVIEW_EXT, … … 343 352 'nutzeWYSIWYG' => WCF::getUser()->nutzeWYSIWYG, 344 353 'canUseBBCodes' => WCF::getUser()->getPermission('user.'.$this->permissionType.'.canUseBBCodes'), 345 'noUpload' => $this->noUpload,346 354 'languageID' => $this->languageID, 347 355 'language' => $languageArray -
downloadDatabase/files/lib/form/DownloadDBEditDataForm.class.php
r668 r715 102 102 */ 103 103 public function save() { 104 parent::save(); 104 105 if ($this->valid && $this->dataID) { 105 106 $dataset = new DownloadDBDataEditor($this->dataID); … … 117 118 throw new UserInputException('previewIMG', 'uploadFailed'); 118 119 } 119 if ($this->previewFile != $this->previewArray['name']) {120 // alten File löschen wenn neuer angegeben wurde120 if ($this->previewFile && $this->previewFile != $this->previewArray['name']) { 121 // alten File löschen wenn vorhanden 121 122 $dataset->deletePreview($this->previewFile); 122 123 } … … 129 130 } 130 131 // Delete preview? 131 if ($ this->delPreview) {132 $dataset->deletePreview($ this->previewFile);132 if ($dataset->previewFile && $this->delPreview) { 133 $dataset->deletePreview($dataset->previewFile); 133 134 $this->previewFile = $this->previewIMG = NULL; 134 135 } … … 152 153 $this->link = FileUtil::getRealPath(RELATIVE_WCF_DIR.DOWNLOADDB_FILE_DIR.'Upload-'.intval($dataset->dataID).'.'.$this->fileExtension); 153 154 } 154 // if (!$upld && $this->link && ($this->link != escapeString($dataset->link))) { 155 // if (StringUtil::indexOf($this->link, '/') !== false) { 156 // $this->fileName = StringUtil::substring($this->link, StringUtil::lastIndexOf($this->link, '/') + 1); 157 // } 158 // if (StringUtil::indexOf($this->fileName, '.') !== false) { 159 // $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1)); 160 // } 161 // $this->groesse = @filesize($this->link); 162 // } 155 if (!$upld && $this->link && ($this->link != escapeString($dataset->link))) { 156 if (FileUtil::isURL($this->link) == false) { 157 if ($this->link{0} == "/"){ 158 if (StringUtil::indexOf($_SERVER['DOCUMENT_ROOT'].$this->link, '/') !== false) { 159 $this->fileName = StringUtil::substring($_SERVER['DOCUMENT_ROOT'].$this->link, StringUtil::lastIndexOf($_SERVER['DOCUMENT_ROOT'].$this->link, '/') + 1); 160 } 161 if (StringUtil::indexOf($this->fileName, '.') !== false) { 162 $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1)); 163 } 164 $this->groesse = @filesize($_SERVER['DOCUMENT_ROOT'].$this->link); 165 $this->mimeType = ''; 166 // Funktioniert nur wenn "fileinfo" in php aktiviert ist!! 167 // $finfo = @finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension 168 // $this->mimeType = finfo_file($finfo, $_SERVER['DOCUMENT_ROOT'].$this->link); 169 // daher ist $mimeType = ''; 170 } else { 171 if (StringUtil::indexOf($this->link, '/') !== false) { 172 $this->fileName = StringUtil::substring($this->link, StringUtil::lastIndexOf($this->link, '/') + 1); 173 } 174 if (StringUtil::indexOf($this->fileName, '.') !== false) { 175 $this->fileExtension = StringUtil::toLowerCase(StringUtil::substring($this->fileName, StringUtil::lastIndexOf($this->fileName, '.') + 1)); 176 } 177 $this->groesse = @filesize($this->link); 178 $this->mimeType = ''; 179 // Funktioniert nur wenn "fileinfo" in php aktiviert ist!! 180 // $finfo = @finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension 181 // $this->mimeType = finfo_file($finfo, $this->link); 182 // daher ist $mimeType = ''; 183 } 184 } else { 185 $this->fileName = $this->fileExtension = $this->mimeType = NULL; 186 } 187 } else { 188 $this->link = $dataset->link; 189 $this->fileName = $dataset->fileName; 190 $this->fileExtension = $dataset->fileExtension; 191 $this->mimeType = $dataset->mimeType; 192 } 163 193 // Daten endgÃŒltig speichern 164 194 $dataset->updateDataset(array_merge($this->additionalFields, array( … … 212 242 // reset cache 213 243 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbKat.php'); 244 // ready 214 245 $this->saved(); 215 246 // forward to Cat-View page … … 249 280 $this->mimeType = $data['mimeType']; 250 281 $this->link = StringUtil::decodeHTML($data['link']); 251 if (FileUtil::isURL($this->link) == true || $this->link{0} == "/") $this->noUpload = true;252 282 $this->groesse = $data['groesse']; 253 283 $this->downloads = $data['downloads']; … … 258 288 $this->supportThread = StringUtil::decodeHTML($data['thread']); 259 289 $this->activ = $data['activ']; 290 $this->linkType = $data['linkType']; 260 291 $this->parseURL = $data['parseURL']; 261 292 $this->enableSmilies = $data['enableSmilies']; -
downloadDatabase/files/lib/form/DownloadDBSearchForm.class.php
r431 r715 94 94 $sql = "INSERT INTO wcf".WCF_N."_search 95 95 (userID, searchData, searchDate, searchType) 96 VALUES (".WCF::getUser()->userID.", 96 VALUES 97 (".WCF::getUser()->userID.", 97 98 '".escapeString(serialize($this->searchData))."', 98 99 ".TIME_NOW.", -
downloadDatabase/files/lib/page/DownloadDBDataPage.class.php
r668 r715 37 37 exit; 38 38 } 39 $this->dldbData = new DownloadDBData($this->dataID); 40 41 // open cache 39 42 WCF::getCache()->addResource('dldbData', 40 43 WCF_DIR.'cache/cache.dldbData.php', 41 44 WCF_DIR.'lib/system/cache/CacheBuilderDLDBData.class.php'); 45 // handle ratings 46 $this->handleRating(); 42 47 } 43 48 44 49 public function readData() { 45 50 parent::readData(); 46 $this->readDaten(); 51 // read Data 52 $this->readDaten(); 47 53 } 48 54 … … 71 77 'dataID' => $this->dataID, 72 78 'daten' => $this->daten, 79 'dldbData' => $this->dldbData, 73 80 'languageArray' => $languageArray 74 81 )); … … 116 123 if (@fopen(FileUtil::getRealPath(RELATIVE_WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'thumbnail-'.$this->dataID.'.'.$ext),'rb') == false) { 117 124 // make thumbnail 118 $thumb = new Thumbnail( WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'Preview-'.$this->dataID.'.'.$ext, DOWNLOADDB_PREVIEW_WIDTH, DOWNLOADDB_PREVIEW_HIGHT);125 $thumb = new Thumbnail(FileUtil::getRealPath(RELATIVE_WCF_DIR.DOWNLOADDB_PREVIEW_DIR.'Preview-'.$this->dataID.'.'.$ext), DOWNLOADDB_PREVIEW_WIDTH, DOWNLOADDB_PREVIEW_HIGHT); 119 126 120 127 // get thumbnail … … 154 161 * @see ViewablePost::getFormattedMessage() 155 162 */ 156 p rotectedfunction getFormattedMessage($text, $enableSmilies = true, $enableHtml = false, $enableBBCodes = true, $parseURL = true) {163 public function getFormattedMessage($text, $enableSmilies = true, $enableHtml = false, $enableBBCodes = true, $parseURL = true) { 157 164 if ($parseURL == 1) { 158 165 require_once(WCF_DIR.'lib/data/message/bbcode/URLParser.class.php'); … … 164 171 } 165 172 173 /** 174 * Handles a rating request on this download. 175 */ 176 public function handleRating() { 177 if (isset($_POST['rating'])) { 178 $rating = intval($_POST['rating']); 179 180 // rating is disabled 181 if (!DOWNLOADDB_ENABLE_RATING) { 182 require_once(WCF_DIR.'lib/system/exception/IllegalLinkException.class.php'); 183 throw new IllegalLinkException(); 184 } 185 186 // user has already rated this Download and the rating is NOT changeable 187 if ($this->dldbData->userRating !== null && !$this->dldbData->userRating) { 188 require_once(WCF_DIR.'lib/system/exception/IllegalLinkException.class.php'); 189 throw new IllegalLinkException(); 190 } 191 192 // user has no permission to rate this Download 193 if (!WCF::getUser()->getPermission('user.dldb.canRateDownload')) { 194 require_once(WCF_DIR.'lib/system/exception/IllegalLinkException.class.php'); 195 throw new IllegalLinkException(); 196 } 197 198 // illegal rating 199 if ($rating < 1 || $rating > 10) { 200 require_once(WCF_DIR.'lib/system/exception/IllegalLinkException.class.php'); 201 throw new IllegalLinkException(); 202 } 203 // user has already rated this Download and the rating is changeable 204 // change rating 205 if ($this->dldbData->userRating) { 206 $sql = "UPDATE wcf".WCF_N."_dldb_rating 207 SET rating = ".$rating." 208 WHERE dataID = ".$this->dataID." 209 AND ".(WCF::getUser()->userID ? "userID = ".WCF::getUser()->userID : "ipAddress = '".escapeString(WCF::getSession()->ipAddress)."'"); 210 WCF::getDB()->registerShutdownUpdate($sql); 211 212 $sql = "UPDATE wcf".WCF_N."_dldb_data 213 SET rating = (rating + ".$rating.") - ".$this->dldbData->userRating." 214 WHERE dataID = ".$this->dataID; 215 WCF::getDB()->registerShutdownUpdate($sql); 216 } 217 // insert new rating 218 else { 219 $sql = "INSERT INTO wcf".WCF_N."_dldb_rating 220 (dataID, rating, userID, ipAddress) 221 VALUES 222 (".$this->dataID.", 223 ".$rating.", 224 ".WCF::getUser()->userID.", 225 '".escapeString(WCF::getSession()->ipAddress)."')"; 226 WCF::getDB()->registerShutdownUpdate($sql); 227 228 $sql = "UPDATE wcf".WCF_N."_dldb_data 229 SET ratings = ratings + 1, 230 rating = rating + ".$rating." 231 WHERE dataID = ".$this->dataID; 232 WCF::getDB()->registerShutdownUpdate($sql); 233 } 234 235 HeaderUtil::redirect('index.php?page=DownloadDBData&dataID='.$this->dataID.SID_ARG_2ND_NOT_ENCODED); 236 exit; 237 } 238 } 166 239 } 167 240 ?> -
downloadDatabase/files/lib/page/DownloadDBFileDownloadPage.class.php
r453 r715 17 17 18 18 public $dataID; 19 public $katID; 19 20 private $fileName; 20 21 private $fileType; 22 private $linkType; 21 23 private $link; 22 24 … … 44 46 public function show() { 45 47 $this->readDaten(); 48 46 49 // Anzahl der Downloads erhöhen 47 50 $sql = "UPDATE wcf".WCF_N."_dldb_data … … 49 52 WHERE `dataID` = ".$this->dataID; 50 53 $row = WCF::getDB()->registerShutdownUpdate($sql); 54 55 // Download-Log speichern 56 if (DOWNLOADDB_LOG) { 57 if (!WCF::getUser()->userID && DOWNLOADDB_LOG_GUESTS) $this->xferSave(); 58 if ( WCF::getUser()->userID && !DOWNLOADDB_LOG_ONLY_GUESTS) $this->xferSave(); 59 } 60 51 61 // reset cache 52 62 WCF::getCache()->clear(WCF_DIR.'cache/', 'cache.dldbData.php'); 63 53 64 // Link entschlÃŒsseln 54 if (FileUtil::isURL($this->link)) { 65 if ($this->linkType == 0) { 66 // Es liegt ein Upload vor. 67 $dataset = new downloadDBDataEditor($this->dataID); 68 $link = FileUtil::getRealPath(RELATIVE_WCF_DIR.$dataset->getURL()); 69 $type = $this->fileType; 70 } 71 if ($this->linkType == 1) { 72 // Es liegt eine lokale Datei vor 73 $link = $_SERVER['DOCUMENT_ROOT'].$this->link; 74 $type = $this->fileType; 75 } 76 if ($this->linkType == 2) { 55 77 // Link ist eine URL 56 78 HeaderUtil::redirect($this->link,false); 57 79 exit; 58 80 } 59 // Link ist ein rekativer Pfad 60 if ($this->link{0} == "/"){ 61 // Link bekinnt mit / 62 $link = $_SERVER['DOCUMENT_ROOT'].$this->link; 63 $type = $this->fileType; 64 } else { 65 // Link ist ein Upload, beginnt mit ../ 66 $dataset = new downloadDBDataEditor($this->dataID); 67 $link = FileUtil::getRealPath(RELATIVE_WCF_DIR.$dataset->getURL()); 68 $type = $this->fileType; 69 } 81 70 82 // Set Download Infos 71 83 @ header('Content-Description: File Transfer'); … … 84 96 foreach ($data as $daten) { 85 97 if ($daten['dataID'] == $this->dataID) { 98 $this->linkType = $daten['linkType']; 86 99 $this->fileType = $daten['mimeType']; 87 100 $this->fileName = $daten['fileName']; 88 101 $this->link = $daten['link']; 102 $this->katID = $daten['katID']; 89 103 // Kontrolle der Zugangsberechtigung; 90 104 $IDs = explode(',',$daten['groupcheck']); … … 102 116 } 103 117 } 118 119 protected function xferSave() { 120 $sql = "INSERT INTO wcf".WCF_N."_dldb_xfer 121 (`dataID`, `katID`, `userID`, `ipadress`, `time`) 122 VALUES 123 ('".intval($this->dataID)."', 124 '".intval($this->katID)."', 125 '".WCF::getUser()->userID."', 126 '".escapeString(WCF::getSession()->ipAddress)."', 127 '".TIME_NOW."' 128 )"; 129 WCF::getDB()->sendQuery($sql); 130 } 104 131 } 105 132 ?> -
downloadDatabase/files/lib/page/DownloadDBViewPage.class.php
r668 r715 34 34 public $itemsPerPage = DOWNLOADDB_VIEW_MAX_DATA; 35 35 public $defaultSortField = DOWNLOADDB_SORTORDER; 36 public $sortOrder = DOWNLOADDB_SORTORDER_DIR; 36 37 37 38 /** … … 55 56 public function validateSortField() { 56 57 parent::validateSortField(); 57 58 58 switch ($this->sortField) { 59 59 case 'name': … … 66 66 67 67 public function readData() { 68 parent::readData();69 68 // Cache lesen 70 69 $this->katCache = WCF::getCache()->get('dldbKat'); 70 parent::readData(); 71 71 // Zugriff auf die Kategorie prÃŒfen 72 72 foreach ($this->katCache as $kategorie) { … … 175 175 $this->kategorien[] = $kategorie; 176 176 if ($kategorie['canViewCat']) { 177 $this->katJump[$kategorie['katID']] = " ". $kategorie['name'];177 $this->katJump[$kategorie['katID']] = " ".WCF::getLanguage()->get(StringUtil::encodeHTML($kategorie['name'])); 178 178 } 179 179 } -
downloadDatabase/files/style/downloadDB.css
r548 r715 117 117 /* ### -- -- -- -- -- Daten List -- -- -- -- -- ### */ 118 118 119 /* Rating */ 120 .dldbRatingOutput { 121 background-image: url("../icon/downloadDBRatingBG.png"); 122 background-repeat: no-repeat; 123 background-position: left top; 124 vertical-align: text-top; 125 height:12px; 126 width: 102px; 127 } 128 129 .dldbRatingImage { 130 vertical-align: text-top; 131 border: 0; 132 height:12px; 133 width: 102px; 134 } 135 119 136 /* Icons */ 120 137 .tableList td.dldbColumnIcon { -
downloadDatabase/templates/downloadDBTopDown.tpl
r542 r715 32 32 </td> 33 33 <td class="dldbColumnImage"> 34 <a class="datenLink{@$topf.dataID}" href="index.php?page=DownloadDBData&dataID={@$topf.dataID}{@SID_ARG_2ND}">{ @$topf.name|filterjs}</a>34 <a class="datenLink{@$topf.dataID}" href="index.php?page=DownloadDBData&dataID={@$topf.dataID}{@SID_ARG_2ND}">{lang}{@$topf.name|filterjs}{/lang}</a> 35 35 </td> 36 <td class="dldbColumnMarkContent">{ @$topf.description|filterjs}</td>36 <td class="dldbColumnMarkContent">{lang}{@$topf.description|filterjs}{/lang}</td> 37 37 <td class="dldbColumnDownload">{@$topf.downloads}</td> 38 38 </tr> -
downloadDatabase/templates/downloadDBTopNew.tpl
r542 r715 32 32 </td> 33 33 <td class="dldbColumnImage"> 34 <a class="datenLink{@$news.dataID}" href="index.php?page=DownloadDBData&dataID={@$news.dataID}{@SID_ARG_2ND}">{ @$news.name|filterjs}</a>34 <a class="datenLink{@$news.dataID}" href="index.php?page=DownloadDBData&dataID={@$news.dataID}{@SID_ARG_2ND}">{lang}{@$news.name|filterjs}{/lang}</a> 35 35 </td> 36 <td class="dldbColumnMarkContent">{ @$news.description|filterjs}</td>36 <td class="dldbColumnMarkContent">{lang}{@$news.description|filterjs}{/lang}</td> 37 37 <td class="dldbColumnDatum">{@$news.datum|date}</td> 38 38 </tr> -
downloadDatabase/templates/downloadDBUserUploadData.tpl
r668 r715 11 11 <script type="text/javascript" src="{@RELATIVE_WCF_DIR}js/ImageResizer.class.js"></script> 12 12 <script type="text/javascript" src="{@RELATIVE_WCF_DIR}js/TabbedPane.class.js"></script> 13 <script type="text/javascript" src="{@RELATIVE_WCF_DIR}acp/js/default.js"></script> 13 14 {if $canUseBBCodes}{include file="wysiwyg"}{/if} 15 <script type="text/javascript"> 16 //<![CDATA[ 17 function setLinkType(newType) { 18 switch (newType) { 19 case 0: 20 hideOptions('linkDiv', 'groesseDiv'); 21 showOptions('uploadDiv'); 22 break; 23 case 1: 24 hideOptions('groesseDiv','uploadDiv'); 25 showOptions('linkDiv'); 26 break; 27 case 2: 28 hideOptions('uploadDiv'); 29 showOptions('linkDiv', 'groesseDiv'); 30 break; 31 } 32 } 33 onloadEvents.push(function() { setLinkType({@$linkType}); }); 34 //]]> 35 </script> 14 36 </head> 15 37 <body> … … 204 226 <fieldset> 205 227 <legend>{lang}wcf.dldb.data.settings{/lang}</legend> 206 {if $action == 'add' || $mimeType != ''} 228 {if $action == 'add'} 229 <div class="formElement" id="linkType"> 230 <ul class="formOptions"> 231 <li><label><input onclick="if (IS_SAFARI) setLinkType(0)" onfocus="setLinkType(0)" type="radio" name="linkType" value="0" {if $linkType == 0}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.uploadLink{/lang}</label></li> 232 {if $this->user->getPermission('user.dldb.canLinkFile')} 233 <li><label><input onclick="if (IS_SAFARI) setLinkType(2)" onfocus="setLinkType(2)" type="radio" name="linkType" value="2" {if $linkType == 2}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.externLink{/lang}</label></li> 234 {/if} 235 </ul> 236 </div> 237 {else} 238 <div class="formElement" id="linkType"> 239 <ul class="formOptions"> 240 {if $linkType == 0}<li><label><input onclick="if (IS_SAFARI) setLinkType(0)" onfocus="setLinkType(0)" type="radio" name="linkType" value="0" {if $linkType == 0}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.uploadLink{/lang}</label></li>{/if} 241 {if $linkType == 1}<li><label><input onclick="if (IS_SAFARI) setLinkType(1)" onfocus="setLinkType(1)" type="radio" name="linkType" value="1" {if $linkType == 1}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.internLink{/lang}</label></li>{/if} 242 {if $linkType == 2}<li><label><input onclick="if (IS_SAFARI) setLinkType(2)" onfocus="setLinkType(2)" type="radio" name="linkType" value="2" {if $linkType == 2}checked="checked" {/if}/> {lang}wcf.acp.dldb.data.externLink{/lang}</label></li>{/if} 243 </ul> 244 </div> 245 {/if} 207 246 <div class="formElement{if $errorField == 'upload'} formError{/if}" id="uploadDiv"> 208 247 <div class="formFieldLabel"> … … 239 278 </div> 240 279 </div> 241 {/if} 242 {if $this->user->getPermission('user.dldb.canLinkFile')} 243 <div class="formElement{if $errorField == 'link'} formError{/if}" id="linkDiv"> 244 <div class="formFieldLabel"> 245 <label for="link">{lang}wcf.dldb.data.link{/lang}</label> 246 </div> 247 <div class="formField"> 248 <input {if !$noUpload && $action == 'edit'}readonly {/if}type="text" class="inputText" id="link" name="link" value="{$link}" /> 249 {if $errorField == 'link'} 250 <p class="innerError"> 251 {if $errorType == 'badFile'}{lang}wcf.acp.dldb.data.error.badFile{/lang}{/if} 252 {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} 253 {if $errorType == 'invalid'}{lang}wcf.acp.dldb.data.error.linkANDfile{/lang}{/if} 254 </p> 255 {/if} 256 </div> 257 <div class="formFieldDesc"> 258 {lang}wcf.dldb.data.link.description{/lang} 259 </div> 260 </div> 261 {/if} 280 <div class="formElement{if $errorField == 'link'} formError{/if}" id="linkDiv"> 281 <div class="formFieldLabel"> 282 <label for="link">{lang}wcf.dldb.data.link{/lang}</label> 283 </div> 284 <div class="formField"> 285 <input type="text" class="inputText" id="link" name="link" value="{$link}" /> 286 {if $errorField == 'link'} 287 <p class="innerError"> 288 {if $errorType == 'badFile'}{lang}wcf.acp.dldb.data.error.badFile{/lang}{/if} 289 {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} 290 {if $errorType == 'invalid'}{lang}wcf.acp.dldb.data.error.linkANDfile{/lang}{/if} 291 </p> 292 {/if} 293 </div> 294 <div class="formFieldDesc"> 295 {lang}wcf.dldb.data.link.description{/lang} 296 </div> 297 </div> 298 <div class="formElement" id="groesseDiv"> 299 <div class="formFieldLabel"> 300 <label for="groesse">{lang}wcf.acp.dldb.data.groesse{/lang}</label> 301 </div> 302 <div class="formField"> 303 <input {if $fileName}readonly {/if}type="text" class="inputText" id="groesse" name="groesse" value="{$groesse}" /> 304 </div> 305 <div class="formFieldDesc" id="supportThreadHelpMessage"> 306 {lang}wcf.acp.dldb.data.groesse.description{/lang} 307 </div> 308 </div> 262 309 {if $action == 'edit'} 263 <div class="formElement" id="groesseDiv">264 <div class="formFieldLabel">265 <label for="groesse">{lang}wcf.acp.dldb.data.groesse{/lang}</label>266 </div>267 <div class="formField">268 <input {if $fileName}readonly {/if}type="text" class="inputText" id="groesse" name="groesse" value="{$groesse}" />269 </div>270 </div>271 310 <div class="formElement"> 272 311 <div class="formFieldLabel"> -
downloadDatabase/templates/downloadDBViewData.tpl
r668 r715 33 33 <div class="headlineContainer"> 34 34 <h2>{if $daten|count > 0 && $daten.canViewCat == true}<span>{lang}{@$daten.name|filterjs}{/lang}</span>{/if}</h2> 35 <h6>{lang}wcf.dldb.dataset.title{/lang}</h6>35 {if DOWNLOADDB_ENABLE_RATING && $dldbData->ratings > 0}<div class="dldbRatingOutput">{@$dldbData->getRatingOutput()}</div>{/if} 36 36 </div> 37 37 </div> … … 39 39 {if $userMessages|isset}{@$userMessages}{/if} 40 40 41 {if $ data.additionalDLDBMessage|isset}{@$data.additionalDLDBMessage}{/if}41 {if $additionalDLDBMessage|isset}{@$additionalDLDBMessage}{/if} 42 42 43 43 {if $daten|count > 0 && $daten.canViewCat == true} … … 46 46 <div class="largeButtons"> 47 47 {if $daten.dldbUserID == $this->user->userID} 48 {if $this->user->getPermission('user.dldb.canEditOwnFile') }48 {if $this->user->getPermission('user.dldb.canEditOwnFile') || $this->user->getPermission('admin.dldb.canEditData')} 49 49 <ul> 50 50 <li> … … 53 53 </ul> 54 54 {/if} 55 {if $this->user->getPermission('user.dldb.canDeleteOwnFile') }55 {if $this->user->getPermission('user.dldb.canDeleteOwnFile') || $this->user->getPermission('admin.dldb.canDeleteData')} 56 56 <ul> 57 57 <li> … … 75 75 {/if} 76 76 {/foreach} 77 <span>{ @$daten.name|filterjs}</span>77 <span>{lang}{@$daten.name|filterjs}{/lang}</span> 78 78 </div> 79 79 </div> … … 81 81 <div class="container-1" id="dataname"> 82 82 <div class="containerContent"> 83 { @$daten.description|filterjs}83 {lang}{@$daten.description|filterjs}{/lang} 84 84 </div> 85 85 </div> … … 87 87 </div> 88 88 89 {if $ data.additionalDLDBHeadline|isset}{@$data.additionalDLDBHeadline}{/if}89 {if $additionalDLDBHeadline|isset}{@$additionalDLDBHeadline}{/if} 90 90 91 91 <!-- "Main-Data-Page" zweispaltiges Layout --> … … 94 94 <!-- "Mitte" --> 95 95 <div class="dldbmiddle" id="mitte"> 96 {if $daten.fileName} 96 {if $additionalDLDBUpperBox|isset}{@$additionalDLDBUpperBox}{/if} 97 {if $daten.fileName || $daten.mimeType || $daten.groesse || $additionalDLDBFileBoxField|isset} 97 98 <div class="border"> 98 99 <div class="containerHead"> … … 101 102 </div> 102 103 <div class="containerContent"> 103 <span>{ @$daten.fileName}</span>104 <span>{lang}wcf.dldb.dataset.title{/lang}</span> 104 105 </div> 105 106 </div> … … 109 110 <table class="tableList"> 110 111 <tbody> 111 <tr class="boardlistInner"> 112 <td class="dldbColumnMarkTitle" style="width:120px"> 113 {lang}wcf.dldb.dataset.mimeType{/lang} : 114 </td> 115 <td class="dldbColumnMarkContent"> 116 <b>{@$daten.mimeType}</b> 117 </td> 118 </tr> 119 <tr class="boardlistInner"> 120 <td class="dldbColumnMarkTitle" style="width:120px"> 121 {lang}wcf.dldb.dataset.groesse{/lang} : 122 </td> 123 <td class="dldbColumnMarkContent"> 124 <b>{@$daten.groesse}</b> 125 </td> 126 </tr> 127 {if $data.additionalDLDBUpperBoxField|isset}{@$data.additionalDLDBUpperBoxField}{/if} 112 {if $daten.fileName} 113 <tr class="boardlistInner"> 114 <td class="dldbColumnMarkTitle"> 115 {lang}wcf.dldb.dataset.fileName{/lang} : 116 </td> 117 <td class="dldbColumnMarkContent"> 118 <b>{@$daten.fileName}</b> 119 </td> 120 </tr> 121 {/if} 122 {if $daten.linkType != 2 && $daten.mimeType} 123 <tr class="boardlistInner"> 124 <td class="dldbColumnMarkTitle"> 125 {lang}wcf.dldb.dataset.mimeType{/lang} : 126 </td> 127 <td class="dldbColumnMarkContent"> 128 <b>{@$daten.mimeType}</b> <img src="{@RELATIVE_WCF_DIR}icon/filetype/{$daten.type}" alt="" /> 129 </td> 130 </tr> 131 {/if} 132 {if $daten.groesse} 133 <tr class="boardlistInner"> 134 <td class="dldbColumnMarkTitle"> 135 {lang}wcf.dldb.dataset.groesse{/lang} : 136 </td> 137 <td class="dldbColumnMarkContent"> 138 <b>{@$daten.groesse}</b> 139 </td> 140 </tr> 141 {/if} 142 {if $additionalDLDBFileBoxField|isset}{@$additionalDLDBFileBoxField}{/if} 128 143 </tbody> 129 144 </table> … … 131 146 </div> 132 147 {/if} 148 {if $additionalDLDBMiddleBox|isset}{@$additionalDLDBMiddleBox}{/if} 133 149 <div class="border"> 134 150 <div class="content"> … … 136 152 <tbody> 137 153 <tr class="boardlistInner"> 138 <td class="dldbColumnMarkTitle" style="width:120px">154 <td class="dldbColumnMarkTitle"> 139 155 {lang}wcf.dldb.dataset.datum{/lang} : 140 156 </td> … … 143 159 </td> 144 160 </tr> 145 {if !$daten.fileName}161 {if $daten.linkType != 2 && $daten.groesse} 146 162 <tr class="boardlistInner"> 147 <td class="dldbColumnMarkTitle" style="width:120px">163 <td class="dldbColumnMarkTitle"> 148 164 {lang}wcf.dldb.dataset.groesse{/lang} : 149 165 </td> … … 154 170 {/if} 155 171 <tr class="boardlistInner"> 156 <td class="dldbColumnMarkTitle" style="width:120px">172 <td class="dldbColumnMarkTitle"> 157 173 {lang}wcf.dldb.dataset.uploader{/lang} : 158 174 </td> 159 175 <td class="dldbColumnMarkContent"> 160 <b><a href="index.php?page=User& userID={$daten.dldbUserID}{@SID_ARG_2ND}">{@$daten.dldbUsername}</a></b>176 <b><a href="index.php?page=User&userID={$daten.dldbUserID}{@SID_ARG_2ND}">{@$daten.dldbUsername}</a></b> 161 177 </td> 162 178 </tr> 163 179 <tr class="boardlistInner"> 164 <td class="dldbColumnMarkTitle" style="width:120px">180 <td class="dldbColumnMarkTitle"> 165 181 {lang}wcf.dldb.dataset.downloads{/lang} : 166 182 </td> … … 171 187 {if $daten.thread} 172 188 <tr class="boardlistInner"> 173 <td class="dldbColumnMarkTitle" style="width:120px">189 <td class="dldbColumnMarkTitle"> 174 190 {lang}wcf.dldb.dataset.supportThread{/lang} : 175 191 </td> … … 179 195 </tr> 180 196 {/if} 181 {if $ daten.additionalDLDBLowerBoxField|isset}{@$daten.additionalDLDBLowerBoxField}{/if}197 {if $additionalDLDBLowerBoxField|isset}{@$additionalDLDBLowerBoxField}{/if} 182 198 </tbody> 183 199 </table> 184 200 </div> 185 201 </div> 202 {if $additionalDLDBLowerBox|isset}{@$additionalDLDBLowerBox}{/if} 186 203 </div> 187 {if $daten.additionalDLDBBox|isset}{@$data.additionalDLDBBox}{/if}188 204 <!-- "Rechts" --> 189 205 <div class="dldbright" id="rechts"> 206 {if $additionalDLDBUpperRightBox|isset}{@$additionalDLDBUpperRightBox}{/if} 190 207 {if $daten.previewThumb} 191 208 <div class="border"> … … 211 228 </div> 212 229 {/if} 230 {if DOWNLOADDB_ENABLE_RATING && $this->user->getPermission('user.dldb.canRateDownload')} 231 {if $dldbData->userRating === null || $dldbData->userRating >= DOWNLOADDB_MIN_RATINGS} 232 <div class="border"> 233 <form method="post" action="index.php?page=DownloadDBData"> 234 <div> 235 <input type="hidden" name="dataID" value="{@$daten.dataID}" /> 236 {@SID_INPUT_TAG} 237 <input type="hidden" id="dataRating" name="rating" value="0" /> 238 <div class="containerHead"> 239 <div class="containerIcon"> 240 <img src="{@RELATIVE_WCF_DIR}icon/downloadDBDataS.png" alt="" /> 241 </div> 242 <div class="containerContent"> 243 <span>{lang}wcf.dldb.dataset.rate{/lang}</span> 244 </div> 245 </div> 246 <div class="container-1" id="rating"> 247 <div class="dldbPreviewIMG"> 248 <select id="dataRatingSelect" name="rating"> 249 <option value="1"{if $dldbData->userRating == 1} selected="selected"{/if}>1</option> 250 <option value="2"{if $dldbData->userRating == 2} selected="selected"{/if}>2</option> 251 <option value="3"{if $dldbData->userRating == 3} selected="selected"{/if}>3</option> 252 <option value="4"{if $dldbData->userRating == 4} selected="selected"{/if}>4</option> 253 <option value="5"{if $dldbData->userRating == 5} selected="selected"{/if}>5</option> 254 <option value="6"{if $dldbData->userRating == 6} selected="selected"{/if}>6</option> 255 <option value="7"{if $dldbData->userRating == 7} selected="selected"{/if}>7</option> 256 <option value="8"{if $dldbData->userRating == 8} selected="selected"{/if}>8</option> 257 <option value="9"{if $dldbData->userRating == 9} selected="selected"{/if}>9</option> 258 <option value="10"{if $dldbData->userRating == 10} selected="selected"{/if}>10</option> 259 </select> 260 <input type="image" class="inputImage" src="{@RELATIVE_WCF_DIR}icon/submitS.png" alt="{lang}wcf.global.button.submit{/lang}" /> 261 </div> 262 </div> 263 </div> 264 </form> 265 </div> 266 {/if} 267 {/if} 268 {if $additionalDLDBLowerRightBox|isset}{@$additionalDLDBLowerRightBox}{/if} 213 269 </div> 214 270 <div class="dldbclear" /> … … 220 276 <ul> 221 277 <li> 222 <a href="index.php?page=DownloadDBFileDownload&dataID={$daten.dataID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/downloadDBDataGetM.png" alt="" title="{lang}wcf.dldb.button.submit{/lang}" /> <span>{ lang}wcf.dldb.button.submit{/lang}</span></a>278 <a href="index.php?page=DownloadDBFileDownload&dataID={$daten.dataID}{@SID_ARG_2ND}"><img src="{@RELATIVE_WCF_DIR}icon/downloadDBDataGetM.png" alt="" title="{lang}wcf.dldb.button.submit{/lang}" /> <span>{if $daten.linkType == 2}{lang}wcf.dldb.button.submit.link{/lang}{else}{lang}wcf.dldb.button.submit{/lang}{/if}</span></a> 223 279 </li> 224 280 </ul> -
downloadDatabase/templates/downloadDBViewKat.tpl
r668 r715 19 19 <body> 20 20 {include file='header' sandbox=false} 21 22 {if $deleteddataID}23 <p class="success">{lang}wcf.dldb.data.delete.success{/lang}</p>24 {/if}25 {if $success|isset}26 <p class="success">{lang}wcf.acp.dldb.{@$action}.success{/lang}</p>27 {/if}28 21 29 22 <div id="main"> … … 58 51 </div> 59 52 53 {if $deleteddataID} 54 <p class="success">{lang}wcf.dldb.data.delete.success{/lang}</p> 55 {/if} 56 {if $success|isset} 57 <p class="success">{lang}wcf.acp.dldb.{@$action}.success{/lang}</p> 58 {/if} 59 60 60 {if $userMessages|isset}{@$userMessages}{/if} 61 62 {if $additionalDLDBMessage|isset}{@$additionalDLDBMessage}{/if} 61 63 62 64 {if $kategorien|count > 0} … … 80 82 {/if} 81 83 {/foreach} 82 <a id="katLink{@$subkategorie.katID}" href="index.php?page=DownloadDBView&katID={@$subkategorie.katID}{@SID_ARG_2ND}"><span>{ @$subkategorie.name|filterjs}</span></a> {if $subkategorie.datain}({#$subkategorie.datain}){/if}84 <a id="katLink{@$subkategorie.katID}" href="index.php?page=DownloadDBView&katID={@$subkategorie.katID}{@SID_ARG_2ND}"><span>{lang}{@$subkategorie.name|filterjs}{/lang}</span></a> {if $subkategorie.datain}({#$subkategorie.datain}){/if} 83 85 </h6> 84 86 … … 106 108 {/if} 107 109 {/foreach} 108 <a id="katLink{@$subsubkat.katID}" href="index.php?page=DownloadDBView&katID={@$subsubkat.katID}{@SID_ARG_2ND}"><span>{ @$subsubkat.name|filterjs}</span></a> {if $subsubkat.datain}({#$subsubkat.datain}){/if}110 <a id="katLink{@$subsubkat.katID}" href="index.php?page=DownloadDBView&katID={@$subsubkat.katID}{@SID_ARG_2ND}"><span>{lang}{@$subsubkat.name|filterjs}{/lang}</span></a> {if $subsubkat.datain}({#$subsubkat.datain}){/if} 109 111 </h6> 110 112 … … 192 194 <div class="dldbPreviewIMG"><img src="{@$dataset.previewThumb}" alt="" /></div> 193 195 {/if} 194 { @$dataset.name|filterjs}196 {lang}{@$dataset.name|filterjs}{/lang} 195 197 </a> 196 198 </td> 197 <td class="dldbColumnMarkContent">{ @$dataset.description|filterjs}</td>199 <td class="dldbColumnMarkContent">{lang}{@$dataset.description|filterjs}{/lang}</td> 198 200 <td class="dldbColumnDatum">{@$dataset.datum|date}</td> 199 201 <td class="dldbColumnGroesse">{@$dataset.groesse}</td>
