Subversion Repositories ALCASAR

Rev

Details | Last modification | View Log

Rev Author Line No. Line
2809 rexy 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
}