get sorting configuration from config file

This commit is contained in:
Daniel Seifert 2021-12-11 13:59:13 +01:00
parent 446fa87297
commit b4590187a6
Signed by: DanielS
GPG Key ID: 6A513E13AEE66170
2 changed files with 44 additions and 25 deletions

View File

@ -4,6 +4,7 @@ namespace D3\SortedMenus\Modules\Controller\Admin;
use DOMElement;
use DOMXPath;
use OxidEsales\Eshop\Core\Registry;
class NavigationTreeSortedMenus extends NavigationTreeSortedMenus_parent
{
@ -19,29 +20,11 @@ class NavigationTreeSortedMenus extends NavigationTreeSortedMenus_parent
public function d3SortMenus()
{
$sorting = [
// Tabs
[
'xpath' => "//OX/*[@id='d3mxd3modules']/*[@id='d3mximporter']/*[@id='d3mxarticleimport']/TAB",
'order' => ['d3tbclimporter_category', 'd3tbclimporter_selectlist', 'd3tbclimporter_main']
],
// mainmenu
[
'xpath' => "//OX/*[@id='d3mxd3modules']/MAINMENU",
'order' => ['d3konfigurator', 'abcdef', 'd3mxordermanager']
],
// mainmenu with unvalid item
[
'xpath' => "//OX/*[@id='d3mxd4modules']/MAINMENU",
'order' => ['d3konfigurator', 'abcdef', 'd3mxordermanager']
],
// Tabs
[
'xpath' => "//OX/*[@id='NAVIGATION_ESHOPADMIN']/*[@id='mxmanageprod']/*[@id='mxcategories']/TAB",
'order' => ['tbclcategory_pictures']
]
// can't sort buttons
];
$sorting = Registry::getConfig()->getConfigParam('d3MenuSorting');
if (false === is_array($sorting) || false == count($sorting)) {
return;
}
foreach ($sorting as $sort) {
$this->d3SortList($this->_oInitialDom, $sort['xpath'], $sort['order']);

View File

@ -1,15 +1,51 @@
[![deutsche Version](https://logos.oxidmodule.com/de2_xs.svg)](README.md)
[![english version](https://logos.oxidmodule.com/en2_xs.svg)](README.en.md)
# D³ Sorted Menus für OXID eShop
# D³ Sortable Menus für OXID eShop
Das Modul bietet die Möglichkeit, die Adminmenüs in eine gewünschte Reihenfolge zubringen.
Sortiert werden kann das Seitenmenü auf der linken Seite sowie die Tabs in jedem einzelnen Bereich.
Die Einträge können ausschließlich in der aktuell ausgewählten Ebene verschoben werden.
## Konfiguration
Die Konfiguration erfolgt der Einfachheit halber direkt in der Konfiguration des Shops (`config.inc.php`).
Die Einträge können ausschließlich in der aktuell ausgewählten Ebene verschoben werden.
Fügen Sie beispielhaft folgende Konfiguration ein:
```php
$this->d3MenuSorting = [
// Tabs
[
'xpath' => "//OX/*[@id='d3mxd3modules']/*[@id='d3mximporter']/*[@id='d3mxarticleimport']/TAB",
'order' => ['d3tbclimporter_category', 'd3tbclimporter_selectlist', 'd3tbclimporter_main']
],
// mainmenu
[
'xpath' => "//OX/*[@id='d3mxd3modules']/MAINMENU",
'order' => ['d3konfigurator', 'abcdef', 'd3mxordermanager']
],
// mainmenu with unvalid item
[
'xpath' => "//OX/*[@id='d3mxd4modules']/MAINMENU",
'order' => ['d3konfigurator', 'abcdef', 'd3mxordermanager']
],
// Tabs
[
'xpath' => "//OX/*[@id='NAVIGATION_ESHOPADMIN']/*[@id='mxmanageprod']/*[@id='mxcategories']/TAB",
'order' => ['tbclcategory_pictures']
]
// can't sort buttons
];
```
Jeder Eintrage definiert mit der xPath-Angabe eine Menüebene, in der sortiert werden kann. Der xPath kann in der jeweiligen menu.xml ermittelt werden.
Im order-Eintrag stehen die IDs der enthaltenen Einträge in der richtigen Reihenfolge. Nicht enthaltene Einträge werden in der bisherigen Sortierung automatisch an das Ende der sortierten Liste angehängt.
Nach dem Ändern der Sortiereinträage muss der tmp-Ordner geleert werden.
## Schnellinstallation