Example #1
0
function shRawUrlDecodeDeep($data)
{
    if (is_array($data)) {
        foreach ($data as $key => $element) {
            $data[$key] = shRawUrlDecodeDeep($element);
        }
        return $data;
    } else {
        return rawurldecode($data);
    }
}
Example #2
0
     break;
 case "":
     JError::RaiseError(500, COM_SH404SEF_STRANGE . " URI->path=" . $shPageInfo->URI->path . ":<br />" . basename(__FILE__) . "-" . __LINE__);
 default:
     // sanity check ok so process URI
     if (!empty($shPageInfo->URI->path)) {
         $shPageInfo->URI->path = shUrlDecode($shPageInfo->URI->path);
         _log('URL decoding of URI->path');
     }
     if (count($shPageInfo->URI->querystring) > 0) {
         foreach ($shPageInfo->URI->querystring as $key => $value) {
             $shPageInfo->URI->querystring[$key] = shRawUrlDecodeDeep($value);
         }
     }
     if (!empty($shPageInfo->URI->anchor)) {
         $shPageInfo->URI->anchor = shRawUrlDecodeDeep($shPageInfo->URI->anchor);
     }
     //}
     // V 1.2.4.t 301 redirect if Virtuemart cookie check. This has to be from a pre-existing link in Search engine index
     shCheckVMCookieRedirect();
     $path = preg_replace("/^" . preg_quote($shPageInfo->base, "/") . "/", "", JString::ltrim($shPageInfo->shCurrentPagePath, '/'));
     $path_array = explode("/", $path);
     $path_array = array_values($path_array);
     _log('Extracted path array : ', $path_array);
     $ext = getExt($path_array);
     $sef_ext_class = "sef_" . $ext['name'];
     // V 1.2.4.p if other than J! SEF, then use sh404SEF to decode
     if ($sef_ext_class != 'sef_content' && $sef_ext_class != 'sef_component') {
         $sef_ext_class = 'sef_404';
         $ext['path'] = sh404SEF_FRONT_ABS_PATH . 'sef_ext.php';
         $ext['name'] = '404';