DDAutoFilter is a Yii extension to display auto-filters in a CGridView similar to MS Excel auto-filters.
It is currently working with Yii-bootstrap based Yii applications.
Screenshots ¶
See bitbucket wiki.
Installation ¶
Download or clone from bitbucket under protected/extensions/diggindata, so that you have a folder protected/extensions/diggindata/ddautofilter.
Setup ¶
Model Behavior ¶
In your model's behaviors method, add the DDAutoFilterSearchBehavior:
public function behaviors(){
    return array(
        ...
        'autoFilterSearchBehavior' => array(
            'class' => 'ext.diggindata.ddautofilter.DDAutoFilterSearchBehavior',
        ),
        ...
    );
}
Model / search Method ¶
In your CActiveReord model's search() method, for each column that shall be displayed 
using auto-filters, change the $criteria line.
// Replace:
$criteria->compare('title',$this->title,true);
// ... with:
$criteria->mergeWith($this->textSearchCriteria('title', $this->title));
For date columns, use:
$criteria->mergeWith($this->dateSearchCriteria('title', $this->title));
For timestamp columns, use:
$criteria->mergeWith($this->dateSearchCriteria('title', $this->title, 'U'));
Grid View ¶
Grid View Properties ¶
Add some code to the CGridView afterAjaxUpdate property:
<?php $this->widget('ext.bootstrap.widgets.TbGridView', array(
    'id'=>'your-model-grid', // see below
    ...
    'afterAjaxUpdate'=>'function(){jQuery("i.autofilter").click(showAutofilterDialog)}',
    ...
    )); ?>
Grid View Columns ¶
'columns' => array(
        ...
        array(
            'name'=>'level',
            'class'=>'ext.diggindata.ddautofilter.DDAutoFilterDataColumn',
            'columnType'=>'number', // or 'text' or 'date' or 'bool'
            'filter => array(1=>1, 2=>2, 3=>3), // will be displayed in values select multiple control
        ),
        ...
Auto-Filter Widget ¶
After the CGridView widget code, add:
<?php $this->widget('ext.diggindata.ddautofilter.DDAutoFilterWidget', array('gridId' => 'your-model-grid')); ?>
Discussion ¶
See Yii Extensions Forum Thread.
History ¶
- V0.1: (2013-05-06) Initial version
Donate? ¶
If you like this extension, please consider donating a bit:
Great extension!
Hi, Joachim!
Great extension, but where to get methods textSearchCriteria and dateSearchCriteria? CActiveRecord not have these methods.
They may be implemented as a behavior?
Model Behavior
@navy:
Thanks for pointing me to this missing info.
I have updated the description.
Regards,
Joachim
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.