gehe zur Dokumentation dieser Datei
54 $this->
openTag($compiler,
'section', array(
'section', $compiler->nocache));
56 $compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
60 $section_name = $_attr[
'name'];
62 $output .=
"if (isset(\$_smarty_tpl->tpl_vars['smarty']->value['section'][$section_name])) unset(\$_smarty_tpl->tpl_vars['smarty']->value['section'][$section_name]);\n";
63 $section_props =
"\$_smarty_tpl->tpl_vars['smarty']->value['section'][$section_name]";
65 foreach ($_attr as $attr_name => $attr_value) {
68 $output .=
"{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int) \$_loop); unset(\$_loop);\n";
72 if (is_bool($attr_value)) {
73 $show_attr_value = $attr_value ?
'true' :
'false';
75 $show_attr_value =
"(bool) $attr_value";
77 $output .=
"{$section_props}['show'] = $show_attr_value;\n";
81 $output .=
"{$section_props}['$attr_name'] = $attr_value;\n";
86 $output .=
"{$section_props}['$attr_name'] = (int) $attr_value;\n";
90 $output .=
"{$section_props}['$attr_name'] = ((int) $attr_value) == 0 ? 1 : (int) $attr_value;\n";
95 if (!isset($_attr[
'show'])) {
96 $output .=
"{$section_props}['show'] = true;\n";
99 if (!isset($_attr[
'loop'])) {
100 $output .=
"{$section_props}['loop'] = 1;\n";
103 if (!isset($_attr[
'max'])) {
104 $output .=
"{$section_props}['max'] = {$section_props}['loop'];\n";
106 $output .=
"if ({$section_props}['max'] < 0)\n" .
" {$section_props}['max'] = {$section_props}['loop'];\n";
109 if (!isset($_attr[
'step'])) {
110 $output .=
"{$section_props}['step'] = 1;\n";
113 if (!isset($_attr[
'start'])) {
114 $output .=
"{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n";
116 $output .=
"if ({$section_props}['start'] < 0)\n" .
" {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" .
"else\n" .
" {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n";
119 $output .=
"if ({$section_props}['show']) {\n";
120 if (!isset($_attr[
'start']) && !isset($_attr[
'step']) && !isset($_attr[
'max'])) {
121 $output .=
" {$section_props}['total'] = {$section_props}['loop'];\n";
123 $output .=
" {$section_props}['total'] = min(ceil(({$section_props}['step'] > 0 ? {$section_props}['loop'] - {$section_props}['start'] : {$section_props}['start']+1)/abs({$section_props}['step'])), {$section_props}['max']);\n";
125 $output .=
" if ({$section_props}['total'] == 0)\n" .
" {$section_props}['show'] = false;\n" .
"} else\n" .
" {$section_props}['total'] = 0;\n";
127 $output .=
"if ({$section_props}['show']):\n";
129 for ({$section_props}['index'] = {$section_props}['start'], {$section_props}['iteration'] = 1;
130 {$section_props}['iteration'] <= {$section_props}['total'];
131 {$section_props}['index'] += {$section_props}['step'], {$section_props}['iteration']++):\n";
132 $output .=
"{$section_props}['rownum'] = {$section_props}['iteration'];\n";
133 $output .=
"{$section_props}['index_prev'] = {$section_props}['index'] - {$section_props}['step'];\n";
134 $output .=
"{$section_props}['index_next'] = {$section_props}['index'] + {$section_props}['step'];\n";
135 $output .=
"{$section_props}['first'] = ({$section_props}['iteration'] == 1);\n";
136 $output .=
"{$section_props}['last'] = ({$section_props}['iteration'] == {$section_props}['total']);\n";
165 list($openTag, $nocache) = $this->
closeTag($compiler, array(
'section'));
166 $this->
openTag($compiler,
'sectionelse', array(
'sectionelse', $nocache));
168 return "<?php endfor; else: ?>";
194 if ($compiler->nocache) {
195 $compiler->tag_nocache =
true;
198 list($openTag, $compiler->nocache) = $this->
closeTag($compiler, array(
'section',
'sectionelse'));
200 if ($openTag ==
'sectionelse') {
201 return "<?php endif; ?>";
203 return "<?php endfor; endif; ?>";
Sie sind hier: Home » MyOOS Benutzerhandbuch » Smarty
Korrekturen, Hinweise und Ergänzungen
Bitte scheuen Sie sich nicht und melden Sie, was auf dieser Seite sachlich falsch oder irreführend ist, was ergänzt werden sollte, was fehlt usw. Dazu bitte oben aus dem Menü Seite den Eintrag
Support Forum wählen. Es ist eine kostenlose Anmeldung erforderlich, um Anmerkungen zu posten. Unpassende Postings, Spam usw. werden kommentarlos entfernt.