From e822b8d0fbc276103c354a1b35be6bf974ef6137 Mon Sep 17 00:00:00 2001
From: "michael.daniel" <michael.danielczok@gmail.com>
Date: Thu, 22 Mar 2018 14:45:52 +0100
Subject: [PATCH] feat: Template Business Pro supports new properties
 (template-header and template-footer) to work properly with app plugin.

---
 index.html | 16 ++++++----
 index.php  | 86 +++++++++++++++++++++++++++++++-----------------------
 2 files changed, 60 insertions(+), 42 deletions(-)

diff --git a/index.html b/index.html
index b5c8c35..a986e45 100644
--- a/index.html
+++ b/index.html
@@ -49,6 +49,7 @@
 <body class="{$bodyClass} page-{$Site->getId()} {$typeClass}" id="body-top">
 
 <!-- menu -->
+{if $Template->getAttribute('template-header')}
 <div class="header-bar">
     <div class="grid-container header-bar-inner">
         <div class="header-bar-inner-nav" id="navigation">
@@ -58,7 +59,7 @@
         </div>
     </div>
 </div>
-
+{/if}
 <!-- page -->
 <div class="body-container">
     <!-- header -->
@@ -182,7 +183,9 @@
         {/if}
         {/foreach}
     </div>
+
     <!-- footer -->
+    {if $Template->getAttribute('template-footer')}
     <footer class="page-footer clear-fix">
         <div class="page-footer-container grid-container">
             {assign var=footer value=$BricksManager->getBricksByArea('footer', $Site)}
@@ -190,11 +193,11 @@
             <div class="grid-children">
                 <div class="grid-children-container">
                     {foreach from=$footer item=Brick}
-                    {if !$Brick->hasCSSClass('grid-*')}
-                    {$Brick->addCSSClass('grid-100')}
-                    {/if}
-                    {$Brick->addCSSClass('page-footer-brick clear-fix')}
-                    {$Brick->create()}
+                        {if !$Brick->hasCSSClass('grid-*')}
+                            {$Brick->addCSSClass('grid-100')}
+                        {/if}
+                        {$Brick->addCSSClass('page-footer-brick clear-fix')}
+                        {$Brick->create()}
                     {/foreach}
                 </div>
             </div>
@@ -215,6 +218,7 @@
             </div>
         </div>
     </footer>
+    {/if}
 </div>
 
 
diff --git a/index.php b/index.php
index 74ba2a4..0cd7a26 100644
--- a/index.php
+++ b/index.php
@@ -7,21 +7,13 @@
  */
 QUI\Utils\Site::setRecursivAttribute($Site, 'image_emotion');
 
-// Inhalts Verhalten
+// Inhaltsverhalten
 if ($Site->getAttribute('templateBusinessPro.showTitle') ||
     $Site->getAttribute('templateBusinessPro.showShort')
 ) {
     $Template->setAttribute('content-header', false);
 }
 
-/**
- * Mega menu
- */
-$MegaMenu = new QUI\Menu\MegaMenu(array(
-    'showStart' => false
-));
-
-
 /**
  * search
  */
@@ -30,8 +22,9 @@
 $noSearch   = 'no-search';
 $searchType = false;
 
-/* search setting is on? */
-if ($Project->getConfig('templateBusinessPro.settings.search') != 'hide') {
+/* search setting is on? template header allowed? */
+if ($Project->getConfig('templateBusinessPro.settings.search') != 'hide'
+    && $Template->getAttribute('template-header')) {
     $noSearch = '';
 
     $types = array(
@@ -75,6 +68,7 @@
                     $searchForm .= 'placeholder="' . $Locale->get('quiqqer/template-businesspro',
                             'navbar.search.text') . '" /></form>';
                     break;
+
                 case 'inputAndIcon':
                     $searchType = 'inputAndIcon';
 
@@ -86,6 +80,7 @@
                             'navbar.search.text') . '" />';
                     $searchForm .= '</div><span class="fa fa-fw fa-search"></span></form>';
                     break;
+
                 case 'inputAndIconVisible':
                     $searchType = 'inputAndIconVisible';
 
@@ -110,30 +105,15 @@
     }
 }
 
