=== Mairie Affiche Information ===
Contributors: verturin
Tags: image, notice, town hall, opening hours, media
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Generate the recurring town hall notices - office closure and council meeting - and save them straight to the Media Library.

== Description ==

French town halls publish the same notice over and over: the office is closed on
such and such a day. Only the date changes. This plugin turns that chore into a
single field.

Pick a date on the admin screen and the notice is composed on the fly: the
bundled artwork is used as a background and the date is drawn on it with the GD
library, spelled out in the site language. The result is saved as a normal
attachment in the Media Library, so it can be inserted into a post, a page or a
widget like any other image.

Two notices are covered: the office closure notice, where only the date changes,
and the council meeting notice, where the date, the time and the venue change.

**What it does**

* Live preview while you pick the date.
* Date spelled out, with the French "1er" handled and a capital initial.
* Free text field for periods, for example "From 10 to 21 August 2026".
* One-click save to the Media Library, with a normalised file name
  (Fermeture_Mairie_05-08-2026.jpg), a title, a caption and alt text.
* Immediate download in JPEG or PNG.
* Access limited to the roles you tick: the plugin grants a dedicated
  capability (generer_affiche_mairie) to the allowed roles and removes it from
  the others.
* Council meeting notice with its own screen: date, time and venue, the venue
  defaulting to a value you set once in the settings.
* Background replaceable from the Media Library for both notices; text position,
  colour and JPEG quality are configurable.

**Requirements**

PHP 7.4 or later with the GD extension built with FreeType support, which is the
default on most shared hosts.

**Privacy and external services**

The plugin makes no external request. Images are composed locally by PHP and
stored in your own uploads folder. No tracking, no remotely loaded fonts, no
data sent anywhere.

== Installation ==

1. Upload the `mairie-affiche-information` folder to `/wp-content/plugins/`, or install the
   zip from Plugins > Add New > Upload Plugin.
2. Activate the plugin.
3. Go to Mairie Affiche Information > Settings and tick the roles allowed to generate
   notices.

== Frequently Asked Questions ==

= Who can generate a notice? =

The roles ticked in the settings. Administrators are always allowed. The role
also needs the `upload_files` capability to save to the Media Library, which
Author and above already have.

= Where are the images stored? =

In the standard uploads folder (wp-content/uploads/YYYY/MM/), like any other
media file. They show up in the Media Library and can be inserted anywhere.

= Can I use my own artwork? =

Yes. Pick any square image without a date from the Media Library in the settings
screen, then adjust the horizontal centre, the text baseline and the maximum
text width so the date lands where you want it.

= Can I print something other than a single date? =

Yes, use the custom text field, for example for a closure period.

= How do I find the notices generated so far? =

Every attachment gets a `_mairie_affiche_information_date` meta key. The six most recent
ones are listed at the bottom of the generator screen.

== Hooks ==

* `mairie_affiche_information_police` (filter) - absolute path to the TrueType font.
* `mairie_affiche_information_fond` (filter) - absolute path to the default background.
* `mairie_affiche_information_affiche_enregistree` (action) - $attachment_id, $timestamp,
  $text.
* `mairie_affiche_information_conseil_police` (filter) - font used by the council notice.
* `mairie_affiche_information_conseil_fond` (filter) - default council background.
* `mairie_affiche_information_conseil_reperes` (filter) - text positions, sizes and colours
  of the council notice.
* `mairie_affiche_information_conseil_enregistre` (action) - $attachment_id, $timestamp,
  $time, $venue.

== Screenshots ==

1. The closure notice screen: pick a date, the preview follows.
2. The council meeting screen: date, time and venue.
3. The settings screen: allowed roles and artwork options.
4. A closure notice produced by the plugin.
5. A council meeting notice produced by the plugin.

== Changelog ==

= 1.2.0 =
* Renamed the plugin; translation files removed, translations now handled
  through translate.wordpress.org.

= 1.1.0 =
* New council meeting notice, with date, time and venue, and its own background
  setting.
* Media Library saving refactored to serve both notices.

= 1.0.0 =
* Initial release: generation, live preview, save to Media Library, role-based
  access, artwork settings.

== Upgrade Notice ==

= 1.2.0 =
Plugin renamed.

= 1.1.0 =
Adds the council meeting notice.

= 1.0.0 =
First public release.

== Credits ==

Fjalla One font by Sorkin Type and Anton font by Vernon Adams, both licensed
under the SIL Open Font License 1.1.
The bundled background artwork is provided by the plugin author under the same
GPL-2.0-or-later license as the plugin.
