/** * Returns array of GET and POST parameters. GET parameters are taken from given URL. * * @param string $fromUrl URL to mine for parameter information. * @return array Parameters found in POST and GET. * @access public */ function parseParams($fromUrl = '') { $params = array(); $params['data'] = array(); isset($_COOKIE) and ini_get('magic_quotes_gpc') == 1 and $_COOKIE = s2_stripslashes_deep($_COOKIE); if (isset($_POST)) { if (ini_get('magic_quotes_gpc') == 1) { if (function_exists('s2_stripslashes_deep')) { $params['form'] = s2_stripslashes_deep($_POST); } else { $params['form'] = stripslashes_deep($_POST); } } else { $params['form'] = $_POST; } if (isset($params['form']['_method'])) { if (isset($_SERVER) && !empty($_SERVER)) { $_SERVER['REQUEST_METHOD'] = $params['form']['_method']; } else { $_ENV['REQUEST_METHOD'] = $params['form']['_method']; } unset($params['form']['_method']); } } if (isset($params['form']['data'])) { $params['data'] = Sanitize::stripEscape($params['form']['data']); unset($params['form']['data']); } if (isset($_GET)) { if (ini_get('magic_quotes_gpc') == 1) { $url = s2_stripslashes_deep($_GET); } else { $url = $_GET; } if (isset($params['url'])) { $params['url'] = array_merge($params['url'], $url); } else { $params['url'] = $url; } } foreach ($_FILES as $name => $data) { if ($name != 'data') { $params['form'][$name] = $data; } } if (isset($_FILES['data'])) { foreach ($_FILES['data'] as $key => $data) { foreach ($data as $model => $fields) { foreach ($fields as $field => $value) { $params['data'][$model][$field][$key] = $value; } } } } if (isset($params['data']['controller'])) { $params['controller'] = Sanitize::getString($params['data'], 'controller'); $params['action'] = Sanitize::getString($params['data'], 'action'); } $Router =& S2Router::getInstance(); $Router->app = $this->app; $params = S2Router::parse($params); foreach ($params['url'] as $key => $value) { if ($key != 'url') { $params[$key] = $value; } } return $params; }
function sefUrlEncode($text, $level = 0, $and_replace = 'and') { $_this =& S2Router::getInstance(); if (isset($_this->__translit[$text])) { return $_this->__translit[$text]; } $text = str_replace(array('-', '&'), array(' ', $and_replace), $text); $translitText = cmsFramework::UrlTransliterate(trim($text)); $_this->__translit[$text] = $translitText; return $translitText; }
function sefUrlEncode($text, $level = 0, $and_replace = 'and') { $_this =& S2Router::getInstance(); if (isset($_this->__translit[$text])) { return $_this->__translit[$text]; } $translitText = str_replace(array('-', '&'), array(' ', $and_replace), $text); switch ($level) { case 0: case 1: $translitText = htmlentities(utf8_decode($translitText)); $translitText = preg_replace(array('/ß/', '/&(..)lig;/', '/&([aouAOU])uml;/', '/&(.)[^;]*;/'), array('ss', "\$1", "\$1" . 'e', "\$1"), $translitText); // remove any duplicate whitespace, and ensure characters are alphanumeric $translitText = preg_replace(array('/\\s+/'), array('-'), $translitText); $translitText = preg_replace(array('/[^A-Za-z0-9\\-]/'), array(''), $translitText); break; case 2: App::import('Lib', 'utf8_to_ascii', $this->app); $translitText = utf8_to_ascii($translitText, ''); break; } $_this->__translit[$text] = $translitText; return $translitText; }