Wiget login form

wiget şeklinde login form yapmaya çalışıyorum ama bir türlü başarmadım.

demo kısmından loginForm model ve view kısımlarını alıyorum ama şu hataıy alıyorum.

2010/09/21 17:22:42 [error] [exception.CException] exception ‘CException’ with message ‘LoginForm does not have a method named “isAttributeRequired”.’ in public_html\framework\base\CComponent.php:266

Stack trace:

#0 [internal function]: CComponent->__call(‘isAttributeRequ…’, Array)

Sanırım CPortlet içerisine formModel fonksiyonları eklenmiyor. :)

bunu nasıl yaparım


Yii::import('zii.widgets.CPortlet');


class LoginForm extends CPortlet {

    public $model ;

    

    public function init() {

        $this->model= new LoginForm;

        parent::init();

    }


    protected function renderContent() {

        

        $this->render('_loginForm', array('model' => $this->model));

    }

}

Login formunu tamamen ayri bir widget olarak yaptiktan sonra, yarattigin CPortlet icine eklemeyi dene.

<?php $this->beginWidget(‘zii.widgets.CPortlet’, array(

     'title'=&gt;'Login Form',


       ));


        &#036;this-&gt;widget('LoginForm');

$this->endWidget(); ?>

Tamamen ayri bir widget yaratman gerekli.

Portlet ne işe yarıyor tam olarak ?

aslında basit bir işi var html taşıyıcı ( tuval gibi ) , template istediğin yerde çağıra biliyorsun

bir nevi word press widget gibi :)

inşallah anlatabildim

teşekkürler Cihan, peki widget ile aralarındaki fark widget html içerisindeki bir kısım, portlet ise htmlin kendisi gibi çalışılmasını sağlayan araç mı ? Garip sorularım için şimdiden özür dilerim :)

Benzer işlem aşağıdaki gibi de yapılabilir.




class MyLoginWidget extends CWidget

{


    public $model = NULL;

    

    public function init()

    {

        $this->model = new LoginForm;

    }


    public function run()

    {

        $this->render('login', array('model' => $this->model));

    }


}