Как я могу предотвратить использование формы входа в упомянутый плагин по умолчанию? Мне известно о этом вопросе , но этот ответ мне не подходит. Для начала, в каталоге модулей нет модуля входа, вероятно, плагины обрабатывают его по-другому, я не знаю. Просто изучаю Symfony. Заранее спасибо :)
отключить макет для sfDoctrineGuardPlugin в Symfony
Ответы (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".
Надеюсь, это поможет.
На данный момент невозможно установить собственный макет для некоторого действия 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);
}
}