You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
<?php
|
|
|
|
require_once __DIR__ . '/base.php';
|
|
|
|
if (!isset($_GET['page'])) $_GET['page'] = 'term';
|
|
|
|
$_GET['PAGE_TITLE'] = $_pages[$_GET['page']]->title . ' :: ' . APP_NAME;
|
|
$_GET['BODYCLASS'] = $_pages[$_GET['page']]->bodyclass;
|
|
|
|
$_pf = __DIR__ . '/pages/'.$_GET['page'].'.php';
|
|
|
|
if (!file_exists($_pf)) {
|
|
header("Location: /", true, 302);
|
|
die();
|
|
}
|
|
|
|
require __DIR__ . '/pages/_head.php';
|
|
|
|
$include_re = '/<\?php\s*(require|include)\s*\(?\s*?(?:__DIR__\s*\.)?\s*(["\'])(.*?)\2\s*\)?;\s*\?>/';
|
|
|
|
if (file_exists($_pf)) {
|
|
$f = file_get_contents($_pf);
|
|
|
|
// Resolve requires inline - they wont work after dumping the resulting file to /tmp for eval
|
|
$f = preg_replace_callback($include_re, function ($m) use ($_pf) {
|
|
$n = dirname($_pf).'/'.$m[3];
|
|
if (file_exists($n)) {
|
|
return file_get_contents($n);
|
|
} else {
|
|
return "<p>NOT FOUND: $n</p>";
|
|
}
|
|
}, $f);
|
|
|
|
if (DEBUG || ESP_DEMO)
|
|
$str = tplSubs($f, require(__DIR__ . '/_debug_replacements.php'));
|
|
else $str = $f;
|
|
|
|
// special symbols
|
|
$str = str_replace('\,', ' ', $str);
|
|
$str = preg_replace('/(?<=[^ \\\\])~(?=[^ ])/', ' ', $str);
|
|
$str = str_replace('\~', '~', $str);
|
|
$str = preg_replace('/(?<![\w\\\\])`([^ `][^`]*?[^ `]|[^ `])`(?!\w)/', '<code>$1</code>', $str);
|
|
$str = preg_replace('/(?<![\w\\\\])_([^ _][^_]*?[^ _]|[^ _])_(?!\w)/', '<i>$1</i>', $str);
|
|
$str = preg_replace('/(?<![\w\\\\])\*([^ *][^*]*?[^ *]|[^ *])\*(?!\w)/', '<b>$1</b>', $str);
|
|
|
|
$str = preg_replace("/\s*(\\\\\\\\)[\n \t]+/", '<br>', $str);
|
|
include_str($str);
|
|
}
|
|
|
|
require __DIR__ . '/pages/_tail.php';
|
|
|