Quick Poll
Version 1.1.2
July 9, 2026
Changed
- Housekeeping release: republished so every available version ships the
official Craft License in
LICENSE.md. No functional changes.
Version 1.1.1
July 8, 2026
Changed
LICENSE.mdnow contains the official Craft License text, as required for commercial plugins in the Craft Plugin Store.
Version 1.1.0
June 24, 2026
Added
- Front-end widget now ships with the plugin as the templates
quick-poll/widgetandquick-poll/results. Embed with{% include 'quick-poll/widget' with { poll: poll } %}— it registers its own JS/CSS, renders all four poll types, works without JavaScript and is overridable by copying into your own templates. - Optional Allow changing the answer (
allowRevote, off by default) — when a poll is open, voters can reopen the form via a Change answer button and update their vote (the existing replace-on-revote backend). The reopened form is pre-selected with the voter's previous choice. JS-only enhancement; the button stays hidden without JavaScript. craft.quickPoll.myBallot(poll, targetId)— the current visitor's own ballot, shaped for pre-selecting the re-vote form.
Changed
- Translations: added the front-end widget strings in all five languages and removed leftover keys from the pre-1.0 scaffold workflow.
Version 1.0.0
June 3, 2026
Initial release.
Added
- Four poll types:
rating(1–5 stars),choice(radio / multi-checkbox),mood(emoji options) andgrid(Doodle-style yes/maybe/no per option). - Poll element — a plugin-managed, localizable element with its own control panel section. The question and options translate per site via Craft's native site switcher; no field layout or section setup is required on the host.
- Quick Poll field (
pixelwerft\quickpoll\fields\PollField) to embed a poll into any field layout, Matrix or content block. - Entity-attached polls: one poll definition reused across many entries with
votes scoped per
targetId. - No-JS-first widget (native POST→redirect) with progressive enhancement to inline voting and live results.
- Access modes
public(dedup bysha256(ip + cookie + pepper)) andmembers(dedup by user id), enforced by aUNIQUE(pollId, targetId, voterHash, optionKey)index. - Result visibility modes:
afterVote,always,afterClose, plus an optional Open until close date. - Optional per-poll share button (
showShare, off by default) shown alongside the results. - Optional Hide after it closes (
hideAfterClose, off by default) — removes the widget entirely once the poll is closed instead of showing the closed state. - Per-site answer text (
resultText) revealed above the results — e.g. the correct answer or a comment. - Control-panel overview with type, status and distinct-voter count per poll, and a streamed CSV export of aggregated results (UTF-8 BOM for Excel).
- Live result panel in the control-panel poll editor (right-hand details pane), including a per-user voter list for members-only polls.
- Optional poll categories: pick a category group in the settings, assign one or
more categories per poll, filter the CP overview by category, and list polls by
category on the front end via
craft.quickPoll.byCategory(). craft.quickPollTwig API:poll(),forPoll(),isOpen(),hasVoted(),canSee(),baseCssUrl.- Structure-only base stylesheet (CSS + SCSS source) themable via
--qp-*custom properties, with aloadBaseCssopt-out. - Plugin settings:
loadBaseCss,voterPepper,defaultResultsVisibility,resultsCacheDuration. - Translations for German, French, Italian, English and Spanish.