Beispiel #1
0
 /**
  * @param $name
  * @param array $params
  */
 public static function parse($template_name, $params = array())
 {
     if (is_array($GLOBALS)) {
         extract($GLOBALS);
     }
     if (is_array($params)) {
         extract($params);
     }
     $session = Mvc::getSession();
     $request = Mvc::getRequest();
     $response = Mvc::getResponse();
     $config = Mvc::getConfig();
     $router = Mvc::getRouter();
     $dispatcher = Mvc::getDispatcher();
     foreach ($params as $varname => $value) {
         $response->setData($varname, $value);
     }
     unset($varname, $value, $params);
     foreach (array(LP_APP_DIRECTORY, LP_DEFAULT_APP_DIRECTORY, LP_ROOT_DIRECTORY) as $_dir) {
         $template_path = "{$_dir}/templates/{$template_name}.php";
         if (is_file($template_path)) {
             // Execute the template
             require $template_path;
             return;
         }
     }
     throw new \Exception("Template not found: /templates/{$template_name}.php");
 }
Beispiel #2
0
 public static function init()
 {
     Event::register('content', function ($content) {
         // Var assignation
         $content = preg_replace_callback('/{{var ([^=}]*)=([^}]*)}}/', function ($M) {
             $varname = trim($M[1]);
             $value = trim($M[2]);
             if (substr($value, 0, 3) == '~~~') {
                 $value = I18n::getSingleton()->translate(substr($value, 3));
             }
             Mvc::getResponse()->setData($varname, $value);
             return '';
         }, $content);
         // Var echo
         $content = preg_replace_callback('/{{var ([^}]*)}}/', function ($M) {
             return Mvc::getResponse()->getData(trim($M[1]));
         }, $content);
         // Translate
         $content = preg_replace_callback('/{{~~~([^}]*)}}/', function ($M) {
             return I18n::getSingleton()->translate(trim($M[1]));
         }, $content);
         // Asset URL
         $content = preg_replace_callback('/{{asset ([^}]*)}}/', function ($M) {
             return asset(ltrim(trim($M[1]), '/'));
         }, $content);
         // Page URL helper
         $content = preg_replace_callback('/{{url[ ]?([^}]*)}}/', function ($M) {
             return page_url(trim($M[1]));
         }, $content);
         // Template include
         $content = preg_replace_callback('/{{template ([^}]*)}}/', function ($M) {
             ob_start();
             template(trim($M[1]));
             return Event::filter('content', ob_get_clean());
         }, $content);
         // {{header Content-Type: text/plain}}
         $content = preg_replace_callback('/{{header ([^}]*)}}/', function ($M) {
             if (preg_match('/^([^:]*): (.*)$/', trim($M[1]), $L)) {
                 Mvc::getResponse()->addHeader(trim($L[1]), trim($L[2]));
             }
             return '';
         }, $content);
         // {{redirect template/name}}
         $content = preg_replace_callback('/{{redirect ([^}]*)}}/', function ($M) {
             Mvc::getResponse()->redirect(page_url(trim($M[1])));
             return '';
         }, $content);
         return $content;
     });
 }