function.eval.php 968 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Smarty plugin
  4. * @package Smarty
  5. * @subpackage plugins
  6. */
  7. /**
  8. * Smarty {eval} function plugin
  9. *
  10. * Type: function<br>
  11. * Name: eval<br>
  12. * Purpose: evaluate a template variable as a template<br>
  13. * @link http://smarty.php.net/manual/en/language.function.eval.php {eval}
  14. * (Smarty online manual)
  15. * @param array
  16. * @param Smarty
  17. */
  18. function smarty_function_eval($params, &$smarty)
  19. {
  20. if (!isset($params['var'])) {
  21. $smarty->trigger_error("eval: missing 'var' parameter");
  22. return;
  23. }
  24. if($params['var'] == '') {
  25. return;
  26. }
  27. $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled);
  28. ob_start();
  29. $smarty->_eval('?>' . $_var_compiled);
  30. $_contents = ob_get_contents();
  31. ob_end_clean();
  32. if (!empty($params['assign'])) {
  33. $smarty->assign($params['assign'], $_contents);
  34. } else {
  35. return $_contents;
  36. }
  37. }
  38. /* vim: set expandtab: */
  39. ?>