№3 Dars — Shaxsiy widgetimizni yaratishning kichik ko`rinishi.

№3 Dars — Shaxsiy widgetimizni yaratishning kichik ko`rinishi.

№3 Dars - Shaxsiy widgetimizni yaratishning kichik ko`rinishi.

Bu bo`limda biz o`zimizning birinchi portletimizni ishlab chiqamiz. Foydalanuvchi uchun menu, qaysiki menu ro`yhatini chiqarish, faqat ruxsat berilgan foydalanuvchilar uchun ko`rinadi. Menu 4 elementni o`z ichiga oladi.

  • To`gri deb topilgan sharhlar: maqul deb topilgan yozuvlar ro`yhatini chiqaruvchi gipperhavola;
  • Yangi yozuv hosil qilish: sahifalardagi qaydlarni yaratadigan sahifasiga o`tuvchi gipperhavola;
  • Qaydlarni boshqarish: sahifalardagi qaydlarni boshqarish sahifasiga o`tuvchi gipperhavola ;
  • Sistemadan chiqish: tugma bosilganda joriy foydalanuvchi sistemadan chiqib ketadi;

UserMenu classini yaratish.

Foydalanuvchi menu sini portlet qismi ostida UserMenu class yaratamiz. Bu classni biz
/protected/components/UserMenu.php da saqlaymiz.

Yii::import(‘zii.widgets.CPortlet’);

class UserMenu extends CPortlet

{

public function init()

{

$this->title=CHtml::encode(Yii::app()->user->name);

parent::init();

}

protected function renderContent()

{

$this->render(‘userMenu’);

}

}

UserMenu classini CPortlet clasi vorisligi ostida yaratamiz, CPortlet zii kutubxonasidagi class. U init() va renderContent() larni CPortlet classida qayta aniqlaydi.

Birinchi navbatda foydalanuvchining nomini o`rnatadi menu tepasidagi titlega, keyin render buyrug`i orqali shu classning viewiga murojaat qiladi, ya`ni userMenu.

userMenu Viewini yaratish:

Biz hozir userMenu viewini yaratamiz va quyidagicha joyga joylaymiz.

/protected/components/views/userMenu.php

  • echo CHtml::link(

    ‘To`g`ri deb topilgan sharxlar’,

    array(‘comment/index’)) . ‘ (‘ .

    Comment::model()->pendingCommentCount . ‘)’;

    ?>

Ushbu view faylni components dagi papkani ichida view papka yaratib o`sha papkani ichida saqlash kerak bo`ladi. UserMenu Classi shundagina topib oladi.

UserMenu Portletidan foydalanish:

/protected/views/layouts/column2.php

Bu yerda mehmon bo`lsa UserMenu unga ko`rinmaydi. columns2 faylining sidebar qismiga joyladik, bizga endi bu menu o`ng tomonimizda ko`rinadi. Tayor dizayn ko`rinishida ko`rindai. Buning boisi CPortletda bir qancha stillar biriktirilgan ma`lum taglar uchun, o`sha taglar uchun maxsus o`zining qolipiga solmoqda. Bunda o`zingiz stillar berishingiz mumkin. Buning uchun

/protected/views/layouts/main.php

fayli ichiga o`zimizning css faylimizni chaqiramiz va taglarimizga classlar beramiz. Bu classlar umumiy yii classlari bilan ustma ust tushmasligi kerak. Endi biz yaratilgan menuga o`zimiz hohlagan stillarni berishimiz mumkin.

Yana bir kichik misol:

/protected/components/MyWidget.php


Yii::import(‘zii.widgets.CPortlet’);

class MyWidget extends CPortlet

{

public $testVar;

public $labels = array();

public function init()

{

parent::init();

$this->render(myWidget, array(

‘testVar’ => $this->testVar,

‘labels’ => $this->labels,

));

}

}

/protected/components/views/myWidget.php


echo ‘

‘.$testVar.’

‘; // tagga still berishning qo`pol usuli

echo ‘

‘; // agar class berishni hohlasangiz

echo ‘

    ‘;

    foreach($labels as $label)

    {

    echo ‘

  • ‘;

    echo $label;

    echo ‘

  • ‘;

    }

    echo ‘

‘;

echo ‘

‘;

?>

Widgetni ishlatish ko`rinishi.

$testVar = ‘Salom men h1 man’;

$label = array(‘qizil’, ‘sariq’, ‘yashil’);

$this->widget(MyWidget, array(‘testVar’=>$testVar, ‘labels’=>$label));

?>

Manba:

Web Dasturlash
№3 Dars — Shaxsiy widgetimizni yaratishning kichik ko`rinishi.