smarty.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * Fuel
  4. *
  5. * Fuel is a fast, lightweight, community driven PHP5 framework.
  6. *
  7. * @package Fuel
  8. * @version 1.5
  9. * @author Fuel Development Team
  10. * @license MIT License
  11. * @copyright 2010 - 2013 Fuel Development Team
  12. * @link http://fuelphp.com
  13. */
  14. namespace Parser;
  15. use Smarty;
  16. class View_Smarty extends \View
  17. {
  18. protected static $_parser;
  19. protected function process_file($file_override = false)
  20. {
  21. $file = $file_override ?: $this->file_name;
  22. try
  23. {
  24. // Smarty doesn't support method chaining
  25. $parser = static::parser();
  26. $parser->assign($this->get_data());
  27. return $parser->fetch($file);
  28. }
  29. catch (\Exception $e)
  30. {
  31. // Delete the output buffer & re-throw the exception
  32. ob_end_clean();
  33. throw $e;
  34. }
  35. }
  36. public $extension = 'smarty';
  37. /**
  38. * Returns the Parser lib object
  39. *
  40. * @return Smarty
  41. */
  42. public static function parser()
  43. {
  44. if ( ! empty(static::$_parser))
  45. {
  46. return static::$_parser;
  47. }
  48. // Parser
  49. static::$_parser = new Smarty();
  50. static::$_parser->template_dir = \Config::get('parser.View_Smarty.environment.template_dir', APPPATH.'views'.DS);
  51. static::$_parser->compile_dir = \Config::get('parser.View_Smarty.environment.compile_dir', APPPATH.'tmp'.DS.'Smarty'.DS.'templates_c'.DS);
  52. static::$_parser->config_dir = \Config::get('parser.View_Smarty.environment.config_dir', APPPATH.'tmp'.DS.'Smarty'.DS.'configs'.DS);
  53. static::$_parser->cache_dir = \Config::get('parser.View_Smarty.environment.cache_dir', APPPATH.'cache'.DS.'Smarty'.DS);
  54. $plugins_dir = \Config::get('parser.View_Smarty.environment.plugins_dir', array());
  55. static::$_parser->addPluginsDir($plugins_dir);
  56. static::$_parser->caching = \Config::get('parser.View_Smarty.environment.caching', false);
  57. static::$_parser->cache_lifetime = \Config::get('parser.View_Smarty.environment.cache_lifetime', 0);
  58. static::$_parser->force_compile = \Config::get('parser.View_Smarty.environment.force_compile', false);
  59. static::$_parser->compile_check = \Config::get('parser.View_Smarty.environment.compile_check', true);
  60. static::$_parser->debugging = \Config::get('parser.View_Smarty.environment.debugging', false);
  61. static::$_parser->left_delimiter = \Config::get('parser.View_Smarty.delimiters.left', '{');
  62. static::$_parser->right_delimiter = \Config::get('parser.View_Smarty.delimiters.right', '}');
  63. static::$_parser->autoload_filters = \Config::get('parser.View_Smarty.environment.autoload_filters', array());
  64. static::$_parser->default_modifiers = \Config::get('parser.View_Smarty.environment.default_modifiers', array());
  65. return static::$_parser;
  66. }
  67. }
  68. // end of file smarty.php