diff --git a/footer.php b/footer.php index d858bfd..5b73615 100644 --- a/footer.php +++ b/footer.php @@ -14,9 +14,6 @@ 0): ?> diff --git a/header.php b/header.php index b754883..d05ec0a 100644 --- a/header.php +++ b/header.php @@ -12,9 +12,6 @@ 0): ?>
- text($strContent); - ?> +
diff --git a/lib/PageRender.php b/lib/PageRender.php index 873b0ad..d9a7317 100644 --- a/lib/PageRender.php +++ b/lib/PageRender.php @@ -1,6 +1,8 @@ 0) @@ -33,6 +35,21 @@ Cookie::set("messageClass"); } + public static function markdown($strInput) + { + if (PageRender::$varParsedown == null) + PageRender::$varParsedown = new Parsedown(); + + $strText = PageRender::$varParsedown->text($strInput); + $strText = Settings::makeReplacements($strText); + + ?> +
+ +
+
- 0): ?> -
+ + + +
+ "> · by +
+ + + 0): ?> +
+ + + +
- text($r["content"]); ?> + +
+ +
@@ -46,10 +97,26 @@ -
Sorry, there is nothing here to show.
+ +
diff --git a/lib/Settings.php b/lib/Settings.php index 7100cfb..7bf1275 100644 --- a/lib/Settings.php +++ b/lib/Settings.php @@ -6,6 +6,7 @@ public static function get($strSettingName=null, $strDefault="", $intSave=0) { global $c; + $strOutput = $strDefault; if (Settings::$varValues == null) { @@ -22,12 +23,12 @@ return Settings::$varValues; if (array_key_exists($strSettingName, Settings::$varValues)) - return Settings::$varValues[$strSettingName]; + $strOutput = Settings::$varValues[$strSettingName]; if ($intSave) Settings::set($strSettingName, $strDefault); - return $strDefault; + return trim($strOutput); } public static function set($strSettingName, $strValue) @@ -35,6 +36,7 @@ Settings::$varValues = null; global $c; + $strValue = trim($strValue); $varExisting = $c->query(" SELECT * from settings @@ -58,5 +60,21 @@ $strValue, $strSettingName); } + + public static function makeReplacements($strText) + { + // Handle nested setting value injection: + preg_match_all("/\{\{([A-Za-z0-9_]{1,})\}\}/i", $strText, $varMatches); + + if (count($varMatches[1]) > 0) + foreach ($varMatches[1] as $varMatch) + { + $strKey = $varMatch; + $strValue = Settings::get($strKey); + $strText = preg_replace("/\{\{$strKey\}\}/i", $strValue, $strText); + } + + return $strText; + } } ?> diff --git a/pages/find.php b/pages/find.php deleted file mode 100644 index e53a74e..0000000 --- a/pages/find.php +++ /dev/null @@ -1,82 +0,0 @@ - 0; - $intHasAuthor = $strAuthor !== null && strlen($strAuthor) > 0; - $intHasId = $strId !== null && strlen($strId) > 0; - - if ($intHasQuery) - { - $strQuery = preg_replace("/[^A-Za-z0-9]/", "", $strQuery); - - $varPosts = $c->query( - "SELECT * - from posts as p - where - content like concat('%', ?, '%') - order by - created desc", - $strQuery); - - $i = 0; - for ($i = 0; $i < count($varPosts); $i++) - { - $varOld = $varPosts[$i]; - $varOld["content"] = preg_replace("/({$strQuery})/i", "$1", $varOld["content"]); - $varPosts[$i] = $varOld; - } - } - - if ($intHasAuthor) - { - $varPosts = $c->query( - "SELECT * - from posts as p - where - username like ? - order by - created desc", - $strAuthor); - - } - - if ($intHasId) - { - $varPosts = $c->query( - "SELECT * - from posts as p - where - id = ? - order by - created desc", - $strId); - } -?> - - -
- - - - - - - - -
- -
-
- - - - - diff --git a/pages/search.php b/pages/search.php new file mode 100644 index 0000000..1e0007d --- /dev/null +++ b/pages/search.php @@ -0,0 +1,51 @@ + 0; + + if ($intHasQuery) + { + $strQuery = preg_replace("/[^A-Za-z0-9]/", "", $strQuery); + + $varPosts = $c->query( + "SELECT * + from posts as p + where + content like concat('%', ?, '%') + order by + created desc", + $strQuery); + + $i = 0; + for ($i = 0; $i < count($varPosts); $i++) + { + $varOld = $varPosts[$i]; + $varOld["content"] = preg_replace("/\b({$strQuery})\b/i", "$1", $varOld["content"]); + $varPosts[$i] = $varOld; + } + } +?> + +
+ + + + + + + + +
+ +
+
+ + + + +