Zum Inhalt springen

Probleme nach Update auf 4.4.4

Erstellt am 23. November 2010 · 1 Antwort · letzte Antwort am 23. November 2010

Tags: felogin, PHP, Frage

Norc ·

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?

Norc ·

Habs selbst hinbekommen.
Habe einfach die felogin_pi1 mit XCLASS Erweitert und dort bloß 2 neue Mehtoden eingeführt, mit denen ich auf die Variable zugreifen kann.
Hier mein entschlakter Code "class.ux_tx_felogin_pi1.php":

<?php
class ux_tx_felogin_pi1 extends tx_felogin_pi1 { 
  public function change_redirectUrl($url) {
    $this->redirectUrl = $url;
  }
  public function show_redirectUrl() {
    return $this->redirectUrl;
  }
}
?>