function shRawUrlDecodeDeep($data) { if (is_array($data)) { foreach ($data as $key => $element) { $data[$key] = shRawUrlDecodeDeep($element); } return $data; } else { return rawurldecode($data); } }
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';