Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
ISPConfig 3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
485
Issues
485
List
Boards
Labels
Service Desk
Milestones
Merge Requests
23
Merge Requests
23
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ISPConfig
ISPConfig 3
Commits
eca44ab3
Commit
eca44ab3
authored
Feb 07, 2014
by
Marius Cramer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Synchronized changes and improvements between server and interface part for template library
parent
16434978
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
53 deletions
+55
-53
interface/lib/classes/tpl.inc.php
interface/lib/classes/tpl.inc.php
+50
-50
server/lib/classes/tpl.inc.php
server/lib/classes/tpl.inc.php
+5
-3
No files found.
interface/lib/classes/tpl.inc.php
View file @
eca44ab3
...
...
@@ -234,12 +234,12 @@ if (!defined('vlibTemplateClassLoaded')) {
if
(
is_array
(
$k
))
{
foreach
(
$k
as
$key
=>
$value
){
$key
=
(
$this
->
OPTIONS
[
'CASELESS'
])
?
strtolower
(
trim
(
$key
))
:
trim
(
$key
);
if
(
preg_match
(
'/^[A-Za-z]+[A-Za-z0-9_]*$/'
,
$key
)
&&
$value
!==
null
)
{
if
(
preg_match
(
'/^[A-Za-z
_
]+[A-Za-z0-9_]*$/'
,
$key
)
&&
$value
!==
null
)
{
$this
->
_vars
[
$key
]
=
$value
;
}
}
}
else
{
if
(
preg_match
(
'/^[A-Za-z]+[A-Za-z0-9_]*$/'
,
$k
)
&&
$v
!==
null
)
{
if
(
preg_match
(
'/^[A-Za-z
_
]+[A-Za-z0-9_]*$/'
,
$k
)
&&
$v
!==
null
)
{
if
(
$this
->
OPTIONS
[
'CASELESS'
])
$k
=
strtolower
(
$k
);
$this
->
_vars
[
trim
(
$k
)]
=
$v
;
}
else
{
...
...
@@ -287,7 +287,7 @@ if (!defined('vlibTemplateClassLoaded')) {
for
(
$i
=
0
;
$i
<
$num_args
;
$i
++
)
{
$var
=
func_get_arg
(
$i
);
if
(
$this
->
OPTIONS
[
'CASELESS'
])
$var
=
strtolower
(
$var
);
if
(
!
preg_match
(
'/^[A-Za-z]+[A-Za-z0-9_]*$/'
,
$var
))
continue
;
if
(
!
preg_match
(
'/^[A-Za-z
_
]+[A-Za-z0-9_]*$/'
,
$var
))
continue
;
unset
(
$this
->
_vars
[
$var
]);
}
return
true
;
...
...
@@ -344,7 +344,7 @@ if (!defined('vlibTemplateClassLoaded')) {
*/
public
function
setLoop
(
$k
,
$v
)
{
if
(
is_array
(
$v
)
&&
preg_match
(
'/^[A-Za-z]+[A-Za-z0-9_]*$/'
,
$k
))
{
if
(
is_array
(
$v
)
&&
preg_match
(
'/^[A-Za-z
_
]+[A-Za-z0-9_]*$/'
,
$k
))
{
$k
=
(
$this
->
OPTIONS
[
'CASELESS'
])
?
strtolower
(
trim
(
$k
))
:
trim
(
$k
);
$this
->
_arrvars
[
$k
]
=
array
();
if
(
$this
->
OPTIONS
[
'SET_LOOP_VAR'
]
&&
!
empty
(
$v
))
$this
->
setvar
(
$k
,
1
);
...
...
@@ -864,7 +864,7 @@ if (!defined('vlibTemplateClassLoaded')) {
$regex
=
'/(<|<\/|{|{\/|<!--|<!--\/){1}\s*'
;
$regex
.
=
'tmpl_([\w]+)\s*'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(
(?:(
?:'
;
$regex
.
=
'(?:'
;
$regex
.
=
'(name|format|escape|op|value|file)'
;
$regex
.
=
'\s*=\s*'
;
...
...
@@ -873,30 +873,10 @@ 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
.
=
')?\s*)*?)'
;
$regex
.
=
'(?:>|\/>|}|-->){1}'
;
$regex
.
=
'
([\r\n|\n|\r])?
/i'
;
$data
=
preg_replace_callback
(
$regex
,
array
(
$this
,
_parseTag
),
$data
);
$regex
.
=
'/i'
;
$data
=
preg_replace_callback
(
$regex
,
array
(
$this
,
'_parseTag'
),
$data
);
if
(
$this
->
_cache
)
{
// add cache if need be
$this
->
_createCache
(
$data
);
...
...
@@ -1026,7 +1006,7 @@ if (!defined('vlibTemplateClassLoaded')) {
* @access private
* @return string used for eval'ing
*/
private
function
_parseIf
(
$varname
,
$value
=
null
,
$op
=
null
,
$namespace
=
null
)
private
function
_parseIf
(
$varname
,
$value
=
null
,
$op
=
null
,
$namespace
=
null
,
$format
=
null
)
{
if
(
isset
(
$namespace
))
$namespace
=
substr
(
$namespace
,
0
,
-
1
);
$comp_str
=
''
;
// used for extended if statements
...
...
@@ -1065,9 +1045,19 @@ if (!defined('vlibTemplateClassLoaded')) {
}
}
if
(
$this
->
OPTIONS
[
'GLOBAL_VARS'
]
&&
empty
(
$namespace
))
{
return
'(('
.
$retstr
.
'[\''
.
$varname
.
'\'] !== null) ? '
.
$retstr
.
'[\''
.
$varname
.
'\'] : $this->_vars[\''
.
$varname
.
'\'])'
.
$comp_str
;
}
else
{
return
$retstr
.
"['"
.
$varname
.
"']"
.
$comp_str
;
$retstr
=
'(('
.
$retstr
.
'[\''
.
$varname
.
'\'] !== null) ? '
.
$retstr
.
'[\''
.
$varname
.
'\'] : $this->_vars[\''
.
$varname
.
'\'])'
;
if
(
isset
(
$format
)
&&
isset
(
$value
)
&&
$format
==
'version'
)
{
return
'version_compare('
.
$retstr
.
', \''
.
$value
.
'\', \''
.
(
!
empty
(
$op
)
?
$op
:
'=='
)
.
'\')'
;
}
else
{
return
$retstr
.
$comp_str
;
}
}
else
{
if
(
isset
(
$format
)
&&
isset
(
$value
)
&&
$format
==
'version'
)
{
return
'version_compare('
.
$retstr
.
"['"
.
$varname
.
"']"
.
', \''
.
$value
.
'\', \''
.
(
!
empty
(
$op
)
?
$op
:
'=='
)
.
'\')'
;
}
else
{
return
$retstr
.
"['"
.
$varname
.
"']"
.
$comp_str
;
}
}
}
...
...
@@ -1186,26 +1176,36 @@ if (!defined('vlibTemplateClassLoaded')) {
$wholetag
=
$args
[
0
];
$openclose
=
$args
[
1
];
$tag
=
strtolower
(
$args
[
2
]);
$newline
=
$args
[
9
];
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
<
8
;
$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
)];
// arrange attributes
$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
;
...
...
@@ -1229,30 +1229,30 @@ 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
"
;
return
'<?php '
.
$this
->
_parseVar
(
$wholetag
,
$tag
,
$var
,
@
$escape
,
@
$format
,
@
$namespace
)
.
" ?>
\n
"
;
case
'if'
:
return
'<?php if ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
)
.
') { ?>'
.
$newline
;
return
'<?php if ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
;
case
'unless'
:
return
'<?php if (!'
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
)
.
') { ?>'
.
$newline
;
return
'<?php if (!'
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
;
case
'elseif'
:
return
'<?php } elseif ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
)
.
') { ?>'
.
$newline
;
return
'<?php } elseif ('
.
$this
->
_parseIf
(
$var
,
@
$value
,
@
$op
,
@
$namespace
,
@
$format
)
.
') { ?>'
;
case
'loop'
:
return
'<?php '
.
$this
->
_parseLoop
(
$var
)
.
'?>'
.
$newline
;
return
'<?php '
.
$this
->
_parseLoop
(
$var
)
.
'?>'
;
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
;
}
case
'phpinclude'
:
if
(
$this
->
OPTIONS
[
'ENABLE_PHPINCLUDE'
])
{
return
'<?php include(\''
.
$file
.
'\'); ?>'
.
$newline
;
return
'<?php include(\''
.
$file
.
'\'); ?>'
;
}
case
'include'
:
...
...
server/lib/classes/tpl.inc.php
View file @
eca44ab3
...
...
@@ -299,9 +299,9 @@ if (!defined('vlibTemplateClassLoaded')) {
* @return array
* @access public
*/
function
getVars
()
{
if
(
empty
(
$this
->
_vars
))
return
false
;
return
$this
->
_vars
;
public
function
getVars
()
{
return
empty
(
$this
->
_vars
)
?
false
:
$this
->
_vars
;
}
...
...
@@ -361,6 +361,8 @@ if (!defined('vlibTemplateClassLoaded')) {
if
(
$this
->
OPTIONS
[
'SET_LOOP_VAR'
]
&&
!
empty
(
$v
))
$this
->
setvar
(
$k
,
1
);
if
((
$this
->
_arrvars
[
$k
]
=
$this
->
_arrayBuild
(
$v
))
==
false
)
{
vlibTemplateError
::
raiseError
(
'VT_WARNING_INVALID_ARR'
,
WARNING
,
$k
);
}
else
{
$this
->
vars
[
'_'
.
$k
.
'_num'
]
=
count
(
$v
);
}
}
return
true
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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