- ];
-
- /**
- * @brief This is our template processor
- *
- * @param string|FriendicaSmarty $s The string requiring macro substitution or an instance of FriendicaSmarty
- * @param array $r key value pairs (search => replace)
- *
- * @return string substituted string
- */
- public static function replaceMacros($s, $r)
- {
- $stamp1 = microtime(true);
- $a = self::getApp();
-
- // pass $baseurl to all templates
- $r['$baseurl'] = System::baseUrl();
- $t = self::getTemplateEngine();
-
- try {
- $output = $t->replaceMacros($s, $r);
- } catch (Exception $e) {
- echo "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
- killme();
- }
-
- $a->saveTimestamp($stamp1, "rendering");
-
- return $output;
- }
-
- /**
- * @brief Load a given template $s
- *
- * @param string $s Template to load.
- * @param string $root Optional.
- *
- * @return string template.
- */
- public static function getMarkupTemplate($s, $root = '')
- {
- $stamp1 = microtime(true);
- $a = self::getApp();
- $t = self::getTemplateEngine();
-
- try {
- $template = $t->getTemplateFile($s, $root);
- } catch (Exception $e) {
- echo "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
- killme();
- }
-
- $a->saveTimestamp($stamp1, "file");
-
- return $template;
- }
-
- /**
+ ];
+
+ /**
+ * @brief This is our template processor
+ *
+ * @param string|FriendicaSmarty $s The string requiring macro substitution or an instance of FriendicaSmarty
+ * @param array $vars Key value pairs (search => replace)
+ *
+ * @return string substituted string
+ * @throws Exception
+ */
+ public static function replaceMacros($s, array $vars = [])
+ {
+ $stamp1 = microtime(true);
+ $a = self::getApp();
+
+ // pass $baseurl to all templates if it isn't set
+ $vars = array_merge(['$baseurl' => $a->getBaseURL()], $vars);
+
+ $t = self::getTemplateEngine();
+
+ try {
+ $output = $t->replaceMacros($s, $vars);
+ } catch (Exception $e) {
+ echo "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
+ exit();
+ }
+
+ $a->getProfiler()->saveTimestamp($stamp1, "rendering", System::callstack());
+
+ return $output;
+ }
+
+ /**
+ * @brief Load a given template $s
+ *
+ * @param string $s Template to load.
+ * @param string $root Optional.
+ *
+ * @return string template.
+ * @throws Exception
+ */
+ public static function getMarkupTemplate($s, $root = '')
+ {
+ $stamp1 = microtime(true);
+ $a = self::getApp();
+ $t = self::getTemplateEngine();
+
+ try {
+ $template = $t->getTemplateFile($s, $root);
+ } catch (Exception $e) {
+ echo "<pre><b>" . __FUNCTION__ . "</b>: " . $e->getMessage() . "</pre>";
+ exit();
+ }
+
+ $a->getProfiler()->saveTimestamp($stamp1, "file", System::callstack());
+
+ return $template;
+ }
+
+ /**