[TYPO3-german] Newloginbox - Redirect

Peter Linzenkirchner info at lisardo.de
Tue Apr 1 00:39:30 CEST 2008


Hallo,
antworte ich mir mal selbst - ich habe ziemlich lange rumprobiert, es  
ist kompliziert aber möglich:

newloginbox aktzeptiert einen URL-Parameter namens redirect_url, wenn  
die Seite mit der Loginbox aufgerufen wird, allerdings nur dann, wenn  
keine Referrer-Domains defniert wurden. Dieser Parameter überschreibt  
den Referrer.

Allerdings muss dieser Parameter auf bestimmte Art angehängt werden:
- als letzter (sonst funktioniert der Link nicht)
- nicht im Namensraum der Extension sondern direkt

Also geht das:
http://www.111111.de/index.php?id=11&redirect_url=index.php?id=12

aber das nicht:
http://www.111111.de/index.php? 
id=11&tx_extension_pi1[redirect_url]=index.php?id=12

Das ist unangenehm, da man die Typolink-Funktionen nicht mehr richtig  
nutzen kann.

Aber es geht noch weiter. Wenn man mehr als einen Parameter übergeben  
muss, so stellt sich heraus, dass die redirect_url ab dem ersten &  
abgeschnitten wird. Das hier:

http://www.111111.de/index.php? 
id=11&tx_extension_pi1[redirect_url]=index.php?id=12&uid=23

ergibt als Redirect nur index.php?id=12.

Sehr schlecht. Aber man kann einen Trick benutzen, nämlich die &- 
Zeichen durch ihr ASCII-Äquivalent ersetzen. Das geht:

http://www.111111.de/index.php? 
id=11&tx_extension_pi1[redirect_url]=index.php?id=12%26uid=23

Da ich das Login auf der Seite brauche, auf der sich die Besucher  
gerade befinden und dabei einen langen Suchstring übergeben muss wird  
die Sache kompliziert. Ich mache es jetzt etwa so:

# Das hier liefert eine Variante von $this->piVars, ergänzt um die uid  
und reduziert um einige andere:
$aktPiVars = $this->p_aktPiVars(array('uid'=>$value['uid']));

# die URL wie üblich:
$url = $this->pi_linkTP_keepPIvars_url($aktPiVars, 1, 1, $this- 
 >conf['pidSingle']);

# Redirect-Url:
$redirect_url = '&redirect_url=index.php?id='.$this->conf['pidSingle'];

# die & raus und um die $aktPiVars ergänzen
$redirect_url .= str_replace('&', '%26',  
t3lib_div::implodeArrayForUrl( 'tx_lisimmo_pi1',$aktPiVars,'',0,0) );

# die URL komplettieren	
$url .= $redirect_url;
	
# ins Array
$wrappedSubpartArray['###LINK_ITEM###'] = array("<a href=\"$url\">",  
"</a>");

Das funktioniert jetzt - aber was für ein Aufwand. Auf die Seite  
verweisen wirklich viele Links ... Wenn jemand was einfacheres weiß,  
wäre ich wirklich dankbar.

Viele Grüße
Peter






Am 31.03.2008 um 22:17 schrieb Peter Linzenkirchner:

> Hallo zusammen,
>
> die newloginbox macht Standardmäßig einen Redirect auf den Referrer -
> leider kann ich das gar nicht brauchen, da der Besucher nach dem
> Einloggen auf der Seite mit dem Login bleiben muss. Kann man das der
> Extension abgewöhnen?
>
> Danke
> Peter
>
> -- 
> -----------------------------------------------
> Lisardo Multimedia GmbH
> Herrenbachstraße 19, 86161 Augsburg
> Tel. ++49-821-150565, Fax ++49-821-150595
> http://www.lisardo.biz/
> info at lisardo.de
>
> Geschäftsführer: Peter Linzenkirchner
> Amtsgericht Augsburg, HRB 14435
> -----------------------------------------------
>
>
>
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>

-- 
-----------------------------------------------
Lisardo Multimedia GmbH
Herrenbachstraße 19, 86161 Augsburg
Tel. ++49-821-150565, Fax ++49-821-150595
http://www.lisardo.biz/
info at lisardo.de

Geschäftsführer: Peter Linzenkirchner
Amtsgericht Augsburg, HRB 14435
-----------------------------------------------





More information about the TYPO3-german mailing list