Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F1142247
smarty_internal_compile_include_php.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
smarty_internal_compile_include_php.php
View Options
<?php
/**
* Smarty Internal Plugin Compile Include PHP
*
* Compiles the {include_php} tag
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Insert Class
*
* @package Smarty
* @subpackage Compiler
*/
class
Smarty_Internal_Compile_Include_Php
extends
Smarty_Internal_CompileBase
{
/**
* Attribute definition: Overwrites base class.
*
* @var array
* @see Smarty_Internal_CompileBase
*/
public
$required_attributes
=
array
(
'file'
);
/**
* Attribute definition: Overwrites base class.
*
* @var array
* @see Smarty_Internal_CompileBase
*/
public
$shorttag_order
=
array
(
'file'
);
/**
* Attribute definition: Overwrites base class.
*
* @var array
* @see Smarty_Internal_CompileBase
*/
public
$optional_attributes
=
array
(
'once'
,
'assign'
);
/**
* Compiles code for the {include_php} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
* @return string compiled code
*/
public
function
compile
(
$args
,
$compiler
)
{
if
(!(
$compiler
->
smarty
instanceof
SmartyBC
))
{
throw
new
SmartyException
(
"{include_php} is deprecated, use SmartyBC class to enable"
);
}
// check and get attributes
$_attr
=
$this
->
getAttributes
(
$compiler
,
$args
);
$_output
=
'<?php '
;
$_smarty_tpl
=
$compiler
->
template
;
$_filepath
=
false
;
eval
(
'$_file = '
.
$_attr
[
'file'
]
.
';'
);
if
(!
isset
(
$compiler
->
smarty
->
security_policy
)
&&
file_exists
(
$_file
))
{
$_filepath
=
$_file
;
}
else
{
if
(
isset
(
$compiler
->
smarty
->
security_policy
))
{
$_dir
=
$compiler
->
smarty
->
security_policy
->
trusted_dir
;
}
else
{
$_dir
=
$compiler
->
smarty
->
trusted_dir
;
}
if
(!
empty
(
$_dir
))
{
foreach
((
array
)
$_dir
as
$_script_dir
)
{
$_script_dir
=
rtrim
(
$_script_dir
,
'/
\\
'
)
.
DS
;
if
(
file_exists
(
$_script_dir
.
$_file
))
{
$_filepath
=
$_script_dir
.
$_file
;
break
;
}
}
}
}
if
(
$_filepath
==
false
)
{
$compiler
->
trigger_template_error
(
"{include_php} file '{$_file}' is not readable"
,
$compiler
->
lex
->
taglineno
);
}
if
(
isset
(
$compiler
->
smarty
->
security_policy
))
{
$compiler
->
smarty
->
security_policy
->
isTrustedPHPDir
(
$_filepath
);
}
if
(
isset
(
$_attr
[
'assign'
]))
{
// output will be stored in a smarty variable instead of being displayed
$_assign
=
$_attr
[
'assign'
];
}
$_once
=
'_once'
;
if
(
isset
(
$_attr
[
'once'
]))
{
if
(
$_attr
[
'once'
]
==
'false'
)
{
$_once
=
''
;
}
}
if
(
isset
(
$_assign
))
{
return
"<?php ob_start(); include{$_once} ('{$_filepath}');
\$
_smarty_tpl->assign({$_assign},ob_get_contents()); ob_end_clean();?>"
;
}
else
{
return
"<?php include{$_once} ('{$_filepath}');?>
\n
"
;
}
}
}
?>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Aug 2, 22:01 (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25956
Default Alt Text
smarty_internal_compile_include_php.php (3 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment