]> git.mxchange.org Git - friendica.git/blob - vendor/smarty/smarty/libs/sysplugins/smarty_data.php
Merge pull request #4233 from MrPetovan/task/4116-move-smarty-to-composer
[friendica.git] / vendor / smarty / smarty / libs / sysplugins / smarty_data.php
1 <?php
2 /**
3  * Smarty Plugin Data
4  * This file contains the data object
5  *
6  * @package    Smarty
7  * @subpackage Template
8  * @author     Uwe Tews
9  */
10
11 /**
12  * class for the Smarty data object
13  * The Smarty data object will hold Smarty variables in the current scope
14  *
15  * @package    Smarty
16  * @subpackage Template
17  */
18 class Smarty_Data extends Smarty_Internal_Data
19 {
20     /**
21      * Counter
22      *
23      * @var int
24      */
25     static $count = 0;
26
27     /**
28      * Data block name
29      *
30      * @var string
31      */
32     public $dataObjectName = '';
33
34     /**
35      * Smarty object
36      *
37      * @var Smarty
38      */
39     public $smarty = null;
40
41     /**
42      * create Smarty data object
43      *
44      * @param Smarty|array                    $_parent parent template
45      * @param Smarty|Smarty_Internal_Template $smarty  global smarty instance
46      * @param string                          $name    optional data block name
47      *
48      * @throws SmartyException
49      */
50     public function __construct($_parent = null, $smarty = null, $name = null)
51     {
52         parent::__construct();
53         self::$count ++;
54         $this->dataObjectName = 'Data_object ' . (isset($name) ? "'{$name}'" : self::$count);
55         $this->smarty = $smarty;
56         if (is_object($_parent)) {
57             // when object set up back pointer
58             $this->parent = $_parent;
59         } elseif (is_array($_parent)) {
60             // set up variable values
61             foreach ($_parent as $_key => $_val) {
62                 $this->tpl_vars[ $_key ] = new Smarty_Variable($_val);
63             }
64         } elseif ($_parent != null) {
65             throw new SmartyException("Wrong type for template variables");
66         }
67     }
68 }