diff --git a/bin/css/frontend-users.css b/bin/css/frontend-users.css index dbbdfef8e09247a42ef68ddbc6f789d316149b65..f2696077a038d581d03b3429942021ca5303855d 100644 --- a/bin/css/frontend-users.css +++ b/bin/css/frontend-users.css @@ -1,3 +1,7 @@ +.templateCologne-frontendUsers-profile-container-login { + margin-top: 2rem; + margin-bottom: 2rem; +} /********************/ /* simple user info */ /********************/ @@ -11,6 +15,12 @@ background: url("../images/brushed_alu.png"); } +.quiqqer-frontendUsers-profile-container { + margin-top: 2rem; + margin-bottom: 2rem; + display: flex; +} + .quiqqer-frontendUsers-controls-profile .quiqqer-frontendUsers-controls-profile-categories { padding-right: 20px; } diff --git a/bin/css/style.css b/bin/css/style.css index 63f47309bdd350bb7ca84c386d12b68da688f217..c59de629dc49f16529c61f1e008352c3da64f647 100644 --- a/bin/css/style.css +++ b/bin/css/style.css @@ -420,8 +420,8 @@ a.toTop:before { background: #f8f8f8; border-bottom: 1px solid #ddd; height: 50px; - padding-bottom: 10px; - padding-top: 10px; + /*padding-bottom: 10px;*/ + /*padding-top: 10px;*/ } .header-fixed .topbar { @@ -458,6 +458,7 @@ a.toTop:before { align-items: center; display: flex; margin-left: auto; + height: 100%; } .topbar-mobile-menu { @@ -825,7 +826,7 @@ a.toTop:before { /*********************/ .cologne-header-control-user { cursor: pointer; - margin: 0 20px; + margin-left: 20px; position: relative; } diff --git a/index.html b/index.html index 8464b3e15325a77d4392f6312324c9a7a81cd71f..786f8e70a35c7bd92a049c1768c836b3d870cf6f 100644 --- a/index.html +++ b/index.html @@ -31,12 +31,15 @@ </head> <body class="page-{$Site->getId()} {$typeClass} {$siteType}"> + {* small top bar *} -{fetch template="template/topBar.html" Project=$Project Menu=$Menu User=$User Avatar=$Avatar} +{fetch template="template/topBar.html" Project=$Project Menu=$Menu User=$User Avatar=$Avatar + Flags=$Flags LangCurrencySwitch=$LangCurrencySwitch} {* main navigation / menu *} -{fetch template="template/mainMenu.html" Project=$Project Menu=$Menu} - +<div> + {fetch template="template/mainMenu.html" Project=$Project Menu=$Menu} +</div> {if $header == 'afterNav' && $Site->getAttribute('image_emotion')} {fetch template="template/pageHeader.html" Site=$Site} {/if} diff --git a/index.php b/index.php index 6017bbee95dba9eeaec41862e68382a13d99671c..0a56270dc271d83734cd24d6a61016c4931a42de 100644 --- a/index.php +++ b/index.php @@ -11,9 +11,9 @@ * Header */ $Menu = new QUI\Menu\MegaMenu([ - 'showStart' => false, + 'showStart' => false, 'data-show-button-on-desktop' => 1, - 'Project' => $Site->getProject() + 'Project' => $Site->getProject() ]); /* user avatar */ @@ -31,12 +31,14 @@ break; }; -$Engine->assign([ - 'BricksManager' => QUI\Bricks\Manager::init(), - 'Project' => $Project, - 'Menu' => $Menu, - 'Avatar' => $Avatar, - 'productPage' => $productPage +/** + * Flags + */ +$Flags = new QUI\Bricks\Controls\LanguageSwitches\Flags([ + 'Site' => $Site, + 'showFlags' => true, + 'showText' => true, + 'all' => true ]); /** @@ -48,4 +50,15 @@ 'Template' => $Template ]); +$LangCurrencySwitch = new \QUI\TemplateCologne\Controls\LangCurrencySwitch(); + +// array to assign +$templateSettings['BricksManager'] = QUI\Bricks\Manager::init(); +$templateSettings['Project'] = $Project; +$templateSettings['Menu'] = $Menu; +$templateSettings['Avatar'] = $Avatar; +$templateSettings['productPage'] = $productPage; +$templateSettings['Flags'] = $Flags; +$templateSettings['LangCurrencySwitch'] = $LangCurrencySwitch; + $Engine->assign($templateSettings); diff --git a/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.css b/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.css new file mode 100644 index 0000000000000000000000000000000000000000..f1102596b78ca96a6e827fff024c8ef84efcda8d --- /dev/null +++ b/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.css @@ -0,0 +1,69 @@ +.lang-currency-switch { + height: 100%; + display: flex; + align-items: center; + position: relative; +} + +.quiqqer-currency-switch { + z-index: auto !important; +} + +.lcs-button { + padding: 10px; + cursor: pointer; +} + +.lcs-button-flag { + padding: 0 1rem; + border-right: 1px solid #ddd; +} + +.lcs-button-currency { + margin: 0 1rem; + font-weight: 300; +} + +.lcs-button-currency-sign { + +} + +/********/ +/* menu */ +/********/ +.lcs-menu-wrapper { + position: absolute; + bottom: 0; + right: 0; +} + +.lcs-menu { + border: 1px solid rgb(221, 221, 221); + box-shadow: 0 7px 22px -5px rgba(48, 60, 72, 0.2); + position: absolute; + right: 0; + background: #fff; + z-index: 1000; + width: 160px; + padding: 10px 20px; +} + +.lcs-menu-curency-container { + display: flex; + border: 1px solid #ddd; + border-radius: 0.25rem; + position: relative; + padding: 10px 0; +} + +.quiqqer-currency-switch.button { + outline: none; + padding: 0; + width: 100%; +} + +.lcs-menu ul { + margin: 0; + list-style: none; + padding: 0; +} \ No newline at end of file diff --git a/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.html b/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.html new file mode 100644 index 0000000000000000000000000000000000000000..9f88a4b28278225896fc7717d292321f8a89b9bf --- /dev/null +++ b/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.html @@ -0,0 +1,47 @@ +{assign var=path value=$this->getAttribute('flagFolderPath')} + +<div class="lcs-button"> + <span class="lcs-button-flag"> + <img src="{$path}{$projectLang}.png"/> + </span> + + <span class="lcs-button-currency" title="{$DefaultCurrency->getText()}"> + <span class="lcs-button-currency-sign">{$DefaultCurrency->getSign()}</span> + <span class="lcs-button-currency-code text-muted">{$DefaultCurrency->getCode()}</span> + </span> + <span class="fa fa-caret-down"></span> + +</div> +<div class="lcs-menu-wrapper"> + + <div class="lcs-menu"> + <div class="lcs-menu-curency-container"> + <div data-qui="package/quiqqer/currency/bin/controls/Switch"></div> + </div> + + {if count($langs) > 1} + {strip} + <ul class="lcs-menu-list"> + {foreach from=$langs item=lang} + <li class="lcs-menu-list-entry"> + {if $Site->getId($lang)} + <a href="{url id=$Site->getId($lang) lang=$lang}"> + {else} + <a href="{url id=1 lang=$lang}"> + {/if} + + <span class="lcs-menu-list-entry-icon"> + <img src="{$path}{$lang}.png"/> + </span> + <span class="lcs-menu-list-entry-text"> + {locale group="quiqqer/system" var="language.$lang"} + </span> + + </a> + </li> + {/foreach} + </ul> + {/strip} + {/if} + </div> +</div> diff --git a/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.php b/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.php new file mode 100644 index 0000000000000000000000000000000000000000..6afeb2ae4e66be280c6d1a176d9e93685a4bbe59 --- /dev/null +++ b/src/QUI/TemplateCologne/Controls/LangCurrencySwitch.php @@ -0,0 +1,76 @@ +<?php + +/** + * This file contains QUI\TemplateCologne\Controls\LangCurrencySwitch + */ + +namespace QUI\TemplateCologne\Controls; + +use QUI; + +/** + * Class LangCurrencySwitch + */ +class LangCurrencySwitch extends QUI\Control +{ + /** + * constructor + * + * @param array $attributes + */ + public function __construct($attributes = []) + { + $this->setAttributes([ + 'class' => 'lang-currency-switch', + 'flagFolderPath' => URL_BIN_DIR . '16x16/flags/' + ]); + + $this->addCSSFile(dirname(__FILE__) . '/LangCurrencySwitch.css'); + + parent::__construct($attributes); + } + + /** + * (non-PHPdoc) + * + * @see \QUI\Control::create() + * + * @throws QUI\Exception + */ + public function getBody() + { + $Engine = QUI::getTemplateManager()->getEngine(); + $Site = $this->getSite(); + $Project = $Site->getProject(); + + if (!$Site) { + return ''; + } + + QUI\System\Log::writeRecursive($Project->getLanguages()); + + $Engine->assign([ + 'this' => $this, + 'Site' => $Site, + 'projectLang' => $Project->getLang(), + 'DefaultCurrency' => QUI\ERP\Currency\Handler::getDefaultCurrency(), + 'langs' => $Project->getLanguages() + ]); + + return $Engine->fetch(dirname(__FILE__) . '/LangCurrencySwitch.html'); + } + + /** + * Return the Project + * + * @return QUI\Projects\Site + */ + protected function getSite() + { + if ($this->getAttribute('Site')) { + return $this->getAttribute('Site'); + } + + return QUI::getRewrite()->getSite(); + } +} diff --git a/src/QUI/TemplateCologne/EventHandler.php b/src/QUI/TemplateCologne/EventHandler.php index a28350cd6e7ae188ee2f663aa994388d178afc3a..ca3f9ce3da9862b87b9f9ac3416508b7f051aefb 100644 --- a/src/QUI/TemplateCologne/EventHandler.php +++ b/src/QUI/TemplateCologne/EventHandler.php @@ -21,7 +21,6 @@ class EventHandler */ public static function onProjectConfigSave() { - QUI\System\Log::writeRecursive('<-------------------------------------->'); try { QUI\Cache\Manager::clear('quiqqer/templateCologne'); } catch (QUI\Exception $Exception) { @@ -36,7 +35,6 @@ public static function onProjectConfigSave() */ public static function onSiteSave() { - QUI\System\Log::writeRecursive('<xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>'); try { QUI\Cache\Manager::clear('quiqqer/templateCologne'); } catch (QUI\Exception $Exception) { diff --git a/template/topBar.html b/template/topBar.html index 77034671b37b2c6be36d5a7d3ce90cab02ea9d70..71ed9323f30eca4e93236ab57af620d7aed05ffe 100644 --- a/template/topBar.html +++ b/template/topBar.html @@ -11,6 +11,12 @@ </div> <div class="topbar-right template-column"> + + {*$Flags->create()*} + + {$LangCurrencySwitch->create()} + + <span class="cologne-header-control-user"> {if $User->getId()} {$Avatar->create()} @@ -21,21 +27,8 @@ <span class="fa fa-pulse fa-spinner"></span> </span> </span> - <!--<span class="template-column cologne-header-control-user"> - <a href="#login" class="login btn btn-primary btn-outline"> - <span class="fa fa-spinner fa-spin"></span> - {if $User->getId()} - {locale group="quiqqer/template-cologne" - var="template.logged.in" username=$User->getName()} - {else} - {locale group="quiqqer/template-cologne" - var="template.login"} - {/if} - </a> - </span>--> <!--<span class="template-column cologne-header-control-currencies"></span>--> - DE EN <span class="fa fa-angle-down"></span> </div> </div> \ No newline at end of file