1) Create a folder with a meaningful name in “application/widgets”. here I use “phpcodez” .
Type the following commands from socialengine installation directory
cd application
mkdir phpcodez
2) Then create 3 files “Controller.php” ,”index.tpl” and ”manifest.php” in the new folder “phpcodez”
gedit Controller.php
gedit index.tpl
gedit manifest.php
As you know the socialengine follows MVC structure . So controller lies in “Controller.php”
and view lies in “index.tpl” . The file “manifest.php“ ,will tell the system that a new widget has been added .
3) Paste the below given code in “Controller.php”
<?php
class Widget_phpcodezController extends Engine_Content_Widget_Abstract {
public function indexAction() {
$this->view->title=’PHPCodez’;
}
}
?>
The “indexAction()” function will be invoked when the widget called .
So we must prepare the data to be passed to the view . Here variable are declared and initialized as follows
$this->view->VARIABLE_NAME .
4) Paste the below given code in “index.tpl”
<?php
echo $this->title;
?>
We can print the values of the variable as shown above .
5) Paste the below given code in “manifest.php”
<?php
return array(
‘package’ => array(
‘type’ => ‘widget’,
‘name’ => ‘phpcodez’,
‘version’ => ‘4.0.0’,
‘revision’ => ‘$Revision: 8822 $’,
‘path’ => ‘application/widgets/phpcodez’,
‘repository’ => ‘socialengine.net’,
‘title’ => ‘PHPCodez’,
‘description’ => ‘Displays a “powered by PHPCodez” link.’,
‘author’ => ‘Webligo Developments’,
‘directories’ => array(
‘application/widgets/phpcodez’,
),
),
// Backwards compatibility
‘type’ => ‘widget’,
‘name’ => ‘phpcodez’,
‘version’ => ‘4.0.0’,
‘revision’ => ‘$PHPCodez: 8822 $’,
‘title’ => ‘phpcodez’,
‘description’ => ‘Displays a “powered by PHPCodez” link.’,
‘author’ => ‘Webligo Developments’,
‘category’ => ‘Widgets’,
)
?>
It tells the system that a new widget has been added .
NOTE : If any database operation is required , create a model and let the controller interact with it .