2011-02-08 1 views
1

기존 로그인 작업보기에서 위젯을 만드는 방법은 무엇입니까? 이 나는 ​​현재 사이트의 컨트롤러 actinLogin 내 login.php보기 파일() 나는 네비게이션 바에서 기본 로그인 링크를 클릭하면기존 로그인 액션 뷰를 기반으로 Yii에서 위젯을 만드는 방법은 무엇입니까?

<div id="login-wrapper"> 
<div class="login-container"> 
    <?php $form=$this->beginWidget('CActiveForm', array('id'=>'login-form','enableAjaxValidation'=>true,)); ?> 
      <div class="login-input"> 
      <p> 
       <?php echo $form->labelEx($model,'username'); ?> 
       <?php echo $form->textField($model,'username',array('placeholder'=>'username')); ?> 
      </p> 
      <p> 
       <?php echo $form->labelEx($model,'password'); ?> 
       <?php echo $form->passwordField($model,'password',array('placeholder'=>'password')); ?> 
      </p> 
      <div id="bmenu"> 
       <ul class="menu"> 
        <li class="register"><?php echo CHtml::link("Registration", array('wsmembers/register'));?></li> 
        <li class="login"><?php echo CHtml::submitButton('Login',array('id'=>'login_button')); ?></li> 
       </ul> 
      </div> 
     </div> 
    <?php $this->endWidget(); ?> 
</div><!-- .login-container --> 
<div class="login-bg-bottom"></div> 

, 즉 그 코드 위의 유일한 시간에 무엇을 가지고 페이지의 오른쪽 상단 모서리에있는 로그인 상자를 보여줍니다

그러나 문제는 로그인 상자가 홈페이지에 있어야하며 navbar에서 로그인 링크를 클릭하지 않고 이미 에 있어야합니다. 그럼 내가 어떻게 할거 니? 이것은 main.php 레이아웃 파일과 관련이 있습니다.

답변

2

실제로.

정의한 내용은 콘텐츠에 사용되는보기입니다. 링크를 클릭하면 로그인 액션이 실행되고 양식이 표시됩니다.

항상 표시하려면,보기에서 Yii :: app() -> controller-> renderPartial을 수행하십시오. 주 레이아웃이 컨트롤러에 의해 실행되지 않기 때문에 일반적으로하는 것처럼 $ this-> renderPartial이 될 수 없습니다.

Yii::app()->controller->renderPartial('userViews.site.login'); 

또는 그런 일 : 나는 보통 보호를 가리키는 "userViews"라는 별명을 정의/전망은 그래서 할 수 있습니다.

Yii::setPathOfAlias('userViews', dirname(__FILE__) . '/../../protected/views'); 

것은 이것은 당신의 의견은 보호 뷰에서 참으로 가정한다 :이 도움이 :) 당신은 당신의 설정이 추가 할 수 있습니다 별칭에 관해서는

바랍니다.

+0

주 설정의 어느 부분에 setPathOfAlias를 두어야합니까?, 구성 요소 배열 안에 있습니까? 또는 구성 요소 배열 외부에?, 또한 기본 구성 배열을 반환합니다, 그래서 내가 어떻게 배열 자체에 삽입됩니다? 그 열쇠는 무엇입니까? – sasori

+0

반환 배열()이 시작되기 전에 그것들을 정의합니다. 코드 (실행되는 부분)의 어느 부분 에나 배치 할 수 있지만 구성 파일에 이들을 유지하는 것이 좋습니다. – Blizz

+0

하지만 어떻게? 열쇠 없이도 거기에 추가 할 수 있습니까? 예 : 반환 배열 (Yii :: setPathOfAlias ​​('userViews', dirname (__ FILE__). '/../../protected/views'), '키'=> '값', '키'=> '값' ? – sasori