[TYPO3-german] RealURL: userFunc statt lookUpTable zum Wechseln der Tabelle

Hauke Hain newgrp at googlemail.com
Sun May 3 21:07:37 CEST 2009


Hallo David,

vielen Dank für deine schnelle Antwort.
Du hast mich auf die richtige Spur gebracht.
Aber $params ist kein String, sondern ein hochkomplexes Array.
$params enthält ein array, einen string und einen bool-wert:
decodeAlias (bool)
value (string)
pObj (tx_realurl - kein array)


$params['pObj'] enthält:

NA (string)
maxLookUpLgd (integer)
prefixEnablingSpURL (string - zB index.php)
decodeCacheTTL (int)
encodeCacheTTL(int)
pObj (tslib_fe) ->> extrem groß
extConf (array)
dirParts (array)
orig_paramKeyValues (array)
appendedSlash (boolean)
encodePageId (string)
speakingURIpath_procValue (string)
Und zuzm Schluss noch sehr viele realurl Methoden.

Diese Arrays scheinen mit interessant zu sein:
$params['pObj']->extConf (array)
 - enthält komplette realurl Konfiguration aus der localconf.php
    - in fixedPostVars auch meine UserFunc
$params['pObj']->dirParts (array)
 - 0 => de
 - 1 => seitentitel
$params['pObj']->orig_paramKeyValues (array)
 - id => 12
 - L => 0

$ref ist ebenfalls tx_realurl und somit identisch mit $params['pObj'].

Leider weiß ich hier nicht weiter.
Bei meiner Funktion habe ich jetzt ein if vorgebaut:
if ($params['value']) {
Wenn if nicht zutrifft wird nichts zurückgegeben (kein return, einfach gar 
nichts ausgeführt).

Dadurch werden wieder alle Links richtig erstellt.


Meine RealURL Konfiguration sieht so aus:
'fixedPostVars' => array(
    '_DEFAULT' => array (
    array(
     'GETvar'            => 'tx_myext_pi1[action]',
     'valueMap'          => array(
      'liste'          => 'list',
      'zeige'            => 'show',
      'neu'      => 'new',
      'bearbeiten'  => 'edit'
     )
    ),
    array(
     'GETvar'            => 'tx_myext_pi1[show]',
     'userFunc'          => 
'EXT:myext/res/php/class.realurl.php:&tx_myext_realurl->main'
    ),
    array(
     'GETvar'            => 'tx_myext_pi1[submitted]',
     'valueMap'          => array(
      'gesendet'        => '1'
     )
    )
   )
)

Vorhin wurden die realURL Links wie "bearbeiten" durch meine Funktion 
vekrüppelt zu "-", da kein value im $params stand. - Jetzt wird dies in dem 
Fall ja nicht ausgeführt, daher habe ich wieder solche Links.
Doch wenn ich auf den Link klicke habe ich wieder die gleiche Fehlermeldung:
Fatal error: Cannot use string offset as an array in
/var/www/virtual/htdocs/typo3_src-4.2.3/typo3/sysext/cms/tslib/class.tslib_pibase.php
on line 221

Dies tritt nur bei den URLs auf, die in der oben genannten Config erstellt 
wurden - auch für die von der userFunc (also ohne Ausnahme).
Alle anderen von RealURL produzierten Links, deren Konfiguration ich hier 
nicht geschrieben habe funktionieren.


=>
Jetzt ist mir nicht klar, welches array gemeint ist. Immer noch $params? Es 
wird von meiner Funktion ja nichts ausgeführt.

Ich hoffe jemand hatte die Muße all dies zu lesen und weiß Rat. Vielen Dank 
für deine Aufmerksamkeit!

Gruß, Hauke 



More information about the TYPO3-german mailing list