watch.twip-network.org/index.php
2024-01-22 09:28:27 +01:00

79 lines
1.9 KiB
PHP

<?php
function include_ob($file){
ob_start();
include $file;
return ob_get_clean();
}
function sanitize_template_strings($indata){
$sanit_pattern = '/<template.*>/is';
return preg_replace($sanit_pattern, '', $indata);
}
session_start();
require_once 'config.php';
$paths_to_check = array();
$page = basename($_SERVER['QUERY_STRING']);
$nav = include_ob("$template_dir/navigation.html");
echo $_SERVER['QUERY_STRING'];
if(empty($page)){
$page = 'index';
}
// Check if user is logged in
if (isset($_SESSION['user_id'])) {
if ($user['isAdmin'] == 1) {
$paths_to_check[] = "pages/admin";
}
$paths_to_check[] = "pages/user";
$paths_to_check[] = "pages/global";
}
$page_file = "$template_dir/404.html";
foreach($paths_to_check as $page_dir){
$page_file_tmp = "$page_dir/$page.html";
if(file_exists($page_file_tmp)){
$page_file = $page_file_tmp;
break;
}
}
$page_data = include_ob($page_file);
$output = file_get_contents("$template_dir/skeleton.html");
$output = str_replace('<template name="navigation">', $nav, $output);
if (isset($_SESSION['user_id'])) {
$hash = md5(strtolower(trim($_SESSION['user_email'])));
$gravatarUrl = "https://www.gravatar.com/avatar/$hash?s=100";
$gravatarTag = "<img src='$gravatarUrl' alt='Gravatar Profile Picture'>";
$page_data = str_replace('<template name="gravatar image">', $gravatarTag, $page_data);
$page_data = str_replace('<template name="username">', $_SESSION['user_username'], $page_data);
}
$page_regex = '/<!--PAGENAME=(.*?)-->/s';
if(preg_match($page_regex, $page_data, $matches)){
$page_name = $matches[1];
$page_data = preg_replace($page_regex, '', $page_data);
}
else{
$page_name = ucfirst($page);
}
$output = str_replace('<template name="page name">', $page_name, $output);
$output = str_replace('<template name="page content">', $page_data, $output);
echo $output;
?>