Skip to content
Code-Schnipsel Gruppen Projekte
Elastic.php 1,26 KiB
Newer Older
  • Learn to ignore specific revisions
  • Henning Leutz's avatar
    Henning Leutz committed
    <?php
    
    /**
     * This file contains \QUI\Menu\Elastic
     */
    
    namespace QUI\Menu;
    
    
    use Exception;
    
    Henning Leutz's avatar
    Henning Leutz committed
    use QUI;
    
    /**
     * Class Elastic
     * Creates an elastic menu
     *
     * @package QUI\Menu
    
    Henning Leutz's avatar
    Henning Leutz committed
     * @author  www.pcsg.de (Henning Leutz)
    
    Henning Leutz's avatar
    Henning Leutz committed
     */
    class Elastic extends QUI\Control
    {
    
    Henning Leutz's avatar
    Henning Leutz committed
        /**
         * @param array $attributes
         */
    
        public function __construct(array $attributes = [])
    
    Henning Leutz's avatar
    Henning Leutz committed
        {
            parent::__construct($attributes);
        }
    
    
    Henning Leutz's avatar
    Henning Leutz committed
        /**
         * @return string
         * @throws QUI\Exception
    
         * @throws Exception
    
    Henning Leutz's avatar
    Henning Leutz committed
         */
    
        public function getBody(): string
    
    Henning Leutz's avatar
    Henning Leutz committed
        {
            $Engine = QUI::getTemplateManager()->getEngine();
    
    
            $Engine->assign([
                'FileMenu' => dirname(__FILE__) . '/Menu.Children.html',
                'this' => $this,
                'Site' => $this->getSite(),
                'Project' => $this->getProject(),
    
    Henning Leutz's avatar
    Henning Leutz committed
                'jsControl' => 'package/quiqqer/menu/bin/ElasticMenu'
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
            return $Engine->fetch(dirname(__FILE__) . '/Menu.html');
    
    Henning Leutz's avatar
    Henning Leutz committed
        }
    
        /**
         * Return the current site
         *
         * @return mixed|QUI\Projects\Site
    
         * @throws QUI\Exception
    
    Henning Leutz's avatar
    Henning Leutz committed
         */
    
        protected function getSite(): mixed
    
    Henning Leutz's avatar
    Henning Leutz committed
        {
            if ($this->getAttribute('Site')) {
                return $this->getAttribute('Site');
            }
    
            return QUI::getRewrite()->getSite();
        }
    
    Henning Leutz's avatar
    Henning Leutz committed
    }