├── lib ├── .redaxo └── structure_plus.php ├── package.yml ├── pages ├── index.php └── settings.php ├── LICENSE ├── README.md ├── boot.php └── assets ├── theme.default.min.css └── jquery.tablesorter.min.js /lib/.redaxo: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /package.yml: -------------------------------------------------------------------------------- 1 | package: structure_plus 2 | version: 0.1.dev 3 | author: Wolfgang Bund 4 | supportpage: www.redaxo.org/de/forum/ 5 | 6 | page: 7 | title: Structure Plus 8 | pjax: true 9 | icon: rex-icon rex-icon-system 10 | perm: admin 11 | subpages: 12 | settings: 13 | title: Einstellungen 14 | -------------------------------------------------------------------------------- /pages/index.php: -------------------------------------------------------------------------------- 1 | i18n('title') ist eine Kurzform für rex_i18n::msg('dummy_title') 9 | 10 | // Die Subpages werden nicht mehr über den "subpage"-Parameter gesteuert, sondern mit über "page" (getrennt mit einem Slash, z. B. page=dummy/config) 11 | // Die einzelnen Teile des page-Pfades können mit der folgenden Funktion ausgelesen werden. 12 | $subpage = rex_be_controller::getCurrentPagePart(2); 13 | 14 | // Subpages können über diese Methode eingebunden werden. So ist sichergestellt, dass auch Subpages funktionieren, 15 | // die von anderen Addons/Plugins hinzugefügt wurden 16 | rex_be_controller::includeCurrentPageSubPath(); 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Friends Of REDAXO 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Structure Plus 2 | ================================================================================ 3 | 4 | **Erweitert das Sturcture AddOn** 5 | 6 | ## Was es macht 7 | 8 | Es ist eine Erweiterung des Structure AddOns. Also kein Ersatz. Wenn die Einstellungen entsprechend dem eigenen Projekt gesetzt sind, wird die Artikelauflistung im Backend modifiziert. Es kann eine zusätzliche Spalte angezeigt werden und die Sortierung kann nach der zusätzlichen Spalte in aufsteigender oder absteigender Richtung eingestellt werden. Es kann außerdem definiert werden, für welche Kategorien diese Erweiterung angewendet werden soll. So kann die Backend-Ansicht beispielsweise in der News-Kategorie nach Veröffentlichungsdatum absteigend sortiert werden. Somit steht der neueste Artikel immer am Anfang. 9 | 10 | Auf die Anzeige im Frontend haben die Einstellungen keine Auswirkungen. Die Standardsortierung im Frontend ist nach wie vor die Spalte prio. 11 | 12 | Zusätzlich kann angegeben werden, wieviele Artikel in der Liste angezeigt werden. Bei REDAXO ist der Standardwert 30. Eingaben von kleineren Werten als 30 werden ignoriert. 13 | 14 | Mit einem Klick in die Spaltenköpfe kann die Tabelle nach anderen Spalten sortiert werden. Diese Sortierung wirkt sich allerdings nur auf die momentane Ansicht aus. Mit Strg+Klick in den Tabellenkopf kann die ursprüngliche Sortierung wieder hergestellt werden. 15 | 16 | ## Einstellungen 17 | 18 | Auf der Einstellungsseite kann eingestellt werden für welche Kategorien die Anzeige im Backend modifiziert werden soll und nach welchem Kriterium die Tabelle sortiert werden soll. Die Sortierung kann aufsteigend oder absteigend eingestellt werden. 19 | 20 | Wenn das AddOn UI_Tools mit dem Plugin Jquery-Minicolors installiert ist, kann man die Farben für die Kennzeichnung per Colorpicker auswählen. 21 | 22 | ## Lizenz 23 | 24 | siehe [LICENSE](https://github.com/FriendsOfREDAXO/sked/blob/master/LICENCE) 25 | 26 | 27 | ## Autor 28 | 29 | **Friends Of REDAXO** 30 | 31 | * http://www.redaxo.org 32 | * https://github.com/FriendsOfREDAXO 33 | 34 | 35 | **Development-Team / Autoren** 36 | * [Wolfgang Bund](https://github.com/dtpop) 37 | 38 | Mit Copy&Paste aus REDAXO Structure AddOn 39 | -------------------------------------------------------------------------------- /boot.php: -------------------------------------------------------------------------------- 1 | getAssetsUrl('jquery.tablesorter.min.js')); 6 | rex_view::addCssFile($this->getAssetsUrl('theme.default.min.css')); 7 | 8 | rex_extension::register('PAGE_STRUCTURE_HEADER', function ($params) { 9 | $for_categories = explode(',',$this->getConfig('for_categories')); 10 | $params = $params->getParams(); 11 | 12 | // nur in den eingestellten Kategorien ausführen 13 | if ( 14 | (!$this->getConfig('for_all_categories') && in_array($params['category_id'],$for_categories)) || 15 | ($this->getConfig('for_all_categories') && !in_array($params['category_id'],$for_categories)) 16 | ) { 17 | 18 | rex_extension::register('OUTPUT_FILTER', function ($params) { 19 | 20 | // Tabelle und Pager laden 21 | list($table2,$pager) = structure_plus::get_article_table(); 22 | 23 | // Ersetzungen durchführen 24 | $subject = $params->getSubject(); 25 | $subject = preg_replace('/(.*?)/s','$1###tab2###',$subject,1); 26 | $subject = str_replace('###tab2###',$table2,$subject); 27 | rex_logger::factory()->log('notice',$pager,[],__FILE__,__LINE__); 28 | 29 | $subject = preg_replace('/