get sorting configuration from config file

Cette révision appartient à :
Daniel Seifert 2021-12-11 13:59:13 +01:00
Parent 446fa87297
révision b4590187a6
Signé par: DanielS
ID de la clé GPG: 6A513E13AEE66170
2 fichiers modifiés avec 44 ajouts et 25 suppressions

Voir le fichier

@ -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']);

Voir le fichier

@ -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