Formfilter

nedjo - January 12, 2007 - 05:47

Formfilter provides tools and a user interface for doing common form altering tasks. Includes a UI for selecting which fields to hide (passing the elements as values, if possible). Also includes an optional filtering of node forms to promote two fields and then put fieldsets in an 'advanced options' fieldset, to declutter the form. As of Drupal 6, Formfilter is divided into two modules: Formfilter is a pure API module and Formfilter UI provides an administrator user interface for filtering forms.

Formfilter can also be used by module developers to fetch altered versions of forms.

I would welcome a co-maintainer or new maintainer for this module.

Using Formfilter UI

Formfilter UI allows admin users with 'administer form filters' permission to hide - for each specific form - selected input fields from users who don't have the 'view forms without filtering' permission.

Admins will see, at the foot of every input form (for example the Node Edit tab), a 'Filter this form' link. Following this link brings up a version of the form with a Form Filter checkbox adjacent to each field (eg 'Hide /Title/: [x]'). Selecting a checkbox will hide that field from unauthorised users, while allowing all the unselected fields to be used normally.

Because users with 'view forms without filtering' permission see the unfiltered version of each form, there is also a link to 'Preview a filtered version of this form' that appears once some formfiltering has been applied.

Developer usage

Formfilter provides a method, formfilter_filter_form(), that can be used by developers to produce a filtered version of a form, in which designated elements are passed as values rather than shown to users. By converting elements to values, we ensure their data are retained.

To use formfilter:

  • Add formfilter as a dependency of your module.
  • Use the formfilter_filter_form() method.

formfilter_filter_form() takes three arguments:

  • $form The form to be altered.
  • $filters An array of elements to make invisible in the form, each element in turn being an array of form keys corresponding to the path of the element in the form structure. For example, to hide the element $form['comment_filter']['format'] from $form, you could call this function as follows: formfilter_filter_form($form, array(array('comment_filter', 'format')));
  • $inverse If TRUE, all elements except the ones given in $filters will become invisible. This defaults to FALSE. The following call would produce a form with only the $form['comment_filter']['format'] element: formfilter_filter_form($form, array(array('comment_filter', 'format')), TRUE);

Releases

Official releasesDateSizeLinksStatus
5.x-1.02008-Mar-298.94 KBRecommended for 5.xThis is currently the recommended release for 5.x.
Development snapshotsDateSizeLinksStatus
6.x-1.x-dev2009-Sep-119.65 KBDevelopment snapshotDevelopment snapshots are automatically regenerated and their contents can frequently change, so they are not recommended for production use.
5.x-1.x-dev2008-Nov-039.16 KBDevelopment snapshotDevelopment snapshots are automatically regenerated and their contents can frequently change, so they are not recommended for production use.


 
 

Drupal is a registered trademark of Dries Buytaert.