2010-03-02 3 views
1

Comment puis-je empêcher le formulaire de connexion du plugin mentionné d'utiliser la mise en page par défaut? Je suis au courant de this question, mais cette réponse ne fonctionne pas pour moi. Pour les débutants, il n'y a pas de module de connexion dans les modules dir, probablement les plugins le gèrent de manière différente, je ne sais pas. J'apprends juste symfony. Merci d'avance :)Désactiver la mise en page pour sfDoctrineGuardPlugin dans Symfony

Répondre

1

Si vous voulez juste définir une mise en page différente, vous devez ajouter un module (il suffit de le créer manuellement) appelé "sfGuardAuth". Dans le répertoire/config/pour cela, modifiez la disposition dans view.yml comme pour tout autre module. Ceci est expliqué:

http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin/4_0_0

... dans la section "actions du module Personnaliser sfGuardAuth".

Cependant, si vous voulez « intégrer » votre formulaire de connexion sur une autre page existante, vous pouvez transformer la connexion en un composant -. Ce qui signifie qu'il utilise la configuration actuelle de la page, il se produit dans

Component action dans un module personnalisé:

public function executeSigninLightbox(sfWebRequest $request) 
{ 
    $class = sfConfig::get('app_sf_guard_plugin_signin_form', 'sfGuardFormSignin'); 
    $this->form = new $class(); 
} 

... qui, comme tous les composants utilise une partie en son point de vue. Le partiel a maintenant accès à $ form comme une page de connexion standard. Le partiel pour cela s'appellerait "_signinLightbox".

Espérons que ça aide.

1

Pour l'instant, il n'est pas possible de définir la disposition personnalisée pour certaines actions sfGuardAuth via la personnalisation view.yml.
Voici comment je l'ai fait.
Ceci est mon apps/backend/modules/sfGuardAuth/actions/actions.class.php:

<?php 

require_once(sfConfig::get('sf_plugins_dir').'/sfDoctrineGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php'); 

class sfGuardAuthActions extends BasesfGuardAuthActions 
{ 
    public function preExecute() 
    { 
     $layout = $this->getActionName() == sfConfig::get('sf_login_action') ? 'sfGuardLayout' : $this->getLayout(); 
     $this->setLayout($layout); 
    } 
} 
Questions connexes