Filter is a CakePHP plugin which enables you to create filtering forms for your data in a very fast and simple way, without getting in the way of paging, sorting and other "standard" things when displaying data. It also remembers the filter conditions in a session, but this can be turned off if undesirable.
It also features callback methods for further search refinement where necessary.
IMPORTANT: These instructions are for CakePHP 2.0. If you're using CakePHP 1.3.x
the correct path to unload the plugin is app/plugins/filter/
. More importantly,
if you're using CakePHP 1.3.x you should use the 1.3.x version of this plugin,
not the latest version from GitHub.
First, obtain the plugin. If you're using Git, run this while in your app folder:
composer require kba-team/cakephp-filter-plugin
To use the plugin, you need to tell it which model to filter and which fields to use. For a quick tutorial, visit https://github.com/lecterror/cakephp-filter-plugin/wiki/Basic-usage
If you need more than this plugin provides by default, there are ways to customize it, see this article: https://github.com/lecterror/cakephp-filter-plugin/wiki/Advanced-usage
In order to generate GET forms add 'type' => 'GET'
to the filterForm()
or beginForm()
options array.
To run PHPUnit tests:
Test/phpunit.sh <args>
Execute shell for manual testing
docker pull devkba/cake2-app-template:staging
docker run \
--rm \
--init \
-it \
-v "$(pwd)":/cakephp-filter-plugin \
-e DEBUG=0 \
-e BEFORE_SCRIPT="/cakephp-filter-plugin/Test/before_script.sh" \
-e AFTER_SCRIPT="/cakephp-filter-plugin/Test/after_script.sh" \
devkba/cake2-app-template:staging
If you'd like to contribute, clone the source on GitHub, make your changes and send me a pull request. If you don't know how to fix the issue, or you're too lazy to do it, create a ticket, and we'll see what happens next.
Important: If you're sending a patch, follow the coding style! If you don't, there is a great chance I won't accept it. For example:
// bad
public function drink() {
return false;
}
// good
public function drink()
{
return true;
}
Multi-licensed under: