Yii2

Як встановити параметри за замовчуванням для віджету в Yii2
Як встановити параметри за замовчуванням для віджету в Yii2

Щоб встановити параметри за замовчуванням для віджета у Yii2, потрібно використати механізм впровадження залежностей (dependency injection).

Приклад з DatePicker:

Yii::$container -> set('yiijuiDatePicker', [
	'language' => 'en-US',
]);

Першим параметром у set вказується клас, а другим — необхідні параметри для налаштування. Таким чином, ми можемо заздалегідь правильно налаштувати наш віджет.

Свої Grid колонки у фреймворці Yii2
Свої Grid колонки у фреймворці Yii2

Продовжую поповнювати свій багаж знань у Yii2.

Про власні колонки в Grid чув, звісно, але на практиці не використовував. Але коли дублювання коду дійшло до 5 випадків у різних місцях — задумався: чому б не спробувати? Виявилось доволі зручно і гнучко!

Нижче наведено повний листинг коду прикладу колонки, що наслідується від DataColumn:

namespace backendgrid;

use Yii;
use yiihelpersHtml;
use yiigridDataColumn;

class ActiveColumn extends DataColumn
{
	public $headerOptions = [
		'style' => 'width: 80px;'
	];
	
	public $contentOptions = [
		'class' => 'text-center'
	];
	
	public $attribute = 'is_active';
	
    /**
     * @inheritdoc
     */
    protected function renderDataCellContent($a)
    {
		if($a['is_active'] == 1)
		{
			return Html::a('<span class="glyphicon glyphicon-ok-circle"></span>', [
					'active', 'id' => $a['id'], 'is_active' => 0], [
					'title' => Yii::t('app', 'Unactivate this'),
					'data-pjax' => '0',
				]
			);
		}
		return Html::a('<span class="glyphicon glyphicon-lock"></span>', [
				'active', 'id' => $a['id'], 'is_active' => 1], [
				'title' => Yii::t('app', 'Activate this'),
				'data-pjax' => '0',
			]
		);
    }
}

читати далі...

Як у Yii2 написати свій екшин (action) і повторно використовувати його у різних контролерах
Як у Yii2 написати свій екшин (action) і повторно використовувати його у різних контролерах

Перш ніж розробляти якийсь більш-менш великий продукт на фреймворку, я б порадив глибоко вивчити його можливості.

Сьогодні мова піде про екшени. Але не ті, що "жорстко" прописані в наших контролерах. А ті, які можна використовувати в різних контролерах, підключаючи через метод контролера actions():

public function actions()
{
	$actions = parent::actions();
	
	$actions['aj-avatar-upload'] = [
		'class' => 'commonactionuserAjaxAvatarUploadAction',
	];
	$actions['aj-avatar-delete'] = [
		'class' => 'commonactionuserAjaxAvatarDeleteAction',
	];
	
	return $actions;
}

З подібною «дією» ми стикаємось ще на самому початку свого шляху, відкриваючи файл конфігурації, де вказується action помилки:

'errorHandler' => [
	'errorAction' => 'site/error',
],

читати далі...