Skip to content
Code-Schnipsel Gruppen Projekte
Tabs.php 3,51 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
     * This file contains QUI\Menu\Controls\Tabs
     */
    
    namespace QUI\Menu\Controls;
    
    use QUI;
    
    /**
     * Class NavTabs
     *
     * @author  Michael Danielczok
     * @package QUI\Menu
     */
    class Tabs extends QUI\Control
    {
        /**
         * constructor
         *
         * @param array $attributes
         */
        public function __construct($attributes = [])
        {
            // default options
            $this->setAttributes([
    
                'class'               => 'quiqqer-tabs',
                'qui-class'           => 'package/quiqqer/menu/bin/Controls/NavTabs',
                'activeEntry'         => 1, // number
                'entries'             => [],
                'template'            => 'simple',
    
    
                // tabs nav
                'navImgHeight'        => 20, // number
                'navStyle'            => 'imgLeft', // imgLeft, imgTop, onlyImg
                'navCenter'           => false,
    
                // tabs content
                'contentImgMaxWidth'  => 600, // number
                'contentImgMaxHeight' => 300, // number
                'contentTextWidth'    => 600, // number
    
    
    
            ]);
    
            parent::__construct($attributes);
    
            $this->addCSSFile(dirname(__FILE__).'/Tabs.css');
        }
    
        /**
         * (non-PHPdoc)
         *
         * @see \QUI\Control::create()
         */
        public function getBody()
        {
            $Engine         = QUI::getTemplateManager()->getEngine();
            $entries        = $this->getAttribute('entries');
            $enabledEntries = [];
    
            if (is_string($entries)) {
                $entries = json_decode($entries, true);
            }
    
            foreach ($entries as $entry) {
                if (isset($entry['isDisabled']) && $entry['isDisabled'] === 1) {
                    continue;
                }
    
                array_push($enabledEntries, $entry);
            }
    
    
    //        foreach ($entries as $entry) {
    //            array_push($enabledEntries, $entry);
    //        }
    //
    //        foreach ($entries as $entry) {
    //            array_push($enabledEntries, $entry);
    //        }
    
    
            $active = 1;
    
            if ($this->getAttribute('activeEntry') && $this->getAttribute('activeEntry') > 0) {
                $active = $this->getAttribute('activeEntry');
            }
    
    
            /* template */
            $template = 'simple';
    
            /* nav */
            $showNavText    = true;
            $navTabStyleCss = 'navTabStyle__imgLeft';
            $navAlignment   = 'quiqqer-tabsAdvanced-nav-inner__left';
    
            switch ($this->getAttribute('navStyle')) {
                case 'imgTop':
                    $navTabStyleCss = 'navTabStyle__imgTop';
                    break;
                case 'onlyImg':
                    $navTabStyleCss = 'navTabStyle__onlyImg';
                    $showNavText    = false;
            }
    
            if ($this->getAttribute('navCenter')) {
                $navAlignment = 'quiqqer-tabsAdvanced-nav-inner__center';
            }
    
    
                'this'                => $this,
                'entries'             => $enabledEntries,
                'active'              => $active,
    
                'navImgHeight'        => $this->getAttribute('navImgHeight'),
                'navStyle'            => $this->getAttribute('navStyle'),
                'navTabStyleCss'      => $navTabStyleCss,
                'showNavText'         => $showNavText,
                'navAlignment'        => $navAlignment,
    
                'contentTextWidth'    => $this->getAttribute('contentTextWidth'),
                'contentImgMaxWidth'  => $this->getAttribute('contentImgMaxWidth'),
    
                'contentImgMaxHeight' => $this->getAttribute('contentImgMaxHeight')
            ]);
    
            return $Engine->fetch(dirname(__FILE__).'/Tabs.html');
        }
    }