function ds_php_eval in Display Suite 7
Wrapper function around PHP eval(). We don't use php_eval from the PHP module because custom fields might need properties from the current entity.
Parameters
$code: The code to evaluate from the custom field.
$object: An object to use for evaluation.
Return value
$output The output from eval.
1 call to ds_php_eval()
- ds_render_code_field in ./
ds.module - Render a code field.
1 string reference to 'ds_php_eval'
- ds_filter_info in ./
ds.module - Implements hook_filter_info().
File
- ./
ds.module, line 952 - Display Suite core functions.
Code
function ds_php_eval($code, $entity, $build = array()) {
global $theme_path, $theme_info, $conf;
// Store current theme path.
$old_theme_path = $theme_path;
// Restore theme_path to the theme, as long as ds_php_eval() executes,
// so code evaluted will not see the caller module as the current theme.
// If theme info is not initialized get the path from theme_default.
if (!isset($theme_info)) {
$theme_path = drupal_get_path('theme', $conf['theme_default']);
}
else {
$theme_path = dirname($theme_info->filename);
}
ob_start();
print eval('?>' . $code);
$output = ob_get_contents();
ob_end_clean();
// Recover original theme path.
$theme_path = $old_theme_path;
return $output;
}