diff --git a/_sakura/components/Configuration.php b/_sakura/components/Configuration.php new file mode 100644 index 0000000..e69de29 diff --git a/_sakura/components/Hashing.php b/_sakura/components/Hashing.php new file mode 100644 index 0000000..37cce25 --- /dev/null +++ b/_sakura/components/Hashing.php @@ -0,0 +1,171 @@ +Upgrade your PHP Version to at least PHP 5.4!'); + + // Assign $config values to $_CONF + self::$_CONF = $config; + + // Initialise database + self::$_DB = new Database(); + } + + // Get values from the configuration + public static function getConfig($key, $subkey = null) { + if(array_key_exists($key, self::$_CONF)) { + if($subkey) + return self::$_CONF[$key][$subkey]; + else + return self::$_CONF[$key]; + } else { + return false; + } + } + + // Initialise Twig + public function initTwig($templateName = null, $templatesFolder = null) { + // Assign default values set in the configuration if $templateName and $templatesFolder are null + $templateName = is_null($templateName) ? self::getConfig('etc', 'design') : $templateName; + $templatesFolder = is_null($templatesFolder) ? self::getConfig('etc', 'templatesPath') : $templatesFolder; + + // Initialise Twig Filesystem Loader + $twigLoader = new \Twig_Loader_Filesystem($templatesFolder . $templateName); + + // And now actually initialise the templating engine + $this->twig = new \Twig_Environment($twigLoader, array( + // 'cache' => $satoko['cacheFolder'] + )); + } + + // 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(self::getConfig('etc', 'localPath'), '', $errstr); + $errfile = str_replace(self::getConfig('etc', 'localPath'), '', $errfile); + $templates = (self::getConfig('etc', 'templatesPath') !== null && !empty(self::getConfig('etc', 'templatesPath'))) ? self::getConfig('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; + break; + } + + // 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))); + } + +} \ No newline at end of file diff --git a/_sakura/sakura.php b/_sakura/sakura.php index 2aad456..e5c8a65 100644 --- a/_sakura/sakura.php +++ b/_sakura/sakura.php @@ -18,9 +18,9 @@ require_once 'config/config.php'; // Include libraries require_once 'vendor/autoload.php'; -require_once 'components/SockBase.php'; -require_once 'components/SockHashing.php'; -require_once 'components/SockConfiguration.php'; +require_once 'components/Base.php'; +require_once 'components/Hashing.php'; +require_once 'components/Configuration.php'; // Generate path to database driver $_DBNGNPATH = 'components/database/' . $fiiConf['db']['driver'] . '.php';