Einzelnen Beitrag anzeigen
  #2  
Alt 29.05.06, 12:30
CodAv CodAv ist offline
Forum Newbie
 
Registriert seit: 05.01.06
Alter: 26
Beiträge: 22

Ok, hat sich erledigt. Habe das Problem dadurch gelöst, indem ich RealURL ein wenig umprogrammiert habe, so dass es nun den QUERY_STRING aus den dekodierten GET-Parametern rekonstruiert. Der neue QUERY_STRING enthält dann alle Parameter - sowohl die aus der Speaking URL als auch weitere übergebene Parameter, die nicht von RealURL gehandhabt werden - außer den "id="-Parameter, der aber eh via typolink gesetzt wird.

Wen es interessiert, hier der nötige PHP-Code für class.tx_realurl.php:

Die Funktion decodeSpURL_doDecode() folgendermaßen anpassen (Einfügen vor dem Kommentar "// cHash handling:":sad:

PHP-Code:
                        // Re-create QUERY_STRING from Get vars for use with typoLink()
                
$_SERVER['QUERY_STRING'] = $this->decodeSpURL_createQueryString($cachedInfo['GET_VARS']);[/b
PHP-Code:
        /**
         * Generates a parameter string from an array recursively
         *
         * @param       array           Array to generate strings from
         * @param       string          path to prepend to every parameter
         * @return      array           Array with parameter strings
         */
        
function decodeSpURL_createQueryStringParam($paramArr$prependString '') {
                if (!
is_array($paramArr))
                        return array(
$prependString.'='.$paramArr);

                if (
count($paramArr) == 0)
                        return array();

                
$paramList = array();
                foreach (
$paramArr as $var => $value) {
                        
$paramList array_merge($paramList$this->decodeSpURL_createQueryStringParam($value$prependString.'['.$var.']'));
                }

                return 
$paramList;
        }

        
/**
         * Re-creates QUERY_STRING for use with typoLink()
         *
         * @param       array           List of Get vars
         * @return      string          QUERY_STRING value
         */
        
function decodeSpURL_createQueryString($getVars)   {
                if (!
is_array($getVars) || count($getVars) == 0)
                        return 
'';

                
$parameters = array();
                foreach (
$getVars as $var => $value) {
                    
$parameters array_merge($parameters$this->decodeSpURL_createQueryStringParam($value$var));
                }

                if (!empty(
$_SERVER['QUERY_STRING']))
                    
array_push($parameters$_SERVER['QUERY_STRING']);

                return 
implode('&'$parameters); ;
        } 
Mit Zitat antworten