- Affected Version
- WoltLab Suite 5.3
Ich habe heute das Upgrade auf das WSC 5.3 und damit auch auf die Filebase 5.3 vorgenommen. Bis heute war es mir möglich, per Template- und Dateiänderung eine Sortierung nach "Name" des Downloads zu ermöglichen, die direkt auch als Standard definiert war.
Im Template fileList.tpl habe ich das als Zeile 116 hinzugefügt.
<li{if $sortField == 'subject'} class="active"{/if}><a href="{link application='filebase' controller=$controllerName object=$controllerObject}pageNo={@$pageNo}&sortField=subject&sortOrder=ASC{@$additionalLinkParameters}{/link}">{lang}wcf.global.name{/lang}</a></li>
Damit erhalte ich zwar die Spalte "Name", aber sobald ich danach sortieren möchte, passiert nichts.
Weiterhin habe ich bisher immer die PHP-Datei FileListPage.class.php wie folgt angepasst.
/**
* @inheritDoc
*/
public $defaultSortField = 'subject';
/**
* @inheritDoc
*/
public $defaultSortOrder = 'ASC';
Tue ich das nun und tausche die Datei auf dem Server aus, erhalte ich diesen Fehler, sobald ich mir die Downloads anschauen möchte.
- Requested URL
- GET /downloads/?pageNo=1&sortField=subject&sortOrder=ASC
- Referrer
- https://www.compiware-forum.de/downloads/?pageNo=1&sortField=subject&sortOrder=ASC
- Error Message
- Could not prepare statement 'SELECT file.fileID AS objectID FROM filebase1_file file WHERE file.categoryID IN (?,?,?,?,?,?) ORDER BY file.subject ASC, file.fileID ASC LIMIT 14'
- Type
- wcf\system\database\exception\DatabaseQueryException
- File (Line)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/database/Database.class.php (284)
- Stacktrace
-
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/DatabaseObjectList.class.php (164): wcf\system\database\Database->prepareStatement(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/lib/data/file/AccessibleFileList.class.php (45): wcf\data\DatabaseObjectList->readObjectIDs(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/MultipleLinkPage.class.php (163): filebase\data\file\AccessibleFileList->readObjects(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/lib/page/FileListPage.class.php (220): wcf\page\MultipleLinkPage->readObjects(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/MultipleLinkPage.class.php (131): filebase\page\FileListPage->readObjects(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/SortablePage.class.php (52): wcf\page\MultipleLinkPage->readData(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/lib/page/FileListPage.class.php (194): wcf\page\SortablePage->readData(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/AbstractPage.class.php (291): filebase\page\FileListPage->readData(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/index.php (9): wcf\system\request\RequestHandler->handle(…)
- Error Message
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'file.subject' in 'order clause'
- Type
- PDOException
- File (Line)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/database/Database.class.php (279)
- Stacktrace
-
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/database/Database.class.php (279): PDO->prepare(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/data/DatabaseObjectList.class.php (164): wcf\system\database\Database->prepareStatement(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/lib/data/file/AccessibleFileList.class.php (45): wcf\data\DatabaseObjectList->readObjectIDs(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/MultipleLinkPage.class.php (163): filebase\data\file\AccessibleFileList->readObjects(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/lib/page/FileListPage.class.php (220): wcf\page\MultipleLinkPage->readObjects(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/MultipleLinkPage.class.php (131): filebase\page\FileListPage->readObjects(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/SortablePage.class.php (52): wcf\page\MultipleLinkPage->readData(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/lib/page/FileListPage.class.php (194): wcf\page\SortablePage->readData(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/AbstractPage.class.php (291): filebase\page\FileListPage->readData(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
- /var/www/compiware-forum.de/htdocs/compiware-forum.de/downloads/index.php (9): wcf\system\request\RequestHandler->handle(…)
Schaue ich mir die PHP-Datei in Zeile 50 an, scheint es das Feld "subject" nun wohl nicht mehr zu geben. Es wird mir dort jedenfalls nicht als Sortiermöglichkeit angeboten.
public $validSortFields = ['username', 'time', 'lastChangeTime', 'downloads', 'cumulativeLikes', 'comments', 'purchases', 'totalRevenue'];
Gibt es seit Version 5.3 dieses Feld tatsächlich nicht mehr, sodass ich dieses nicht mehr für eine Sortierung nutzen kann? Wie bekomme ich eine Sortierung nach "Name" des Downloads wieder hin?