diff --git a/mod/home.php b/mod/home.php
index beda739fdb..f3138d1867 100644
--- a/mod/home.php
+++ b/mod/home.php
@@ -24,8 +24,6 @@ function home_init(App $a) {
if(! function_exists('home_content')) {
function home_content(App $a) {
- $o = '';
-
if (x($_SESSION,'theme')) {
unset($_SESSION['theme']);
}
@@ -33,21 +31,31 @@ function home_content(App $a) {
unset($_SESSION['mobile-theme']);
}
- /// @TODO No absolute path used, maybe risky (security)
- if (file_exists('home.html')) {
- if (file_exists('home.css')) {
+ $customhome = False;
+ $defaultheader = '
'.((x($a->config,'sitename')) ? sprintf(t("Welcome to %s"), $a->config['sitename']) : "").'
';
+
+ $homefilepath = $a->basepath . '/home.html';
+ $cssfilepath = $a->basepath . '/home.css';
+ if (file_exists($homefilepath)) {
+ $customhome = $homefilepath;
+ if (file_exists($cssfilepath)) {
$a->page['htmlhead'] .= '';
}
+ }
- $o .= file_get_contents('home.html');
- } else {
- $o .= ''.((x($a->config,'sitename')) ? sprintf(t("Welcome to %s"), $a->config['sitename']) : "").'
';
- }
+ $login = Login::form($a->query_string, $a->config['register_policy'] == REGISTER_CLOSED ? 0 : 1);
- $o .= Login::form($a->query_string, $a->config['register_policy'] == REGISTER_CLOSED ? 0 : 1);
+ $content = '';
+ call_hooks("home_content",$content);
- call_hooks("home_content",$o);
+ $tpl = get_markup_template('home.tpl');
+ return replace_macros($tpl, [
+ '$defaultheader' => $defaultheader,
+ '$customhome' => $customhome,
+ '$login' => $login,
+ '$content' => $content
+ ]);
return $o;
diff --git a/view/templates/home.tpl b/view/templates/home.tpl
new file mode 100644
index 0000000000..6e50a75306
--- /dev/null
+++ b/view/templates/home.tpl
@@ -0,0 +1,14 @@
+
+{{* custom content from hook will replace everything. *}}
+{{if $content != '' }}
+ {{$content}}
+{{else}}
+
+ {{if $customhome != false }}
+ {{include file="$customhome"}}
+ {{else}}
+ {{$defaultheader}}
+ {{/if}}
+
+ {{$login}}
+{{/if}}