Hallo,
ich habe ein Problem mit einer meiner Extensions, seit einem Update von 4.2.X auf 4.4.X, denn die sysext felogin wurde verändert.
Vorher:
class tx_felogin_pi1 extends tslib_pibase {
var $prefixId = 'tx_felogin_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.tx_felogin_pi1.php'; // Path to this script relative to the extension dir.
var $extKey = 'felogin'; // The extension key.
var $pi_checkCHash = true;
var $userIsLoggedIn; // Is user logged in?
var $template;
var $uploadDir;
var $redirectUrl;
[...]
Und jetzt:
#
class tx_felogin_pi1 extends tslib_pibase {
#
var $prefixId = 'tx_felogin_pi1'; // Same as class name
#
var $scriptRelPath = 'pi1/class.tx_felogin_pi1.php'; // Path to this script relative to the extension dir.
#
var $extKey = 'felogin'; // The extension key.
#
public $pi_checkCHash = false;
#
public $pi_USER_INT_obj = true;
#
#
protected $userIsLoggedIn; // Is user logged in?
#
protected $template; // holds the template for FE rendering
#
protected $uploadDir; // upload dir, used for flexform template files
#
protected $redirectUrl; // URL for the redirect
#
protected $noRedirect = false; // flag for disable the redirect
#
protected $logintype; // logintype (given as GPvar), possible: login, logout
Mein Problem ist, das die Variable $redirectUrl nun protected ist, ich aber den hook etwas weiter unten nutze, um nach einem erfolgreichen Login die redirectUrl zu ändern.
in meinem Hook:
$reference->redirectUrl = $TSLIB_Obj->getTypoLink_URL($zePID, array(), '');
Nun habe ich aber dank proteced keinen Zugriff mehr auf diese Variable.
Meine Idee war zunächst die felogin durch eine XCLASS-Datei zu ersetzen, und dort aus protected wieder eine öffentliche Variable zu machen.
Bisher klappt es nicht, vllt. verstehe ich aber auch das Konzept der XCLASSES falsch. Denn soweit ich es verstanden hatte, wird durch XCLASS die Originaldatei "ersetzt", sprich es wird überall meine xclassDatei statt der originalen verwendet. Ist das so richtig?
Leider gibt es in der felogin keine Methode zum ändern der redirectUrl, was meine zweite Idee wäre, diese per XCLASS hinzuzufügen, und in meinem Hook die Methode aufzurufen.
Oder sehe ich den Wald vor lauter Bäumen nicht? Gibt es irgendeine Möglichkeit einfach die redirecturl in bestimmten Situationen umzubiegen, ohne Typo3 kaputtpfuschen zu müssen?