Widgets

Widgets are reusable building blocks on client-side (containing JavaScript, HTML and CSS). They are used to create complex and configurable user interface elements in views.

For example, a Progress widget and DatePicker widget can create a progress bar and stylist date picker in your application.


# Using Widgets

Widgets are majorly used in views. To call a widget you can call,


yii\base\Widget::widget()

This method takes a configuration array for initializing the widget.

For example, the following code inserts a date picker widget configured to use Russian language.


<?php
use yii\jui\DatePicker;
?>
<?= DatePicker::widget([
    'model' => $model,
    'attribute' => 'from_date',
    'language' => 'ru',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]) 
?>

Example

In this example, we'll use progress widget.

Step 1 Create an action actionWidget() in the SiteController.php file in the frontend directory.


public function actionWidget() 
    { 
   return $this->render('widget'); 
    }

Look at the above code, we are rendering to the widget page in view folder.

Step 2 Create a page widget.php in the views/site folder in the frontend directory.


<?php 
   use yii\bootstrap\Progress; 
?> 
<?= Progress::widget(['percent' => 99, 'label' => 'Loading 99%']) ?>

Step 3 Run it on the browser with the URL,

http://localhost/wid/frontend/web/index.php?r=site/widget

YII Widgets 1
download this example