diff --git a/site.xml b/site.xml new file mode 100644 index 0000000000000000000000000000000000000000..e9e1e8b79f60a81da6d726f2cfd8f5c98de40e67 --- /dev/null +++ b/site.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site> + <!-- global extra attributes for all sites --> + <attributes> + <attribute>quiqqer.megamenu.settings.type</attribute> + </attributes> + + <!-- list settings --> + <settings> + + <category> + <settings> + <title> + <locale group="quiqqer/menu" var="menu.settings.category"/> + </title> + + <select conf="quiqqer.megamenu.settings.type"> + <title> + <locale group="quiqqer/menu" var="menu.settings.title"/> + </title> + <select conf="menu.settings.type"> + <text> + <locale group="quiqqer/menu" var="menu.settings.type"/> + </text> + <option value=""></option> + <option value="Standard"> + <locale group="quiqqer/menu" var="menu.settings.Standard"/> + </option> + <option value="Icons"> + <locale group="quiqqer/menu" var="menu.settings.Icons"/> + </option> + <option value="IconsDescription"> + <locale group="quiqqer/menu" var="menu.settings.IconsDescription"/> + </option> + <option value="Image"> + <locale group="quiqqer/menu" var="menu.settings.Image"/> + </option> + </select> + </select> + </settings> + </category> + + </settings> +</site> \ No newline at end of file diff --git a/src/QUI/Menu/Mega/Icons.css b/src/QUI/Menu/Mega/Icons.css index a57d9819cf3468680957e0e6eaf02c0c10085789..71b89b4f589216e29296eaddd1c5eea0e7bb4aea 100644 --- a/src/QUI/Menu/Mega/Icons.css +++ b/src/QUI/Menu/Mega/Icons.css @@ -58,7 +58,7 @@ } .quiqqer-menu-megaMenu-children-icons-list-short-text { - color: rgba(0, 0, 0, 0.4); + opacity: 0.6; } .quiqqer-menu-megaMenu-children-icons-entry-short ul { diff --git a/src/QUI/Menu/Mega/IconsDescription.css b/src/QUI/Menu/Mega/IconsDescription.css index 88731e0386bf77a66c108e65e49c78f4b07fcde3..bc54255c1a76d8c1109d64bdaeb1563d20d23929 100644 --- a/src/QUI/Menu/Mega/IconsDescription.css +++ b/src/QUI/Menu/Mega/IconsDescription.css @@ -66,13 +66,15 @@ .quiqqer-menu-megaMenu-children-iconsDesc-list-entry-short-link-title-description { clear: both; - color: rgba(0, 0, 0, 0.4); + /*color: rgba(0, 0, 0, 0.4);*/ display: block; + opacity: 0.7; padding: 5px 0; } .quiqqer-menu-megaMenu-children-iconsDesc-list-short-text { - color: rgba(0, 0, 0, 0.4); + /*color: rgba(0, 0, 0, 0.4);*/ + opacity: 0.7; } .quiqqer-menu-megaMenu-children-iconsDesc-entry-short ul { diff --git a/src/QUI/Menu/Mega/Standard.css b/src/QUI/Menu/Mega/Standard.css index edb8076bdb389c0f5f69905eaaa822941c1d7030..7d50e84f2da8f719b0e8c9bac7912e7084d493f5 100644 --- a/src/QUI/Menu/Mega/Standard.css +++ b/src/QUI/Menu/Mega/Standard.css @@ -40,6 +40,7 @@ font-size: 12px; font-weight: normal; margin: 10px 0 0; + opacity: 0.8; width: 100%; } diff --git a/src/QUI/Menu/MegaMenu.html b/src/QUI/Menu/MegaMenu.html index b00b6dd957bf2acd3fb17c59aeb41c6772777cc9..764abcb889d5425eddcc2e4ac6d3d3808cbe47d0 100644 --- a/src/QUI/Menu/MegaMenu.html +++ b/src/QUI/Menu/MegaMenu.html @@ -12,6 +12,7 @@ {foreach $children as $Child} {assign var=isInPath value=0} + {assign var=usedControl value=$childControl} {if $Child->getId() == $Site->getId() || $Rewrite->isIdInPath($Child->getId()) } @@ -25,7 +26,11 @@ {if count($subchildren)}<span class="fa fa-angle-down"></span>{/if} </a> - {control control=$childControl Site=$Child assign=Control} + {if $Child->getAttribute('quiqqer.megamenu.settings.type') && $Child->getAttribute('quiqqer.megamenu.settings.type') !== ''} + {assign var=usedControl value=$this->getMenuControl($Child->getAttribute('quiqqer.megamenu.settings.type'))} + {/if} + + {control control=$usedControl Site=$Child assign=Control} {if $Control->count()} <div class="quiqqer-menu-megaMenu-list-item-menu"> {$Control->create()} diff --git a/src/QUI/Menu/MegaMenu.php b/src/QUI/Menu/MegaMenu.php index b84b4d628cb443e4f33a42f5456c4710b5ded502..71c61f285c9536abcd5ecd7efb597bc46739a24d 100644 --- a/src/QUI/Menu/MegaMenu.php +++ b/src/QUI/Menu/MegaMenu.php @@ -28,7 +28,7 @@ public function __construct($attributes = array()) 'showStart' => false, 'Start' => false, 'data-qui' => 'package/quiqqer/menu/bin/MegaMenu', - 'display' => $this->getProject()->getConfig('menu.settings.type') + 'display' => 'Standard' )); parent::__construct($attributes); @@ -57,30 +57,8 @@ public function __construct($attributes = array()) */ public function getBody() { - $Engine = QUI::getTemplateManager()->getEngine(); - - switch ($this->getAttribute('display')) { - case 'Image': - case QUI\Menu\Mega\Image::class: - $childControl = QUI\Menu\Mega\Image::class; - break; - - case 'Icons': - case QUI\Menu\Mega\Icons::class: - $childControl = QUI\Menu\Mega\Icons::class; - break; - - case 'IconsDescription': - case QUI\Menu\Mega\IconsDescription::class: - $childControl = QUI\Menu\Mega\IconsDescription::class; - break; - - default: - case 'Standard': - case QUI\Menu\Mega\Standard::class: - $childControl = QUI\Menu\Mega\Standard::class; - break; - } + $Engine = QUI::getTemplateManager()->getEngine(); + $childControl = $this->getMenuControl($this->getAttribute('display')); $this->Mobile->setAttribute('Project', $this->getProject()); $this->Mobile->setAttribute('Site', $this->getSite()); @@ -122,6 +100,55 @@ public function getStart() return $this->getProject()->firstChild(); } + /** + * Return the menu control class name for a menu control shortcut + * + * @param $control + * @return mixed + */ + public function getMenuControl($control) + { + switch ($control) { + case 'Image': + case QUI\Menu\Mega\Image::class: + return QUI\Menu\Mega\Image::class; + + case 'Icons': + case QUI\Menu\Mega\Icons::class: + return QUI\Menu\Mega\Icons::class; + + case 'IconsDescription': + case QUI\Menu\Mega\IconsDescription::class: + return QUI\Menu\Mega\IconsDescription::class; + + case 'Standard': + case QUI\Menu\Mega\Standard::class: + return QUI\Menu\Mega\Standard::class; + } + + if ($this->getAttribute('display')) { + switch ($this->getAttribute('display')) { + case 'Image': + case QUI\Menu\Mega\Image::class: + return QUI\Menu\Mega\Image::class; + + case 'Icons': + case QUI\Menu\Mega\Icons::class: + return QUI\Menu\Mega\Icons::class; + + case 'IconsDescription': + case QUI\Menu\Mega\IconsDescription::class: + return QUI\Menu\Mega\IconsDescription::class; + + case 'Standard': + case QUI\Menu\Mega\Standard::class: + return QUI\Menu\Mega\Standard::class; + } + } + + return QUI\Menu\Mega\Standard::class; + } + /** * Return the current site *