Вход Регистрация
Файл: system/vendor/mobicms/render/src/Template/TemplateData.php
Строк: 30
<?php

/**
 * This file is part of mobicms/render library
 *
 * @license     https://opensource.org/licenses/MIT MIT (see the LICENSE file)
 * @link        http://mobicms.org mobiCMS Project
 */

declare(strict_types=1);

namespace 
MobicmsRenderTemplate;

/**
 * Preassigned template data
 */
class TemplateData
{
    
/** @var array Variables shared by all templates */
    
protected $sharedVariables = [];

    
/** @var array Specific template variables */
    
protected $templateVariables = [];

    
/**
     * Add template data
     *
     * @param array $data
     * @param array $templates
     * @return TemplateData
     */
    
public function add(array $data, array $templates = []): self
    
{
        return empty(
$templates)
            ? 
$this->shareWithAll($data)
            : 
$this->shareWithSome($data$templates);
    }

    
/**
     * Add data shared with all templates
     *
     * @param array $data
     * @return TemplateData
     */
    
public function shareWithAll(array $data): self
    
{
        
$this->sharedVariables array_merge($this->sharedVariables$data);

        return 
$this;
    }

    
/**
     * Add data shared with some templates
     *
     * @param array $data
     * @param array $templates
     * @return TemplateData
     */
    
public function shareWithSome(array $data, array $templates): self
    
{
        foreach (
$templates as $template) {
            if (isset(
$this->templateVariables[$template])) {
                
$this->templateVariables[$template] = array_merge($this->templateVariables[$template], $data);
            } else {
                
$this->templateVariables[$template] = $data;
            }
        }

        return 
$this;
    }

    
/**
     * Get template data
     *
     * @param null|string $template
     * @return array
     */
    
public function get(?string $template null): array
    {
        if (isset(
$template$this->templateVariables[$template])) {
            return 
array_merge($this->sharedVariables$this->templateVariables[$template]);
        }

        return 
$this->sharedVariables;
    }
}
Онлайн: 3
Реклама