-
-$alt     = "QUIQQER";
-$logoUrl = $Project->getMedia()->getPlaceholder();
-if ($Project->getMedia()->getLogoImage()) {
-    $Logo    = $Project->getMedia()->getLogoImage();
-    $alt     = $Logo->getAttribute('title');
-    $logoUrl = $Logo->getSizeCacheUrl(400, 300);
-}
-
-$MegaMenu->prependHTML(
-    '<div class="header-bar-inner-logo">
-                <a href="' . URL_DIR . '" class="page-header-logo">
-                <img src="' . $logoUrl . '" alt="' . $alt . '"/></a>
-            </div>'
-);
-
 // social
 $social          = 'false';
 $socialNav       = '';
 $socialFooter    = '';
 $socialMobileNav = '';
 
-if ($Project->getConfig('templateBusinessPro.settings.social.show.nav')
-    || $Project->getConfig('templateBusinessPro.settings.social.show.footer')
+if (($Project->getConfig('templateBusinessPro.settings.social.show.nav')
+        || $Project->getConfig('templateBusinessPro.settings.social.show.footer'))
+    && ($Template->getAttribute('template-footer') || $Template->getAttribute('template-header'))
 ) {
     $social     = 'true';
     $socialHTML = '';
@@ -171,7 +151,9 @@
     }
 
     // prepare social for nav
-    if ($Project->getConfig('templateBusinessPro.settings.social.show.nav')) {
+    if ($Project->getConfig('templateBusinessPro.settings.social.show.nav')
+        && $Template->getAttribute('template-header')) {
+
         $socialNav .= '<div class="header-bar-social hide-on-mobile ' . $noSearch . $searchType . '">';
         $socialNav .= $socialHTML;
         $socialNav .= '</div>';
@@ -182,16 +164,49 @@
     }
 
     // prepare social for footer
-    if ($Project->getConfig('templateBusinessPro.settings.social.show.footer')) {
+    if ($Project->getConfig('templateBusinessPro.settings.social.show.footer')
+        && $Template->getAttribute('template-footer')) {
         $socialFooter .= '<div class="footer-bar-social">';
         $socialFooter .= $socialHTML;
         $socialFooter .= '</div>';
     }
 }
 
-$MegaMenu->appendHTML(
-    $search . $socialNav
-);
+
+/**
+ * Mega menu
+ */
+$MegaMenu = false;
+
+if ($Template->getAttribute('template-header')) {
+    /**
+     * Mega menu
+     */
+    $MegaMenu = new QUI\Menu\MegaMenu(array(
+        'showStart' => false
+    ));
+
+    $MegaMenu->appendHTML(
+        $search . $socialNav
+    );
+
+    /* Logo in menu */
+    $alt     = "QUIQQER";
+    $logoUrl = $Project->getMedia()->getPlaceholder();
+
+    if ($Project->getMedia()->getLogoImage()) {
+        $Logo    = $Project->getMedia()->getLogoImage();
+        $alt     = $Logo->getAttribute('title');
+        $logoUrl = $Logo->getSizeCacheUrl(400, 300);
+    }
+
+    $MegaMenu->prependHTML(
+        '<div class="header-bar-inner-logo">
+                <a href="' . URL_DIR . '" class="page-header-logo">
+                <img src="' . $logoUrl . '" alt="' . $alt . '"/></a>
+            </div>'
+    );
+}
 
 /**
  * Breadcrumb
@@ -233,7 +248,7 @@
         break;
 }
 
-$templateSettings['BricksManager']   = \QUI\Bricks\Manager::init();
+$templateSettings['BricksManager']   = QUI\Bricks\Manager::init();
 $templateSettings['Breadcrumb']      = $Breadcrumb;
 $templateSettings['MegaMenu']        = $MegaMenu;
 $templateSettings['bodyClass']       = $bodyClass;
@@ -242,5 +257,4 @@
 $templateSettings['social']          = $social;
 $templateSettings['socialMobileNav'] = $socialMobileNav;
 
-
 $Engine->assign($templateSettings);
-- 
GitLab