Мои полезные виджеты для форм в Yii2

11 декабря, 2014
Метки: ,

Если какое-то действие нужно повторять из проекта в проекте, изо дня в день, то стоит задуматься о необходимости его автоматизировать. Благо в Yii2 возможностей для этого уйма.
Сегодня буду хвастаться своими виджетами, которые пригодятся абсолютно в любом проекте.

Виджет генерирующий select

Все что нужно сделать это прикрепить к полю формы виджет и указать на основе какой модели должен генерироваться dropDownList. Виджет сам все достанет и сформирует dropDownList. Из плюшек: возможность задать доп условия, какие именно данные из модели должны отобразиться в select. Виджет умеет работать как с ActiveForm так и без него, может генерировать ключи на основе составного первичного ключа модели.
Примеры:

use developeruz\drop_down\DropDown;

    echo DropDown::widget(
            ['name' => 'article',
             'itemsModel' => Article::className(),
             'itemsLabelAttribute' => 'title',
            ]
        );
use developeruz\drop_down\DropDown;

    <?= $form->field($model, 'article_id')->widget(DropDown::className(),
        ['itemsModel' => Article::className(),
        'itemsLabelAttribute' => 'title',
        ]); ?>

Скачать можно с github. С радостью выслушаю комментарии и предложения.

Виджет генерирующий текстовое поле с редактором TinyMce

Какой сайт сегодня может обойтись без визуальных текстовых редакторов? Благодаря виджету, подключить TinyMce к любому полю теперь проще простого.

use developeruz\tinyMce\TinyMce;

    echo TinyMce::widget( [
            'name' => 'content',
            'options' => ['rows' => 6], // параметры передаваемые в Html::textarea
            'clientOptions' => [        // параметры передаваемые в tinymce.init()
                'language' => 'ru',
            ],
        ]);
    ?>
use developeruz\tinyMce\TinyMce;

    echo $form->field($model, 'content')->widget(TinyMce::className(), [
        'options' => ['rows' => 6], // параметры передаваемые в Html::textarea
        'clientOptions' => [        // параметры передаваемые в tinymce.init()
            'language' => 'ru',
        ],
    ]);

Скачать можно с github. С радостью выслушаю комментарии и предложения.

В планах создание Input виджета для загрузки файлов и картинок. А каких виджетов не хватает именно вам?


Метки: ,

Оставить комментарий

1 комментарий »

    Денис

    Привет. Спасибо за эту штуку.

    Я недавно начал учить yii2.

    Сначала не работало.
    Написал use developeruz\tinymce\TinyMce;
    вместо use developeruz\tinyMce\TinyMce;

    Заработало. Дело в регистре было.


Оставить комментарий:









Копирование материалов разрешено при наличии активной ссылки на источник