PHPackages                             shortlist-digital/agreable-poll-plugin - 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. shortlist-digital/agreable-poll-plugin

ActiveWordpress-plugin

shortlist-digital/agreable-poll-plugin
======================================

Wordpress plugin for Shortlist Media.

0.2.3(10y ago)05271[1 PRs](https://github.com/shortlist-digital/agreable-poll-plugin/pulls)MITPHP

Since Jul 22Pushed 10y ago13 watchersCompare

[ Source](https://github.com/shortlist-digital/agreable-poll-plugin)[ Packagist](https://packagist.org/packages/shortlist-digital/agreable-poll-plugin)[ RSS](/packages/shortlist-digital-agreable-poll-plugin/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (3)Versions (10)Used By (0)

Shortlist Media Wordpress Poll Plugin
=====================================

[](#shortlist-media-wordpress-poll-plugin)

Wordpress Plugin built for Croissant stack using [Herbert](http://getherbert.com/) plugin framework.

---

### Dependencies

[](#dependencies)

- Timber
- Advanced Custom Fields

---

#### Create custom post type

[](#create-custom-post-type)

- `/app/customPostType.php`

#### Plugin degines an widget using ACF available to articles

[](#plugin-degines-an-widget-using-acf-available-to-articles)

- `/widget-loader-acf.php`
    A Croissant theme (e.g. Troisieme) will traverse plugins directory for 'slm' prefixed sub directories which contain `widget-loader-acf.php` at their root. This ACF definition is added to list of widgets available in theme.

#### Add plugin view path to Timber's paths for rendering

[](#add-plugin-view-path-to-timbers-paths-for-rendering)

- `/app/hooks/timber_loader_paths.php`
    Parent theme will include the plugin Twig templates and render using Timber (see [lab-troisieme-2015/src/views/partials/widget-container.twig](https://bitbucket.org/ShortlistMedia/lab-troisieme-2015/src/a09dddfd3df596f3c8b81db759160ded95a577e4/views/partials/widget-container.twig?at=master#cl-5)). Therefore we add our plugin paths to Timber's internal array of paths using this filter called by Timber: `'timber/loader/paths`.

#### Fire plugin specific action whilst rendering (to enqueue styles/scripts within plugin)

[](#fire-plugin-specific-action-whilst-rendering-to-enqueue-stylesscripts-within-plugin)

- `/app/hooks/slm_plugin_enqueue.php`
    Just before rendering the plugin template, the parent theme calls Wordpress `do_action('acf_{{name}}_enqueue')`. e.g. (using Timber):
    `{% do action('slm_'~widget.acf_fc_layout~'_enqueue', widget) %}`
    The hook name is constructed from the ACF Field Group 'name' in `widget-loader-acf.php`. e.g. 'acf\_quiz\_plugin\_enqueue'

#### Configurable plugin options for Wordpress installation

[](#configurable-plugin-options-for-wordpress-installation)

- `app/panels.php`
    Adds Settings panel for installation specific configuration. Uses ACF definitions.

##### Using ACF to create panels in Post Type menu

[](#using-acf-to-create-panels-in-post-type-menu)

```
acf_add_options_sub_page(array(
  'page_title'  => 'Quiz Style Settings',
  'menu_title'  => 'Quiz Settings',
  'parent_slug' => 'edit.php?post_type=quiz',
));

```

##### Add Custom Fields to menu

[](#add-custom-fields-to-menu)

Specify custom fields using `register_field_group($options)`. Best to create in Worpdress Admin and use export function. `$options['location']` will be an array specifying where to display the Custom Fields:

```
array (
  array (
    array (
      'param' => 'options_page',
      'operator' => '==',
      'value' => 'acf-options-quiz-settings',
    ),
  ),
),

```

Note: If `acf_add_options_sub_page` is given 'menu\_title' of 'Quiz Settings', the location 'value' is 'acf-options-quiz-settings' (as above).

#### Deploying to Packagist

[](#deploying-to-packagist)

`git tag` to see the latest tag version (pull first. `git tag 0.x.x` to bump the version `git push origin master --tags` to push to GitHub with your latest tag - Packagist will recieve a webhook and update accordingly

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 86.5% 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 ~32 days

Total

6

Last Release

3785d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3b90478148945c7280c07347ddf12f76faea2ad016219f5553e86fd5edba27cf?d=identicon)[jonsherrard](/maintainers/jonsherrard)

![](https://www.gravatar.com/avatar/61ad7e6bf7e888532cab85057b18648b093e470d0f2277548b302ac494de9e31?d=identicon)[shortlist-digital](/maintainers/shortlist-digital)

---

Top Contributors

[![garethfoote](https://avatars.githubusercontent.com/u/500616?v=4)](https://github.com/garethfoote "garethfoote (64 commits)")[![jonsherrard](https://avatars.githubusercontent.com/u/631670?v=4)](https://github.com/jonsherrard "jonsherrard (8 commits)")[![ecoad](https://avatars.githubusercontent.com/u/596528?v=4)](https://github.com/ecoad "ecoad (2 commits)")

### Embed Badge

![Health badge](/badges/shortlist-digital-agreable-poll-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/shortlist-digital-agreable-poll-plugin/health.svg)](https://phpackages.com/packages/shortlist-digital-agreable-poll-plugin)
```

###  Alternatives

[mpociot/laravel-firebase-sync

Synchronize your Eloquent models with a Firebase realtime database.

267153.3k1](/packages/mpociot-laravel-firebase-sync)

PHPackages © 2026

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