代码之家  ›  专栏  ›  技术社区  ›  Sejanus

在Symfony中禁用sfDoctrineGuardPlugin的布局

  •  1
  • Sejanus  · 技术社区  · 14 年前

    我怎样才能防止插件的登录表单使用默认布局?我知道 this question ,但这个答案对我不适用。对于初学者来说,modules dir中没有signin模块,可能插件以不同的方式处理它,我不知道。只是学习symfony。提前感谢:)

    2 回复  |  直到 7 年前
        1
  •  1
  •   Tom    14 年前

    如果您只是想设置一个不同的布局,您需要添加一个名为“sfGuardAuth”的模块(只需手动创建)。在/config/目录中,更改view.yml中的布局,就像其他模块一样。具体解释如下:

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

    自定义模块中的组件操作:

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

    ... 它和所有组件一样使用分部作为其视图。partial现在可以像标准登录页一样访问$form。这一部分将被称为“\u signinLightbox”。

        2
  •  1
  •   TazGPL    12 年前

    目前,它不可能设置一些自定义布局 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);
        }
    }