diff --git a/inc/MyTool.class.php b/inc/MyTool.class.php deleted file mode 100644 index b11f18e97..000000000 --- a/inc/MyTool.class.php +++ /dev/null @@ -1,265 +0,0 @@ - - * @copyright 2013 - * @license http://www.wtfpl.net/ see COPYING file - */ - -class MyTool -{ - public static function initPhp() - { - define('START_TIME', microtime(true)); - - if (phpversion() < 5) { - die(_('Oops, it seems you don\'t have PHP 5.')); - } - - error_reporting(E_ALL); - - function stripslashesDeep($value) { - return is_array($value) - ? array_map('stripslashesDeep', $value) - : stripslashes($value); - } - - if (get_magic_quotes_gpc()) { - $_POST = array_map('stripslashesDeep', $_POST); - $_GET = array_map('stripslashesDeep', $_GET); - $_COOKIE = array_map('stripslashesDeep', $_COOKIE); - } - - ob_start(); - register_shutdown_function('ob_end_flush'); - } - - public static function isUrl($url) - { - // http://neo22s.com/check-if-url-exists-and-is-online-php/ - $pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i'; - - return preg_match($pattern, $url); - } - - public static function isEmail($email) - { - $pattern = "/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2, 4}$/i"; - - return (preg_match($pattern, $email)); - } - - public static function formatBBCode($text) - { - $replace = array( - '/\[m\](.+?)\[\/m\]/is' - => '/* moderate */', - '/\[b\](.+?)\[\/b\]/is' - => '$1', - '/\[i\](.+?)\[\/i\]/is' - => '$1', - '/\[s\](.+?)\[\/s\]/is' - => '$1', - '/\[u\](.+?)\[\/u\]/is' - => '$1', - '/\[url\](.+?)\[\/url]/is' - => '$1', - '/\[url=(\w+:\/\/[^\]]+)\](.+?)\[\/url]/is' - => '$2', - '/\[quote\](.+?)\[\/quote\]/is' - => '
$1
', - '/\[code\](.+?)\[\/code\]/is' - => '$1', - '/\[([^[]+)\|([^[]+)\]/is' - => '$1' - ); - $text = preg_replace( - array_keys($replace), - array_values($replace), - $text - ); - - return $text; - } - - public static function formatText($text) - { - $text = preg_replace_callback( - '/(.*?)<\/code_html>/is', - create_function( - '$matches', - 'return htmlspecialchars($matches[1]);' - ), - $text - ); - $text = preg_replace_callback( - '/(.*?)<\/code_php>/is', - create_function( - '$matches', - 'return highlight_string("", true);' - ), - $text - ); - $text = preg_replace('/
/is', '', $text); - - $text = preg_replace( - '#(^|\s)([a-z]+://([^\s\w/]?[\w/])*)(\s|$)#im', - '\\1\\2\\4', - $text - ); - $text = preg_replace( - '#(^|\s)wp:?([a-z]{2}|):([\w]+)#im', - '\\1\\3', - $text - ); - $text = str_replace( - 'http://.wikipedia.org/wiki/', - 'http://www.wikipedia.org/wiki/', - $text - ); - $text = str_replace('\wp:', 'wp:', $text); - $text = str_replace('\http:', 'http:', $text); - $text = MyTool::formatBBCode($text); - $text = nl2br($text); - - return $text; - } - - public static function getUrl() - { - $https = (!empty($_SERVER['HTTPS']) - && (strtolower($_SERVER['HTTPS']) == 'on')) - || (isset($_SERVER["SERVER_PORT"]) - && $_SERVER["SERVER_PORT"] == '443'); // HTTPS detection. - $serverport = (!isset($_SERVER["SERVER_PORT"]) - || $_SERVER["SERVER_PORT"] == '80' - || ($https && $_SERVER["SERVER_PORT"] == '443') - ? '' - : ':' . $_SERVER["SERVER_PORT"]); - - $scriptname = str_replace('/index.php', '/', $_SERVER["SCRIPT_NAME"]); - - if (!isset($_SERVER["SERVER_NAME"])) { - return $scriptname; - } - - return 'http' . ($https ? 's' : '') . '://' - . $_SERVER["SERVER_NAME"] . $serverport . $scriptname; - } - - public static function rrmdir($dir) - { - if (is_dir($dir) && ($d = @opendir($dir))) { - while (($file = @readdir($d)) !== false) { - if ( $file == '.' || $file == '..' ) { - continue; - } else { - unlink($dir . '/' . $file); - } - } - } - } - - public static function humanBytes($bytes) - { - $siPrefix = array( 'bytes', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' ); - $base = 1024; - $class = min((int) log($bytes, $base), count($siPrefix) - 1); - $val = sprintf('%1.2f', $bytes / pow($base, $class)); - - return $val . ' ' . $siPrefix[$class]; - } - - public static function returnBytes($val) - { - $val = trim($val); - $last = strtolower($val[strlen($val)-1]); - switch($last) - { - case 'g': $val *= 1024; - case 'm': $val *= 1024; - case 'k': $val *= 1024; - } - - return $val; - } - - public static function getMaxFileSize() - { - $sizePostMax = MyTool::returnBytes(ini_get('post_max_size')); - $sizeUploadMax = MyTool::returnBytes(ini_get('upload_max_filesize')); - - // Return the smaller of two: - return min($sizePostMax, $sizeUploadMax); - } - - public static function smallHash($text) - { - $t = rtrim(base64_encode(hash('crc32', $text, true)), '='); - // Get rid of characters which need encoding in URLs. - $t = str_replace('+', '-', $t); - $t = str_replace('/', '_', $t); - $t = str_replace('=', '@', $t); - - return $t; - } - - public static function renderJson($data) - { - header('Cache-Control: no-cache, must-revalidate'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); - header('Content-type: application/json; charset=UTF-8'); - - echo json_encode($data); - exit(); - } - - public static function grabToLocal($url, $file, $force = false) - { - if ((!file_exists($file) || $force) && in_array('curl', get_loaded_extensions())){ - $ch = curl_init ($url); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); - $raw = curl_exec($ch); - if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) { - $fp = fopen($file, 'x'); - fwrite($fp, $raw); - fclose($fp); - } - curl_close ($ch); - } - } - - public static function redirect($rurl = '') - { - if ($rurl === '') { - // if (!empty($_SERVER['HTTP_REFERER']) && strcmp(parse_url($_SERVER['HTTP_REFERER'],PHP_URL_HOST),$_SERVER['SERVER_NAME'])==0) - $rurl = (empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER']); - if (isset($_POST['returnurl'])) { - $rurl = $_POST['returnurl']; - } - } - - // prevent loop - if (empty($rurl) || parse_url($rurl, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) { - $rurl = MyTool::getUrl(); - } - - if (substr($rurl, 0, 1) !== '?') { - $ref = MyTool::getUrl(); - if (substr($rurl, 0, strlen($ref)) !== $ref) { - $rurl = $ref; - } - } - header('Location: '.$rurl); - exit(); - } - - public static function silence_errors($num, $str) - { -// No-op - } -} \ No newline at end of file diff --git a/inc/class.messages.php b/inc/class.messages.php deleted file mode 100644 index 6d515bf69..000000000 --- a/inc/class.messages.php +++ /dev/null @@ -1,231 +0,0 @@ -\n%s\n"; - var $msgBefore = '

'; - var $msgAfter = "

\n"; - - - /** - * Constructor - * @author Mike Everhart - */ - public function __construct() { - - // Generate a unique ID for this user and session - $this->msgId = md5(uniqid()); - - // Create the session array if it doesnt already exist - if( !array_key_exists('flash_messages', $_SESSION) ) $_SESSION['flash_messages'] = array(); - - } - - /** - * Add a message to the queue - * - * @author Mike Everhart - * - * @param string $type The type of message to add - * @param string $message The message - * @param string $redirect_to (optional) If set, the user will be redirected to this URL - * @return bool - * - */ - public function add($type, $message, $redirect_to=null) { - - if( !isset($_SESSION['flash_messages']) ) return false; - - if( !isset($type) || !isset($message[0]) ) return false; - - // Replace any shorthand codes with their full version - if( strlen(trim($type)) == 1 ) { - $type = str_replace( array('h', 'i', 'w', 'e', 's'), array('help', 'info', 'warning', 'error', 'success'), $type ); - - // Backwards compatibility... - } elseif( $type == 'information' ) { - $type = 'info'; - } - - // Make sure it's a valid message type - if( !in_array($type, $this->msgTypes) ) die('"' . strip_tags($type) . '" is not a valid message type!' ); - - // If the session array doesn't exist, create it - if( !array_key_exists( $type, $_SESSION['flash_messages'] ) ) $_SESSION['flash_messages'][$type] = array(); - - $_SESSION['flash_messages'][$type][] = $message; - - if( !is_null($redirect_to) ) { - header("Location: $redirect_to"); - exit(); - } - - return true; - - } - - //----------------------------------------------------------------------------------------------- - // display() - // print queued messages to the screen - //----------------------------------------------------------------------------------------------- - /** - * Display the queued messages - * - * @author Mike Everhart - * - * @param string $type Which messages to display - * @param bool $print True = print the messages on the screen - * @return mixed - * - */ - public function display($type='all', $print=true) { - $messages = ''; - $data = ''; - - if( !isset($_SESSION['flash_messages']) ) return false; - - if( $type == 'g' || $type == 'growl' ) { - $this->displayGrowlMessages(); - return true; - } - - // Print a certain type of message? - if( in_array($type, $this->msgTypes) ) { - foreach( $_SESSION['flash_messages'][$type] as $msg ) { - $messages .= $this->msgBefore . $msg . $this->msgAfter; - } - - $data .= sprintf($this->msgWrapper, $this->msgClass, $type, $messages); - - // Clear the viewed messages - $this->clear($type); - - // Print ALL queued messages - } elseif( $type == 'all' ) { - foreach( $_SESSION['flash_messages'] as $type => $msgArray ) { - $messages = ''; - foreach( $msgArray as $msg ) { - $messages .= $this->msgBefore . $msg . $this->msgAfter; - } - $data .= sprintf($this->msgWrapper, $this->msgClass, $type, $messages); - } - - // Clear ALL of the messages - $this->clear(); - - // Invalid Message Type? - } else { - return false; - } - - // Print everything to the screen or return the data - if( $print ) { - echo $data; - } else { - return $data; - } - } - - - /** - * Check to see if there are any queued error messages - * - * @author Mike Everhart - * - * @return bool true = There ARE error messages - * false = There are NOT any error messages - * - */ - public function hasErrors() { - return empty($_SESSION['flash_messages']['error']) ? false : true; - } - - /** - * Check to see if there are any ($type) messages queued - * - * @author Mike Everhart - * - * @param string $type The type of messages to check for - * @return bool - * - */ - public function hasMessages($type=null) { - if( !is_null($type) ) { - if( !empty($_SESSION['flash_messages'][$type]) ) return $_SESSION['flash_messages'][$type]; - } else { - foreach( $this->msgTypes as $type ) { - if( !empty($_SESSION['flash_messages']) ) return true; - } - } - return false; - } - - /** - * Clear messages from the session data - * - * @author Mike Everhart - * - * @param string $type The type of messages to clear - * @return bool - * - */ - public function clear($type='all') { - if( $type == 'all' ) { - unset($_SESSION['flash_messages']); - } else { - unset($_SESSION['flash_messages'][$type]); - } - return true; - } - - public function __toString() { return $this->hasMessages(); } - - public function __destruct() { - //$this->clear(); - } - - -} // end class -?> \ No newline at end of file diff --git a/inc/pocheTool.class.php b/inc/pocheTool.class.php new file mode 100644 index 000000000..9aab76b90 --- /dev/null +++ b/inc/pocheTool.class.php @@ -0,0 +1,101 @@ + + * @copyright 2013 + * @license http://www.wtfpl.net/ see COPYING file + */ + +class pocheTools +{ + public static function initPhp() + { + define('START_TIME', microtime(true)); + + if (phpversion() < 5) { + die(_('Oops, it seems you don\'t have PHP 5.')); + } + + error_reporting(E_ALL); + + function stripslashesDeep($value) { + return is_array($value) + ? array_map('stripslashesDeep', $value) + : stripslashes($value); + } + + if (get_magic_quotes_gpc()) { + $_POST = array_map('stripslashesDeep', $_POST); + $_GET = array_map('stripslashesDeep', $_GET); + $_COOKIE = array_map('stripslashesDeep', $_COOKIE); + } + + ob_start(); + register_shutdown_function('ob_end_flush'); + } + + public static function isUrl($url) + { + // http://neo22s.com/check-if-url-exists-and-is-online-php/ + $pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i'; + + return preg_match($pattern, $url); + } + + public static function getUrl() + { + $https = (!empty($_SERVER['HTTPS']) + && (strtolower($_SERVER['HTTPS']) == 'on')) + || (isset($_SERVER["SERVER_PORT"]) + && $_SERVER["SERVER_PORT"] == '443'); // HTTPS detection. + $serverport = (!isset($_SERVER["SERVER_PORT"]) + || $_SERVER["SERVER_PORT"] == '80' + || ($https && $_SERVER["SERVER_PORT"] == '443') + ? '' : ':' . $_SERVER["SERVER_PORT"]); + + $scriptname = str_replace('/index.php', '/', $_SERVER["SCRIPT_NAME"]); + + if (!isset($_SERVER["SERVER_NAME"])) { + return $scriptname; + } + + return 'http' . ($https ? 's' : '') . '://' + . $_SERVER["SERVER_NAME"] . $serverport . $scriptname; + } + + public static function renderJson($data) + { + header('Cache-Control: no-cache, must-revalidate'); + header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); + header('Content-type: application/json; charset=UTF-8'); + + echo json_encode($data); + exit(); + } + + public static function redirect($rurl = '') + { + if ($rurl === '') { + $rurl = (empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER']); + if (isset($_POST['returnurl'])) { + $rurl = $_POST['returnurl']; + } + } + + // prevent loop + if (empty($rurl) || parse_url($rurl, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) { + $rurl = pocheTool::getUrl(); + } + + if (substr($rurl, 0, 1) !== '?') { + $ref = pocheTool::getUrl(); + if (substr($rurl, 0, strlen($ref)) !== $ref) { + $rurl = $ref; + } + } + header('Location: '.$rurl); + exit(); + } +} \ No newline at end of file