отключить макет для sfDoctrineGuardPlugin в Symfony

Как я могу предотвратить использование формы входа в упомянутый плагин по умолчанию? Мне известно о этом вопросе , но этот ответ мне не подходит. Для начала, в каталоге модулей нет модуля входа, вероятно, плагины обрабатывают его по-другому, я не знаю. Просто изучаю Symfony. Заранее спасибо :)


person Sejanus    schedule 02.03.2010    source источник


Ответы (2)


Если вы просто хотите установить другой макет, вам нужно добавить модуль (просто создайте его вручную) под названием «sfGuardAuth». Для этого внутри каталога / config / измените макет в view.yml, как и для любого другого модуля. Это объясняется в:

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

... в разделе «Настроить действия модуля sfGuardAuth».

Однако, если вы хотите «встроить» свою форму входа в систему на другой существующей странице, вы можете превратить логин в компонент - это означает, что он использует существующий макет страницы, на которой происходит.

Действие компонента в настраиваемом модуле:

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

... который, как и все компоненты, использует партиал в качестве представления. У партиала теперь есть доступ к $ form, как к стандартной странице входа. Партиал для этого будет называться "_signinLightbox".

Надеюсь, это поможет.

person Tom    schedule 02.03.2010

На данный момент невозможно установить собственный макет для некоторого действия sfGuardAuth с помощью настраиваемого view.yml.
Вот как я это сделал.
Это мой 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);
    }
}
person hanov.ruslan    schedule 17.08.2010