diff --git a/_sakura/components/Main.php b/_sakura/components/Main.php
index 16f2d11..7aae7d7 100644
--- a/_sakura/components/Main.php
+++ b/_sakura/components/Main.php
@@ -1,164 +1,174 @@
-Upgrade your PHP Version to at least PHP 5.4!');
-
- // Configuration Management and local configuration
- Configuration::init($config);
-
- // Database
- Database::init();
-
- // "Dynamic" Configuration
- Configuration::initDB();
-
- // Create new session
- Session::init();
-
- // Templating engine
- self::initTwig();
-
- // Markdown Parser
- self::initParsedown();
-
- }
-
- // Initialise Twig
- private static function initTwig() {
-
- // Initialise Twig Filesystem Loader
- $twigLoader = new \Twig_Loader_Filesystem(Configuration::getLocalConfig('etc', 'templatesPath') .'/'. Configuration::getLocalConfig('etc', 'design'));
-
- // And now actually initialise the templating engine
- self::$_TPL = new \Twig_Environment($twigLoader, array(
-
- // 'cache' => SATOKO_ROOT_DIRECTORY. self::getConfig('path', 'cache') // Set cache directory
-
- ));
-
- // Load String template loader
- self::$_TPL->addExtension(new \Twig_Extension_StringLoader());
-
- }
-
- // Initialise Parsedown
- private static function initParsedown() {
-
- self::$_MD = new \Parsedown();
-
- }
-
- // Verify ReCAPTCHA
- public static function verifyCaptcha($response) {
-
- // Attempt to get the response
- $resp = @file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='. Configuration::getConfig('recaptcha_private') .'&response='. $response);
-
- // In the highly unlikely case that it failed to get anything forge a false
- if(!$resp)
- return array('success' => false, 'error-codes' => array('Could not connect to the ReCAPTCHA server.'));
-
- // Decode the response JSON from the servers
- $resp = json_decode($resp, true);
-
- // Return shit
- return $resp;
-
- }
-
- // Error Handler
- public static function ErrorHandler($errno, $errstr, $errfile, $errline) {
-
- // Set some variables to work with including A HUGE fallback hackjob for the templates folder
- $errstr = str_replace(Configuration::getLocalConfig('etc', 'localPath'), '', $errstr);
- $errfile = str_replace(Configuration::getLocalConfig('etc', 'localPath'), '', $errfile);
- $templates = (Configuration::getLocalConfig('etc', 'templatesPath') !== null && !empty(Configuration::getLocalConfig('etc', 'templatesPath'))) ? Configuration::getLocalConfig('etc', 'templatesPath') : '/var/www/flashii.net/_sakuya/templates/';
-
- switch ($errno) {
-
- case E_ERROR:
- case E_USER_ERROR:
- $error = 'FATAL ERROR: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
- break;
-
- case E_WARNING:
- case E_USER_WARNING:
- $error = 'WARNING: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
- break;
-
- case E_NOTICE:
- case E_USER_NOTICE:
- $error = 'NOTICE: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
- break;
-
- default:
- $error = 'Unknown error type [' . $errno . ']: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
-
- }
-
- // Use file_get_contents instead of Twig in case the problem is related to twig
- $errorPage = file_get_contents($templates. 'errorPage.tpl');
-
- // str_replace {{ error }} on the error page with the error data
- $error = str_replace('{{ error }}', $error, $errorPage);
-
- // Truncate all previous outputs
- ob_clean();
-
- // Die and display error message
- die($error);
-
- }
-
- // Legacy password hashing to be able to validate passwords from users on the old backend.
- public static function legacyPasswordHash($data) {
-
- return hash('sha512', strrev(hash('sha512', $data)));
-
- }
-
- // Cleaning strings
- public static function cleanString($string, $lower = false) {
-
- $string = htmlentities($string, ENT_QUOTES | ENT_IGNORE, Configuration::getConfig('charset'));
- $string = stripslashes($string);
- $string = strip_tags($string);
- if($lower)
- $string = strtolower($string);
-
- return $string;
-
- }
-
- // Getting news posts
- public static function getNewsPosts($limit = null) {
-
- // Get news posts
- $newsPosts = Database::fetch('news', true, null, ['id', true], ($limit ? [$limit] : null));
-
- // Get user data
- foreach($newsPosts as $newsId => $newsPost) {
- $newsPosts[$newsId]['udata'] = Users::getUser($newsPost['uid']);
- $newsPosts[$newsId]['gdata'] = Users::getGroup($newsPosts[$newsId]['udata']['group_main']);
- }
-
- // Return posts
- return $newsPosts;
-
- }
-
-}
+Upgrade your PHP Version to at least PHP 5.4!');
+
+ // Configuration Management and local configuration
+ Configuration::init($config);
+
+ // Database
+ Database::init();
+
+ // "Dynamic" Configuration
+ Configuration::initDB();
+
+ // Create new session
+ Session::init();
+
+ // Templating engine
+ self::initTwig();
+
+ // Markdown Parser
+ self::initParsedown();
+
+ }
+
+ // Initialise Twig
+ private static function initTwig() {
+
+ // Initialise Twig Filesystem Loader
+ $twigLoader = new \Twig_Loader_Filesystem(Configuration::getLocalConfig('etc', 'templatesPath') .'/'. Configuration::getLocalConfig('etc', 'design'));
+
+ // And now actually initialise the templating engine
+ self::$_TPL = new \Twig_Environment($twigLoader, array(
+
+ // 'cache' => SATOKO_ROOT_DIRECTORY. self::getConfig('path', 'cache') // Set cache directory
+
+ ));
+
+ // Load String template loader
+ self::$_TPL->addExtension(new \Twig_Extension_StringLoader());
+
+ }
+
+ // Initialise Parsedown
+ private static function initParsedown() {
+
+ self::$_MD = new \Parsedown();
+
+ }
+
+ // Verify ReCAPTCHA
+ public static function verifyCaptcha($response) {
+
+ // Attempt to get the response
+ $resp = @file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='. Configuration::getConfig('recaptcha_private') .'&response='. $response);
+
+ // In the highly unlikely case that it failed to get anything forge a false
+ if(!$resp)
+ return array('success' => false, 'error-codes' => array('Could not connect to the ReCAPTCHA server.'));
+
+ // Decode the response JSON from the servers
+ $resp = json_decode($resp, true);
+
+ // Return shit
+ return $resp;
+
+ }
+
+ // Error Handler
+ public static function ErrorHandler($errno, $errstr, $errfile, $errline) {
+
+ // Set some variables to work with including A HUGE fallback hackjob for the templates folder
+ $errstr = str_replace(Configuration::getLocalConfig('etc', 'localPath'), '', $errstr);
+ $errfile = str_replace(Configuration::getLocalConfig('etc', 'localPath'), '', $errfile);
+ $templates = (Configuration::getLocalConfig('etc', 'templatesPath') !== null && !empty(Configuration::getLocalConfig('etc', 'templatesPath'))) ? Configuration::getLocalConfig('etc', 'templatesPath') : '/var/www/flashii.net/_sakuya/templates/';
+
+ switch ($errno) {
+
+ case E_ERROR:
+ case E_USER_ERROR:
+ $error = 'FATAL ERROR: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
+ break;
+
+ case E_WARNING:
+ case E_USER_WARNING:
+ $error = 'WARNING: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
+ break;
+
+ case E_NOTICE:
+ case E_USER_NOTICE:
+ $error = 'NOTICE: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
+ break;
+
+ default:
+ $error = 'Unknown error type [' . $errno . ']: ' . $errstr . ' on line ' . $errline . ' in ' . $errfile;
+
+ }
+
+ // Use file_get_contents instead of Twig in case the problem is related to twig
+ $errorPage = file_get_contents($templates. 'errorPage.tpl');
+
+ // str_replace {{ error }} on the error page with the error data
+ $error = str_replace('{{ error }}', $error, $errorPage);
+
+ // Truncate all previous outputs
+ ob_clean();
+
+ // Die and display error message
+ die($error);
+
+ }
+
+ // Legacy password hashing to be able to validate passwords from users on the old backend.
+ public static function legacyPasswordHash($data) {
+
+ return hash('sha512', strrev(hash('sha512', $data)));
+
+ }
+
+ // Cleaning strings
+ public static function cleanString($string, $lower = false) {
+
+ $string = htmlentities($string, ENT_QUOTES | ENT_IGNORE, Configuration::getConfig('charset'));
+ $string = stripslashes($string);
+ $string = strip_tags($string);
+ if($lower)
+ $string = strtolower($string);
+
+ return $string;
+
+ }
+
+ // Getting news posts
+ public static function getNewsPosts($limit = null) {
+
+ // Get news posts
+ $newsPosts = Database::fetch('news', true, null, ['id', true], ($limit ? [$limit] : null));
+
+ // Get user data
+ foreach($newsPosts as $newsId => $newsPost) {
+ $newsPosts[$newsId]['udata'] = Users::getUser($newsPost['uid']);
+ $newsPosts[$newsId]['gdata'] = Users::getGroup($newsPosts[$newsId]['udata']['group_main']);
+ }
+
+ // Return posts
+ return $newsPosts;
+
+ }
+
+ // Loading info pages
+ public static function loadInfoPage($id) {
+
+ // Get contents from the database
+ $infopage = Database::fetch('infopages', false, ['shorthand' => [$id, '=']]);
+
+ print_r($infopage);
+
+ }
+
+}
diff --git a/main/infopage.php b/main/infopage.php
index d00b6c7..448ce71 100644
--- a/main/infopage.php
+++ b/main/infopage.php
@@ -9,11 +9,13 @@ namespace Sakura;
// Include components
require_once '/var/www/flashii.net/_sakura/sakura.php';
-// Do parsing etc.
+// Set default variables
$renderData['page'] = [
'title' => 'Info pages',
'content' => 'Unable to load the requested info page.'
];
+$ipData = Main::loadInfoPage(isset($_GET['r']) ? strtolower($_GET['r']) : '');
+
// Print page contents
print Main::$_TPL->render('main/infopage.tpl', $renderData);