PHPackages                             locomotivemtl/charcoal-contrib-property-filter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. locomotivemtl/charcoal-contrib-property-filter

ActiveLibrary[Search &amp; Filtering](/categories/search)

locomotivemtl/charcoal-contrib-property-filter
==============================================

Charcoal service provider for a collection filtering widget that uses model properties as filters.

0.1.2.1(6y ago)0933MITJavaScriptPHP &gt;=5.6.0 || &gt;=7.0CI failing

Since Mar 16Pushed 6y ago12 watchersCompare

[ Source](https://github.com/locomotivemtl/charcoal-contrib-property-filter)[ Packagist](https://packagist.org/packages/locomotivemtl/charcoal-contrib-property-filter)[ Docs](https://locomotivemtl.github.io/charcoal-contrib-property-filter/)[ RSS](/packages/locomotivemtl-charcoal-contrib-property-filter/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (4)Dependencies (4)Versions (8)Used By (0)

Charcoal PropertyFilter
=======================

[](#charcoal-propertyfilter)

[![License](https://camo.githubusercontent.com/4aef7f4f42a1fd883008744b5307976668794fe531648b6b4654744609e76a6b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c6f636f6d6f746976656d746c2f63686172636f616c2d636f6e747269622d70726f70657274792d66696c7465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/locomotivemtl/charcoal-contrib-property-filter)[![Latest Stable Version](https://camo.githubusercontent.com/757e34ffb859e80ce46ff624ffab46f733a6870854f8e8c07ccd6fe10d7e918b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c6f636f6d6f746976656d746c2f63686172636f616c2d636f6e747269622d70726f70657274792d66696c7465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/locomotivemtl/charcoal-contrib-property-filter)[![Code Quality](https://camo.githubusercontent.com/1a2899fb485f6cb3ab2dd158a8cfacc9038e3e0d45ca482d7c66f9c27a0a2b53/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6c6f636f6d6f746976656d746c2f63686172636f616c2d636f6e747269622d70726f70657274792d66696c7465722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/locomotivemtl/charcoal-contrib-property-filter/)[![Coverage Status](https://camo.githubusercontent.com/f7848e8183299c6d49e13b5dc9aec0eb70b10dfdb2e8725e150e5ccbec69daf1/68747470733a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f6c6f636f6d6f746976656d746c2f63686172636f616c2d636f6e747269622d70726f70657274792d66696c7465722e7376673f7374796c653d666c61742d737175617265)](https://coveralls.io/r/locomotivemtl/charcoal-contrib-property-filter)[![Build Status](https://camo.githubusercontent.com/74e92dc957107f0081e49d0840ccbd224c18fe389da5caa312928602a94c98bd/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6c6f636f6d6f746976656d746c2f63686172636f616c2d636f6e747269622d70726f70657274792d66696c7465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/locomotivemtl/charcoal-contrib-property-filter)

A [Charcoal](https://packagist.org/packages/locomotivemtl/charcoal-app) service provider my cool feature.

Table of Contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
    - [Dependencies](#dependencies)
- [Configuration](#configuration)
- [Usage](#usage)
- [Options](#options)
- [Development](#development)
    - [Assets](#assets)
    - [API Documentation](#api-documentation)
    - [Development Dependencies](#development-dependencies)
    - [Coding Style](#coding-style)
- [Credits](#credits)
- [License](#license)

Installation
------------

[](#installation)

The preferred (and only supported) method is with Composer:

```
$ composer require locomotivemtl/charcoal-contrib-property-filter
```

### Dependencies

[](#dependencies)

#### Required

[](#required)

- [**PHP 5.6+**](https://php.net): *PHP 7* is recommended.
- [charcoal-admin](https://packagist.org/packages/locomotivemtl/charcoal-admin) ^0.14.2.

Configuration
-------------

[](#configuration)

Include the property-filter module in the projects's config file. This will provide everything needed for [charcoal-contrib-property-filter](https://packagist.org/packages/locomotivemtl/charcoal-contrib-property-filter) to work properly. No need for metadata/views/action/routes path etc.

```
{
    "modules": {
       "charcoal/property-filter/property-filter": {}
    }
}
```

Usage
-----

[](#usage)

[charcoal-contrib-property-filter](https://packagist.org/packages/locomotivemtl/charcoal-contrib-property-filter) can be used as a dashboard widget to filter all the filterable widgets included in the template. Define a structure like this one 👇 in a dashboard widget to create filters.

```
{
    "filters": {
        "type": "charcoal/property-filter/widget/property-filter",
        "property_filters": [
            "taxonomy_1",
            "taxonomy_2",
            "taxonomy_3"
        ],
        "properties_options": {
            "taxonomy_1": {
                "required": false,
                "multiple": true,
                "input_type": "charcoal/admin/property/input/select"
            },
            "taxonomy_2": {
                "required": false,
                "input_type": "charcoal/admin/property/input/radio"
            },
            "taxonomy_3": {
                "required": false,
                "input_type": "charcoal/admin/property/input/checkbox"
            }
        },
        "layout": {
            "structure": [
                {"columns": [1, 1, 1]}
            ]
        }
    }
}
```

Options
-------

[](#options)

KeyValuesDefaultDescription`properties`Arrayn/aDefines which of the model's properties to use as filters.`properties_options`Arrayn/aDefines property customizations for the filter inputs`layout`Arrayn/aArrange the filters in a layout using structuresDevelopment
-----------

[](#development)

To install the development environment:

```
$ composer install
```

To run the scripts (phplint, phpcs, and phpunit):

```
$ composer test
```

### Assets

[](#assets)

To install assets build environment:

```
$ yarn insall
```

To run the build scripts:

```
$ grunt watch
```

or

```
$ grunt
```

### API Documentation

[](#api-documentation)

- The auto-generated `phpDocumentor` API documentation is available at:

- The auto-generated `apigen` API documentation is available at:
    [https://codedoc.pub/locomotivemtl/charcoal-contrib-property-filter/master/](https://codedoc.pub/locomotivemtl/charcoal-contrib-property-filter/master/index.html)

### Development Dependencies

[](#development-dependencies)

- \[php-coveralls/php-coveralls\]\[phpcov\]
- \[phpunit/phpunit\]\[phpunit\]
- \[squizlabs/php\_codesniffer\]\[phpcs\]

### Coding Style

[](#coding-style)

The charcoal-contrib-property-filter module follows the Charcoal coding-style:

- [*PSR-1*](https://www.php-fig.org/psr/psr-1/)
- [*PSR-2*](https://www.php-fig.org/psr/psr-2/)
- [*PSR-4*](https://www.php-fig.org/psr/psr-4/), autoloading is therefore provided by *Composer*.
- [*phpDocumentor*](http://phpdoc.org/) comments.
- [phpcs.xml.dist](phpcs.xml.dist) and [.editorconfig](.editorconfig) for coding standards.

> Coding style validation / enforcement can be performed with `composer phpcs`. An auto-fixer is also available with `composer phpcbf`.

Credits
-------

[](#credits)

- [Locomotive](https://locomotive.ca/)

License
-------

[](#license)

Charcoal is licensed under the MIT license. See [LICENSE](LICENSE) for details.

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 61.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~52 days

Recently: every ~77 days

Total

7

Last Release

2356d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f3f29e38395113e2400bdd7e51bea982b17f120d4d5a53d4473b53118ee46f8d?d=identicon)[JoelAlphonso](/maintainers/JoelAlphonso)

---

Top Contributors

[![JoelAlphonso](https://avatars.githubusercontent.com/u/10762266?v=4)](https://github.com/JoelAlphonso "JoelAlphonso (11 commits)")[![mcaskill](https://avatars.githubusercontent.com/u/29353?v=4)](https://github.com/mcaskill "mcaskill (4 commits)")[![BeneRoch](https://avatars.githubusercontent.com/u/3017380?v=4)](https://github.com/BeneRoch "BeneRoch (1 commits)")[![dominiclord](https://avatars.githubusercontent.com/u/1775204?v=4)](https://github.com/dominiclord "dominiclord (1 commits)")[![veve40](https://avatars.githubusercontent.com/u/7537381?v=4)](https://github.com/veve40 "veve40 (1 commits)")

---

Tags

filtercharcoal

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/locomotivemtl-charcoal-contrib-property-filter/health.svg)

```
[![Health](https://phpackages.com/badges/locomotivemtl-charcoal-contrib-property-filter/health.svg)](https://phpackages.com/packages/locomotivemtl-charcoal-contrib-property-filter)
```

###  Alternatives

[clue/stream-filter

A simple and modern approach to stream filtering in PHP

1.7k276.5M9](/packages/clue-stream-filter)[laminas/laminas-filter

Programmatically filter and normalize data and files

9530.3M181](/packages/laminas-laminas-filter)[friendsofcake/search

CakePHP Search plugin using PRG pattern

1722.2M50](/packages/friendsofcake-search)[htmlawed/htmlawed

Official htmLawed PHP library for HTML filtering

481.2M15](/packages/htmlawed-htmlawed)[outl1ne/nova-multiselect-filter

Multiselect filter for Laravel Nova.

45902.0k5](/packages/outl1ne-nova-multiselect-filter)[outl1ne/nova-detached-filters

This Laravel Nova package allows you to detach filters from the filter dropdown

64414.8k](/packages/outl1ne-nova-detached-filters)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
