21
21
*/
22
22
class parser
23
23
{
24
- var $ data ; // data
25
- var $ template ; // template-file
26
- var $ result ; // result
27
- var $ owner ; // parser's owner object
28
-
29
- /**
30
- * Used to parse templates with data provided
31
- * Based on template file extention:
32
- * .xslt - XSLT-parser used
33
- * .tpl - SMARTY-parser used
34
- * all other extensions - jTemplates-parser used
35
- * @param mixed $template Template filename
36
- * @param mixed $data Data
37
- * @param mixed $owner Parser's owner object
38
- */
39
- public function __construct ($ template , &$ data , $ owner = "" )
40
- {
41
- // set current directory for template includes
42
- $ this ->data = &$ data ;
43
- $ this ->template = $ template ;
44
-
45
- if (is_object ($ owner ))
46
- {
47
- $ this ->owner = &$ owner ;
48
- }
49
-
50
- if (strpos ($ template , ".xslt " ) == TRUE )
51
- {
52
- // xslt-Templates
53
- $ this ->result = $ this ->xslt_parse ($ template , $ this ->data );
54
- }
55
- elseif (strpos ($ template , ".tpl " ) == TRUE )
56
- {
57
- // smarty-Templates
58
- $ this ->result = $ this ->smarty_parse ($ template , $ this ->data );
59
- }
60
- else
61
- {
62
- // j-Templates
63
- $ this ->result = $ this ->jtemplate_parse ($ template , $ this ->data );
64
- }
65
-
66
- if (is_object ($ this ->owner ))
67
- {
68
- // links parsing for all results (framework support)
69
- $ this ->result = $ this ->owner ->parseLinks ($ this ->result );
70
- }
71
- }
72
-
73
- /**
74
- * jTemplates-parse
75
- * Used to parse jTemplates
76
- * @access private
77
- * @param mixed $template jTemplate filename
78
- * @param mixed $data Data
79
- * @return string
80
- */
81
- public function jtemplate_parse ($ template , &$ data )
82
- {
83
- /*
84
- if (preg_match('/menu\.html/', $_SERVER['REQUEST_URI'])) {
85
- $compl=new jTemplateCompiler($template, "out", $this->owner);
86
- $out=&$data;
87
- include($compl->compiled_file);
88
- }
89
- */
90
-
91
- startMeasure ('Parse template ' . $ template );
92
-
93
- $ jTempl = new jTemplate ($ template , $ data , $ this ->owner );
94
- $ result = $ jTempl ->result ;
95
-
96
- endMeasure ('Parse template ' . $ template );
97
-
98
- return $ result ;
99
- }
100
-
101
- /**
102
- * XSLT-parser
103
- * Used to parse xslt-templates
104
- * @access private
105
- * @param mixed $template XSLT-rules
106
- * @param mixed $data Data
107
- * @return mixed
108
- */
109
- public function xslt_parse ($ template , &$ data )
110
- {
111
- $ new_data ["ROOT " ] = $ data ;
112
-
113
- $ xml = new xml_data ($ new_data );
114
-
115
- $ arguments = array ('/_xml ' => $ xml ->string , '/_xsl ' => $ template );
116
-
117
- $ xh = xslt_create ();
118
-
119
- $ result = xslt_process ($ xh , 'arg:/_xml ' , 'arg:/_xsl ' , NULL , $ arguments );
120
-
121
- xslt_free ($ xh );
122
-
123
- return $ result ;
124
- }
125
-
126
- /**
127
- * SMARTY-parser
128
- * Used to parse SMARTY templates
129
- * @access private
130
- * @param mixed $template_file Template filename
131
- * @param mixed $data Data
132
- * @return mixed
133
- */
134
- public function smarty_parse ($ template_file , &$ data )
135
- {
136
- define ('SMARTY_DIR ' ,ROOT . '3rdparty/smarty3/ ' );
137
-
138
- require_once (SMARTY_DIR . 'Smarty.class.php ' );
139
-
140
- $ smarty = new Smarty ;
141
-
142
- $ smarty ->compile_dir = SMARTY_DIR . 'templates_c/ ' ;
143
-
144
- if (isset ($ this ->owner ))
145
- {
146
- $ smarty ->template_dir = DIR_TEMPLATES . $ this ->owner ->name . "/ " ;
147
- }
148
-
149
- $ data ["ROOTHTML " ] = ROOTHTML ;
150
-
151
- foreach ($ data as $ k => $ v )
152
- {
153
- $ smarty ->assign ($ k , $ data [$ k ]);
154
- }
155
-
156
- if (is_object ($ this ->owner ))
157
- {
158
- $ smarty ->owner = &$ this ->owner ;
159
- }
160
-
161
- $ result = $ smarty ->fetch ($ template_file );
162
-
163
- return $ result ;
164
- }
165
- }
166
- ?>
24
+ var $ data ; // data
25
+ var $ template ; // template-file
26
+ var $ result ; // result
27
+ var $ owner ; // parser's owner object
28
+
29
+ /**
30
+ * Used to parse templates with data provided
31
+ * Based on template file extention:
32
+ * .xslt - XSLT-parser used
33
+ * .tpl - SMARTY-parser used
34
+ * all other extensions - jTemplates-parser used
35
+ * @param mixed $template Template filename
36
+ * @param mixed $data Data
37
+ * @param mixed $owner Parser's owner object
38
+ */
39
+ public function __construct ($ template , &$ data , $ owner = "" )
40
+ {
41
+ // set current directory for template includes
42
+ $ this ->data = &$ data ;
43
+ $ this ->template = $ template ;
44
+
45
+ if (is_object ($ owner )) {
46
+ $ this ->owner = &$ owner ;
47
+ }
48
+
49
+ if (strpos ($ template , ".xslt " ) == TRUE ) {
50
+ // xslt-Templates
51
+ $ this ->result = $ this ->xslt_parse ($ template , $ this ->data );
52
+ } elseif (strpos ($ template , ".tpl " ) == TRUE ) {
53
+ // smarty-Templates
54
+ $ this ->result = $ this ->smarty_parse ($ template , $ this ->data );
55
+ } else {
56
+ // j-Templates
57
+ $ this ->result = $ this ->jtemplate_parse ($ template , $ this ->data );
58
+ }
59
+
60
+ if (is_object ($ this ->owner )) {
61
+ // links parsing for all results (framework support)
62
+ $ this ->result = $ this ->owner ->parseLinks ($ this ->result );
63
+ }
64
+ }
65
+
66
+ /**
67
+ * jTemplates-parse
68
+ * Used to parse jTemplates
69
+ * @access private
70
+ * @param mixed $template jTemplate filename
71
+ * @param mixed $data Data
72
+ * @return string
73
+ */
74
+ public function jtemplate_parse ($ template , &$ data )
75
+ {
76
+ /*
77
+ if (preg_match('/menu\.html/', $_SERVER['REQUEST_URI'])) {
78
+ $compl=new jTemplateCompiler($template, "out", $this->owner);
79
+ $out=&$data;
80
+ include($compl->compiled_file);
81
+ }
82
+ */
83
+
84
+ startMeasure ('Parse template ' . $ template );
85
+
86
+ $ jTempl = new jTemplate ($ template , $ data , $ this ->owner );
87
+ $ result = $ jTempl ->result ;
88
+
89
+ endMeasure ('Parse template ' . $ template );
90
+
91
+ return $ result ;
92
+ }
93
+
94
+ /**
95
+ * XSLT-parser
96
+ * Used to parse xslt-templates
97
+ * @access private
98
+ * @param mixed $template XSLT-rules
99
+ * @param mixed $data Data
100
+ * @return mixed
101
+ */
102
+ public function xslt_parse ($ template , &$ data )
103
+ {
104
+ $ new_data ["ROOT " ] = $ data ;
105
+
106
+ $ xml = new xml_data ($ new_data );
107
+
108
+ $ arguments = array ('/_xml ' => $ xml ->string , '/_xsl ' => $ template );
109
+
110
+ $ xh = xslt_create ();
111
+
112
+ $ result = xslt_process ($ xh , 'arg:/_xml ' , 'arg:/_xsl ' , NULL , $ arguments );
113
+
114
+ xslt_free ($ xh );
115
+
116
+ return $ result ;
117
+ }
118
+
119
+ /**
120
+ * SMARTY-parser
121
+ * Used to parse SMARTY templates
122
+ * @access private
123
+ * @param mixed $template_file Template filename
124
+ * @param mixed $data Data
125
+ * @return mixed
126
+ */
127
+ public function smarty_parse ($ template_file , &$ data )
128
+ {
129
+ define ('SMARTY_DIR ' , ROOT . '3rdparty/smarty3/ ' );
130
+
131
+ require_once (SMARTY_DIR . 'Smarty.class.php ' );
132
+ $ smarty = new Smarty ;
133
+ $ smarty ->compile_dir = ROOT . 'cms/cached/templates_c/ ' ;
134
+
135
+ if (isset ($ this ->owner )) {
136
+ $ smarty ->template_dir = DIR_TEMPLATES . $ this ->owner ->name . "/ " ;
137
+ }
138
+ $ data ["ROOTHTML " ] = ROOTHTML ;
139
+ foreach ($ data as $ k => $ v ) {
140
+ $ smarty ->assign ($ k , $ data [$ k ]);
141
+ }
142
+ if (is_object ($ this ->owner )) {
143
+ $ smarty ->owner = $ this ->owner ;
144
+ }
145
+
146
+ $ result = $ smarty ->fetch ($ template_file );
147
+
148
+ return $ result ;
149
+ }
150
+ }
0 commit comments