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: | public 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: | } |
69: |