سؤال

كيف يمكنني منع نموذج تسجيل دخول المكون الإضافي المذكور من استخدام التخطيط الافتراضي؟ أنا على علم هذا السؤال, ، لكن هذه الإجابة لا تعمل بالنسبة لي. بالنسبة للمبتدئين ، لا توجد وحدة علامات في الوحدات النمطية ، وربما تعاملها المكونات الإضافية بطريقة مختلفة ، لا أعرف. مجرد تعلم symfony. شكرا لك مقدما :)

هل كانت مفيدة؟

المحلول

إذا كنت ترغب فقط في تعيين تصميم مختلف ، فأنت بحاجة إلى إضافة وحدة نمطية (فقط قم بإنشائها يدويًا) تسمى "Sfguardauth". داخل / config / directory لذلك ، قم بتغيير التصميم في العرض. تم شرح هذا في:

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();
}

... والتي تستخدم مثل جميع المكونات جزءًا من وجهة نظره. يحتوي الجزء الجزئي الآن على إمكانية الوصول إلى نموذج $ مثل صفحة تسجيل الدخول القياسية. سيتم تسمية جزئي لهذا "_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);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top