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

namespace XF\Template;

class
MacroState
{
    protected
$arguments = [];

    protected
$global = false;

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

    public function
getArguments()
    {
        return
$this->arguments;
    }

    public function
addArguments(array $arguments)
    {
       
// As this is build up from the extended version to the base version, subsequent calls will be adding
        // *less* specific values for arguments, so the current arguments should override.
       
$this->arguments = array_replace($arguments, $this->arguments);
    }

    public function
getGlobal()
    {
        return
$this->global;
    }

    public function
setGlobal($global = true)
    {
       
$this->global = $global;
    }

    public function
getExtensionSet()
    {
        return
$this->extensionSet;
    }

    public function
applyExtensionSet(ExtensionSet $set)
    {
       
// Called bottom up, so each subsequent call is adding a base set.

       
if ($this->extensionSet)
        {
           
$this->extensionSet->applyBaseSet($set);
        }
        else
        {
           
$this->extensionSet = $set;
        }
    }

    public function
getAvailableVars(Templater $templater, array $arguments, array $globalVars)
    {
       
$macroVars = $templater->setupBaseParamsForMacro($globalVars, $this->global);
       
$macroVars = $templater->mergeMacroArguments($this->arguments, $arguments, $macroVars);
        return
$macroVars;
    }
}