Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
Open sidebar
Zvonimir
ISPConfig 3
Commits
45a8b567
Commit
45a8b567
authored
Feb 07, 2014
by
Marius Cramer
Browse files
Improved tpl class from master
parent
1da57c07
Changes
1
Hide whitespace changes
Inline
Side-by-side
server/lib/classes/tpl.inc.php
View file @
45a8b567
...
...
@@ -932,7 +932,7 @@ if (!defined('vlibTemplateClassLoaded')) {
$regex
=
'/(<|<\/|{|{\/|<!--|<!--\/){1}\s*'
;
$regex
.
=
'tmpl_([\w]+)\s*'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(
(?:(
?:'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(name|format|escape|op|value|file)'
;
$regex
.
=
'\s*=\s*'
;
...
...
@@ -941,40 +941,9 @@ if (!defined('vlibTemplateClassLoaded')) {
$regex
.
=
'((?<=[\"\'])'
;
$regex
.
=
'[^\"\']*|[a-z0-9_\.]*)'
;
$regex
.
=
'[\"\']?'
;
$regex
.
=
')?\s*'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(name|format|escape|op|value)'
;
$regex
.
=
'\s*=\s*'
;
$regex
.
=
')'
;
$regex
.
=
'(?:[\"\'])?'
;
$regex
.
=
'((?<=[\"\'])'
;
$regex
.
=
'[^\"\']*|[a-z0-9_\.]*)'
;
$regex
.
=
'[\"\']?'
;
$regex
.
=
')?\s*'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(name|format|escape|op|value)'
;
$regex
.
=
'\s*=\s*'
;
$regex
.
=
')'
;
$regex
.
=
'(?:[\"\'])?'
;
$regex
.
=
'((?<=[\"\'])'
;
$regex
.
=
'[^\"\']*|[a-z0-9_\.]*)'
;
$regex
.
=
'[\"\']?'
;
$regex
.
=
')?\s*'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(name|format|escape|op|value)'
;
$regex
.
=
'\s*=\s*'
;
$regex
.
=
')'
;
$regex
.
=
'(?:[\"\'])?'
;
$regex
.
=
'((?<=[\"\'])'
;
$regex
.
=
'[^\"\']*|[a-z0-9_\.]*)'
;
$regex
.
=
'[\"\']?'
;
$regex
.
=
')?\s*'
;
$regex
.
=
')?\s*)*?)'
;
$regex
.
=
'(?:>|\/>|}|-->){1}'
;
$regex
.
=
'/i'
;
//$regex.= '([\r\n|\n|\r])?/ie';
$data
=
preg_replace_callback
(
$regex
,
array
(
$this
,
'_parseTag'
),
$data
);
if
(
$this
->
_cache
)
{
// add cache if need be
...
...
@@ -1300,28 +1269,37 @@ if (!defined('vlibTemplateClassLoaded')) {
$wholetag
=
$args
[
0
];
$openclose
=
$args
[
1
];
$tag
=
strtolower
(
$args
[
2
]);
$newline
=
$args
[
11
];
//echo "1#$newline#2";
if
(
$tag
==
'else'
)
return
'<?php } else { ?>'
.
$newline
;
if
(
$tag
==
'else'
)
return
'<?php } else { ?>'
;
if
(
$tag
==
'tmpl_include'
)
return
$wholetag
;
// ignore tmpl_include tags
if
(
preg_match
(
"/^<\/|{\/|<!--\/$/s"
,
$openclose
)
||
preg_match
(
"/^end[if|loop|unless|comment]$/"
,
$tag
))
{
if
(
$tag
==
'loop'
||
$tag
==
'endloop'
)
array_pop
(
$this
->
_namespace
);
if
(
$tag
==
'comment'
||
$tag
==
'endcomment'
)
{
return
'<?php */ ?>'
.
$newline
;
return
'<?php */ ?>'
;
}
else
{
return
'<?php } ?>'
.
$newline
;
return
'<?php } ?>'
;
}
}
// arrange attributes
for
(
$i
=
3
;
$i
<
10
;
$i
=
(
$i
+
2
))
{
if
(
empty
(
$args
[
$i
])
&&
empty
(
$args
[(
$i
+
1
)]))
break
;
$key
=
(
empty
(
$args
[
$i
]))
?
'name'
:
strtolower
(
$args
[
$i
]);
if
(
$key
==
'name'
&&
preg_match
(
'/^(php)?include$/'
,
$tag
))
$key
=
'file'
;
$$key
=
$args
[(
$i
+
1
)];
$tmp_atts
=
$args
[
3
];
$atts
=
preg_split
(
'/\s+/'
,
$tmp_atts
);
foreach
(
$atts
as
$att
)
{
$regex
=
'/(?:'
;
$regex
.
=
'(name|format|escape|op|value|file)'
;
$regex
.
=
'\s*=\s*'
;
$regex
.
=
')?'
;
$regex
.
=
'(?:[\"\'])?'
;
$regex
.
=
'((?<=[\"\'])'
;
$regex
.
=
'[^\"\']*|[a-z0-9_\.]*)'
;
$regex
.
=
'[\"\']?/'
;
if
(
preg_match
(
$regex
,
$att
,
$match
))
{
$key
=
(
empty
(
$match
[
1
]))
?
'name'
:
strtolower
(
$match
[
1
]);
if
(
$key
==
'name'
&&
preg_match
(
'/^(php)?include$/'
,
$tag
))
$key
=
'file'
;
$$key
=
$match
[
2
];
}
}
$var
=
(
$this
->
OPTIONS
[
'CASELESS'
])
?
strtolower
(
$name
)
:
$name
;
...
...
@@ -1345,28 +1323,28 @@ if (!defined('vlibTemplateClassLoaded')) {
if
(
empty
(
$escape
)
&&
(
!
empty
(
$this
->
OPTIONS
[
'DEFAULT_ESCAPE'
])
&&
strtolower
(
$this
->
OPTIONS
[
'DEFAULT_ESCAPE'
])
!=
'none'
))
{
$escape
=
strtolower
(
$this
->
OPTIONS
[
'DEFAULT_ESCAPE'
]);
}
return
'<?php '
.
$this
->
_parseVar
(
$wholetag
,
$tag
,
$var
,
@
$escape
,
@
$format
,
@
$namespace
)
.
' ?>'
.
$newline
.
"
\n
"
;
return
'<?php '
.
$this
->
_parseVar
(
$wholetag
,
$tag
,
$var
,
@
$escape
,
@
$format
,
@
$namespace
)
.
' ?>'
.
"
\n
"
;
break
;
case
'if'
:
return
'<?php if ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
.
$newline
;
return
'<?php if ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
;
break
;
case
'unless'
:
return
'<?php if (!'
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
.
$newline
;
return
'<?php if (!'
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
;
break
;
case
'elseif'
:
return
'<?php } elseif ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
.
$newline
;
return
'<?php } elseif ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
;
break
;
case
'loop'
:
return
'<?php '
.
$this
->
_parseLoop
(
$var
)
.
'?>'
.
$newline
;
return
'<?php '
.
$this
->
_parseLoop
(
$var
)
.
'?>'
;
break
;
case
'comment'
:
if
(
empty
(
$var
))
{
// full open/close style comment
return
'<?php /* ?>'
.
$newline
;
return
'<?php /* ?>'
;
}
else
{
// just ignore tag if it was a one line comment
return
;
...
...
@@ -1375,7 +1353,7 @@ if (!defined('vlibTemplateClassLoaded')) {
case
'phpinclude'
:
if
(
$this
->
OPTIONS
[
'ENABLE_PHPINCLUDE'
])
{
return
'<?php include(\''
.
$file
.
'\'); ?>'
.
$newline
;
return
'<?php include(\''
.
$file
.
'\'); ?>'
;
}
break
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment