Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Template/ExtensionSet.php
<?php

namespace XF\Template;

class
ExtensionSet
{
    protected
$type;
    protected
$template;
    protected
$macro;

   
/**
     * @var array
     */
   
protected $extensions;

   
/**
     * @var ExtensionSet|null
     */
   
protected $baseSet;

    public function
__construct($type, $template, array $extensions, $macro = null)
    {
       
$this->type = $type;
       
$this->template = $template;
       
$this->macro = $macro;

       
$this->extensions = $extensions;
    }

    public function
applyBaseSet(ExtensionSet $set)
    {
        if (
$this->baseSet)
        {
           
$this->baseSet->applyBaseSet($set);
        }
        else
        {
           
$this->baseSet = $set;
        }
    }

    public function
getBaseSet()
    {
        return
$this->baseSet;
    }

    public function
getExtension($name)
    {
        if (isset(
$this->extensions[$name]))
        {
            return [
               
'type' => $this->type,
               
'template' => $this->template,
               
'macro' => $this->macro,
               
'code' => $this->extensions[$name],
               
'set' => $this
           
];
        }
        else if (
$this->baseSet)
        {
            return
$this->baseSet->getExtension($name);
        }
        else
        {
            return
null;
        }
    }
}