Blame view

libraries/allediaframework/Framework/Joomla/View/Admin.php 2.06 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
<?php
/**
 * @package   AllediaFramework
 * @contact   www.alledia.com, hello@alledia.com
 * @copyright 2016 Alledia.com, All rights reserved
 * @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

namespace Alledia\Framework\Joomla\View;

defined('_JEXEC') or die();

use Alledia\Framework\Factory;
use Alledia\Framework\Joomla\Extension\Helper as ExtensionHelper;
use JFile;

class Admin extends Base
{
    protected $option;

    protected $extension;

    public function __construct($config = array())
    {
        parent::__construct($config);

        $app          = Factory::getApplication();
        $this->option = $app->input->get('option');

        $info            = ExtensionHelper::getExtensionInfoFromElement($this->option);
        $this->extension = Factory::getExtension($info['namespace'], $info['type']);
    }

    public function display($tpl = null)
    {
        // Add default admin CSS
        $cssPath = JPATH_SITE . "/media/{$this->option}/css/admin-default.css";
        if (file_exists($cssPath)) {
            $doc = Factory::getDocument();
            $doc->addStyleSheet($cssPath);
        }

        parent::display($tpl);

        $this->displayFooter();
    }

    protected function displayFooter()
    {
        $output = '';

        $layoutPath = $this->extension->getExtensionPath() . '/views/footer/tmpl/default.php';
        if (!JFile::exists($layoutPath)) {
            $layoutPath = $this->extension->getExtensionPath() . '/alledia_views/footer/tmpl/default.php';

            if (!JFile::exists($layoutPath)) {
                $layoutPath = null;
            }
        }

        if (!is_null($layoutPath)) {
            // Start capturing output into a buffer
            ob_start();

            // Include the requested template filename in the local scope
            // (this will execute the view logic).
            include $layoutPath;

            // Done with the requested template; get the buffer and
            // clear it.
            $output = ob_get_contents();
            ob_end_clean();
        }

        echo $output;
    }
}