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(
- '/'; - 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