%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/home/tjamichg/cursos.tjamich.gob.mx/src/Chamilo/ThemeBundle/Theme/
Upload File :
Create Path :
Current File : //proc/self/root/home/tjamichg/cursos.tjamich.gob.mx/src/Chamilo/ThemeBundle/Theme/ThemeManager.php

<?php
/**
 * ThemeManager.php
 * publisher
 * Date: 18.04.14.
 */

namespace Chamilo\ThemeBundle\Theme;

use Chamilo\FoundationBundle\Util\DependencyResolverInterface;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\HttpKernel\Config\FileLocator;

/**
 * Class ThemeManager.
 *
 * @package Chamilo\ThemeBundle\Theme
 */
class ThemeManager
{
    /** @var Container */
    protected $container;

    protected $stylesheets = [];

    protected $javascripts = [];

    protected $locations = [];

    protected $resolverClass;

    /**
     * ThemeManager constructor.
     *
     * @param $container
     * @param null $resolverClass
     */
    public function __construct($container, $resolverClass = null)
    {
        $this->container = $container;
        $this->resolverClass = $resolverClass ?: 'Chamilo\ThemeBundle\Util\DependencyResolver';
    }

    public function registerScript($id, $src, $deps = [], $location = "bottom")
    {
        if (!isset($this->javascripts[$id])) {
            $this->javascripts[$id] = [
                'src' => $src,
                'deps' => $deps,
                'location' => $location,
            ];
        }
    }

    public function registerStyle($id, $src, $deps = [])
    {
        if (!isset($this->stylesheets[$id])) {
            $this->stylesheets[$id] = [
                'src' => $src,
                'deps' => $deps,
            ];
        }
    }

    public function getScripts($location = 'bottom')
    {
        $unsorted = [];
        $srcList = [];
        $assetList = [];
        foreach ($this->javascripts as $id => $scriptDefinition) {
            if ($scriptDefinition['location'] == $location) {
                $unsorted[$id] = $scriptDefinition;
            }
        }

        $queue = $this->getResolver()->register($unsorted)->resolveAll();
        foreach ($queue as $def) {
            $srcList[] = $def['src'];
        }

        return $srcList;
    }

    public function getStyles()
    {
        $srcList = [];
        $queue = $this->getResolver()->register($this->stylesheets)->resolveAll();
        foreach ($queue as $def) {
            $srcList[] = $def['src'];
        }

        return $srcList;
    }

    /**
     * @return DependencyResolverInterface
     */
    protected function getResolver()
    {
        $class = $this->resolverClass;

        return new $class();
    }

    /**
     * @return FileLocator
     */
    protected function getLocator()
    {
        return $this->container->get('file_locator');
    }
}

Zerion Mini Shell 1.0