Changes
                            
    Title
    unchanged
    How to use a Widget as an Action Provider
    Category
    unchanged
    How-tos
    Yii version
    unchanged
    
    Tags
    unchanged
    Widgets, CAction
    Content
    changed
    ##What is an Action Provider Widget?
As written on the [API docs](http://www.yiiframework.com/doc/api/1.1/CWidget#actions-detail "actions"): An Action Provider Widget is a widget that has declared several actions by using its '**public static function actions()**'. After, a Controller can easily import all its declared actions on its '**public function actions()**'.
##Step 1: Create the Action Class
For the sake of the article we 
need to creat
inge an action named **getData** that 
is supposed to be shared among the whole project and saved with the name **getData.php** on our **protected/components/actions** folder.
```php[...]
```php
index.php?r=site/test.GetData
```[...]
// we point to the location where the provider
      // is.
      'test.'=>array(
 
         'class'=>'application.components.testProvider',
         
      'getData'=>array(
                // property1 must be a public variable
            
    // on getData CAction class
           
      'property1'=>'value1
',
 
           ),
 
        ),
 
    );
 
}
 
```
 
 
##Access Rules
 
Also, if you have implemented the accessRules method inside the controller, then you'll need to make sure that you _allow_ the action provider in the accessRules method, otherwise you will receive 404 error when trying to view the page. Something like this will do the trick:
 
 
 
```php 
public function accessRules()
 
    {
 
        return array(
 
            array('allow',
 
                'actions' => array('test.getData'),
 
                'users' => array('*'),
 
            ),
 
            array('deny',
 
                ),
 
'users' => array('*'),
 
            ),
 
        );
    }
 
```