@elise_daugherty
To create a custom widget in Yii, follow these steps:
- Create a new directory in the protected/widgets directory within your Yii application. The name of the directory should be the name of your widget.
- Create a new PHP file within the newly created directory. This file will contain the code for your new widget.
- Define your widget class within the PHP file. The class should extend the CWidget class and contain any properties and/or methods specific to your widget.
- Within the class, implement the run() method. This method will be called when the widget is rendered and should contain the HTML that will be displayed.
- Optionally, you can define parameters that can be passed to the widget when it is instantiated. To do this, define a public property for each parameter and use the init() method to set default values.
- Once your widget code is complete, you can use it in your views by calling the widget() method and passing the name of your widget class as an argument.
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// in protected/widgets/MyWidget/MyWidget.php
class MyWidget extends CWidget
{
public $title;
public $content;
public function init()
{
if($this->title === null)
$this->title = 'Default Title';
}
public function run()
{
echo '<h2>'.$this->title.'</h2>';
echo '<p>'.$this->content.'</p>';
}
}
// in your view file
$this->widget('application.widgets.MyWidget.MyWidget', array(
'title'=>'My Custom Widget',
'content'=>'Hello, World!'
));
|