]> git.mxchange.org Git - friendica.git/blob - src/Core/Renderer.php
Create Core\Renderer Class
[friendica.git] / src / Core / Renderer.php
1 <?php
2 /**
3  * @file src/Core/Renderer.php
4  */
5
6 namespace Friendica\Core;
7
8 use Friendica\BaseObject;
9 use Friendica\Core\System;
10 use Friendica\Render\FriendicaSmarty;
11
12 /**
13  * @brief This class handles Renderer related functions.
14  */
15 class Renderer extends BaseObject
16 {
17     /**
18      * @brief This is our template processor
19      *
20      * @param string|FriendicaSmarty $s The string requiring macro substitution or an instance of FriendicaSmarty
21      * @param array $r                  key value pairs (search => replace)
22      * 
23      * @return string substituted string
24     */
25     public static function replaceMacros($s, $r)
26     {
27         $stamp1 = microtime(true);
28         $a = self::getApp();
29
30         // pass $baseurl to all templates
31         $r['$baseurl'] = System::baseUrl();
32         $t = $a->getTemplateEngine();
33
34         try {
35             $output = $t->replaceMacros($s, $r);
36         } catch (Exception $e) {
37             echo "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
38             killme();
39         }
40
41         $a->saveTimestamp($stamp1, "rendering");
42
43         return $output;
44     }
45
46     /**
47      * @brief Load a given template $s
48      *
49      * @param string $s     Template to load.
50      * @param string $root  Optional.
51      * 
52      * @return string template.
53      */
54     public static function getMarkupTemplate($s, $root = '')
55     {
56         $stamp1 = microtime(true);
57         $a = self::getApp();
58         $t = $a->getTemplateEngine();
59
60         try {
61             $template = $t->getTemplateFile($s, $root);
62         } catch (Exception $e) {
63             echo "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
64             killme();
65         }
66
67         $a->saveTimestamp($stamp1, "file");
68
69         return $template;
70     }
71 }