Portal > Foren > PHP > PEAR, PECL und Frameworks > [ZendFramework] Weiterleiten aus einem Plugin
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 11.09.2007, 12:41 Nach oben    #1
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.182
Standard [ZendFramework] Weiterleiten aus einem Plugin

Joa,
ich steh gerade vor folgendem Problem ich hab ein Plugin geschrieben das für das Login in einem Backend zuständig sein soll, in der Bootstrap Datei übergebe ich das Plugin dem FrontController:

PHP-Code:
$frontController->registerPlugin(new Bcms_Plugin_Auth($controller->getRequest())); 
im Plugin selbst gehe ich über

PHP-Code:
public function routeStartup()
{

und will dort wenn festgestellt wurde, dass der User nicht eingeloggt ist zum Controller login und dessen Action login weiterleiten.

_forward() wie in einem Controller steht mir ja jetzt nicht zur Verfügung, wie leite ich jetzt die Anfrage an ein anderen Controller um ?

mfg
robo47
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 12:44 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Kannst du dort nicht auf _redirect() zugreifen? Bin mir da gerade nicht sicher. Dann könntest du ja die entsprechende Seite aufrufen.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 13:05 Nach oben    #3
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.182
Standard

_redirect ist ja ein Action_Helper und nicht das was ich suche (auch aus nem Plugin nicht erreichbar) , forward macht ja eben KEIN redirect, sondern leitet ohne eine wirkliche Weiterleitung um, damit die URL erhalten bleibt, sprich dass ich bei einem gültigen login direkt noch die passende Url habe, so muss ich sie nicht noch irgendwie zwischenspeichern und nach einem gültigen login wieder weiterleiten.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 13:10 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Mir ist bewusst, wo der Unterschied zwischen _redirect() und _forward() liegt.

Wenn ein User aber nicht eingeloggt ist, wie willst du ihn dann ohne weitere Eingabe von Zugangsdaten einloggen?
Zitat:
und will dort wenn festgestellt wurde, dass der User nicht eingeloggt ist zum Controller login und dessen Action login weiterleiten.
Das habe ich nicht verstanden.

Okay, ist nun etwas an der Fragestellung vorbei, aber nun gut. Vielleicht gehst du ja auch von der falschen Seite an das Problem heran.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 13:21 Nach oben    #5
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.182
Standard

indem ich durch _forward (bzw. eine andere methode das zu machen) unter der Url die aufgerufen wird dann das loginController::loginAction aufrufe, das gibt mir ein Formular aus und als action der Form gebe ich da wieder die aktuelle URL an, da das plugin ja JEDE anfrage abfangen kann, wenn die via post geschickten daten okay sind, lässt es ganz einfach weiterlaufen und über den Router wird dann die passende Seite ausgegeben, sprich auch durch abschicken des Formulars, ändere ich die URL nicht.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 13:25 Nach oben    #6
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
Standard

Die Methode preDispatch ist doch besser geeignet.

FK_Plugin_Auth
PHP-Code:
class FK_Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
    
/**
     * 
     *
     * @var Zend_Auth
     */
    
protected $_auth;

    
/**
     * 
     *
     * @var FK_Plugin_Auth_Config
     */
    
protected $_authConfig;

    public function 
__construct(Zend_Auth $authFK_Plugin_Auth_Config $ac
    {
        
$this->_auth $auth;
        
$this->_authConfig $ac;
    }

    public function 
preDispatch(Zend_Controller_Request_Abstract $request)
    {
        if (
$this->_auth->hasIdentity() === false) {
            
$request->setControllerName($this->_authConfig->getAuthController());
            
$request->setActionName($this->_authConfig->getAuthAction());
        }
    }

FK_Plugin_Auth_Config
PHP-Code:
class FK_Plugin_Auth_Config
{
    private 
$_authController null;
    private 
$_authAction null;

    public function 
__construct($authController$authAction)
    {
        
$this->setAuthController($authController);
        
$this->setAuthAction($authAction);
    }
    public function 
getAuthController()
    {
        return 
$this->_authController;
    }
    public function 
getAuthAction()
    {
        return 
$this->_authAction;
    }
    public function 
setAuthController($v)
    {
        
$this->_authController $v;
    }
    public function 
setAuthAction($v)
    {
        
$this->_authAction $v;
    }

Der Einsatz:
PHP-Code:
//Einstellungen fuer das Auth Plugin
    
require_once 'FK/Plugin/Auth.php';
    
$fkAuthPluginConfig = new FK_Plugin_Auth_Config(
        
$fkBaseConfig->auth->login->controller$fkBaseConfig->auth->login->action);
    
$fkAuthPlugin = new FK_Plugin_Auth(Zend_Auth::getInstance(), $fkAuthPluginConfig);

//....

Zend_Controller_Front::getInstance()->registerPlugin($fkAuthPlugin); 
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)
dejan_spasic ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 13:45 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Ah, nu habe ich erst verstanden, was du eigentlich machen willst. *an den Kopf klatsch*

Okay, helfen hätt ich dir nun nicht können, aber vielleicht hilft ja Dejans Code.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2007, 16:29 Nach oben    #8
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.182
Standard

Jow, Dejans Code-Beispiel hat mir sehr geholfen, hab es jetzt umgesetzt und es funktioniert perfekt
Wieder ein Stückchen weitergekommen und wieder ein Stückchen mehr über das Zend Framework gelernt und weis wie man mit Plugins arbeitet

mfg
robo47
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2007, 11:21 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hab gestern noch mal bisschen gelesen und danke auch nochmal recht herzlich.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eclipse Plugin - Search Preference Page Ben Eclipse 5 06.02.2007 16:20
Notepad++ PlugIn Function List ChiChi Tools, Server, Betriebssysteme 3 03.09.2006 15:33
[Platoons plugin engine] libraries beny_mcde Allgemeine Java-Programmierung 6 28.06.2006 14:03
plugin engine howto beny_mcde Allgemeine Java-Programmierung 8 29.05.2006 23:16
PlugIn für grafische Oberflächen zu Eclipse pixel Eclipse 2 29.04.2005 20:59


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:07 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44