====== Adding a search filter ====== Adding a search filter is pretty straightforward, and you only need to touch one file: Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm To add a filter: - Register your filter with __PACKAGE__->add_search_filter(); - Add some logic for your filter -- this will be concatenated into a humongous SQL query. * If you just need to add to the WHERE clause, add it to the //flatten// subroutine. * If you need to add a JOIN (by either bib record ID or metabib ID), add it to the //toSQL// subroutine. * Each filter needs to have one or more comma-separated arguments. You can see which arguments the user passed in with @{$filter->args} * Probably, your filter should function differently if it is negated (i.e. the user searches for `-my_filter(1)` instead of `my_filter(1)`). $filter->negate will be 1 if it is negated.