yii-widget-factory Widget factory (Π€Π°Π±Ρ€ΠΈΠΊΠ° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²)

yii-widget-factory ΒΆ

  1. Установка
  2. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹
  3. РСшСниС
  4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

https://github.com/petrgrishin/yii-widget-factory/

Π€Π°Π±Ρ€ΠΈΠΊΠ° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Yiiframework

Установка ΒΆ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² composer.json:

{
    "require": {
        "petrgrishin/yii-widget-factory": "dev-master"
    }
}

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΒΆ

НСобходимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ зависимости ΠΎΡ‚ модуля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π½Π°Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ модуля.

РСшСниС ¢

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ созданиС Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ знаниями располоТСными Π² Π½Π΅ΠΌ. Для использования Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΒΆ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΒΆ

Класс модуля. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π·Π½Π°Π½ΠΈΠ΅ΠΌ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° listUrl) ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ comments/list, располоТСном Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅.

use \PetrGrishin\WidgetFactory\WidgetFactory;

class CommentsModule extends CWebModule {
    public function getCommentsWidgetFactory() {
        if (empty($this->_commentsWidgetFactory)) {
            $this->_commentsWidgetFactory = new WidgetFactory();
            $this->_commentsWidgetFactory
                ->setClassName(Widgets\CommentsWidget::className())
                ->setParams(array(
                    'listUrl' => $this->createModuleUrlBuilder('comments/list'),
                ));
        }
        return $this->_commentsWidgetFactory;
    }
}
ОсновноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΒΆ

Класс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°

class SiteController extends CController {
    public function actionDetail() {
        $this->render('detail', array(
            'commentsWidgetFactory' => $this->getCommentsWidgetFactory(),
        ));
    }
    
    /**
     * @return \PetrGrishin\WidgetFactory\WidgetFactory
     */
    protected function getCommentsWidgetFactory() {
        return $this->getCommentsModule()->getCommentsWidgetFactory()
            ->setView($this);
    }
    
    /**
     * @return CommentsModule
     */
    protected function getCommentsModule() {
        return Yii::app()->getModule('comments');
    }
}

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ созданиС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π² Π½Π΅ΠΌ

$commentsWidget = $commentsWidgetFactory->createInstance(array('param' => 'value'));
$commentsWidget->run();
1 0
1 follower
125 downloads
Yii Version: 1.1
License: MIT
Category: User Interface
Developed by: Petr.Grishin Petr.Grishin
Created on: May 21, 2014
Last updated: 11 years ago

Downloads

show all

Related Extensions