{"id":353729,"date":"2026-08-17T11:18:19","date_gmt":"2026-08-17T11:18:19","guid":{"rendered":"https:\/\/fr.wordpress.org\/plugins\/fermeture-mairie\/"},"modified":"2026-08-17T11:17:56","modified_gmt":"2026-08-17T11:17:56","slug":"mairie-affiche-information","status":"publish","type":"plugin","link":"https:\/\/so.wordpress.org\/plugins\/mairie-affiche-information\/","author":14842865,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Mairie Affiche Information","header_author":"Verturin","header_description":"Generate the recurring town hall notices - office closure and council meeting - by filling in a date, and save them straight to the Media Library. Access is limited to the roles you choose.","assets_banners_color":"231f30","last_updated":"2026-08-17 11:17:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/mairie-affiche-information","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"verturin","date":"2026-08-17 11:17:56"}},"upgrade_notice":{"1.2.0":"<p>Plugin renamed.<\/p>","1.1.0":"<p>Adds the council meeting notice.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3650994,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3650994,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3650994,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3650994,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3650994,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3650994,"resolution":"4","location":"assets","locale":"","width":1200,"height":1200},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3650994,"resolution":"5","location":"assets","locale":"","width":1200,"height":1200}},"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."}},"plugin_section":[],"plugin_tags":[133,84,1334,15082,274922],"plugin_category":[50],"plugin_contributors":[95508],"plugin_business_model":[],"class_list":["post-353729","plugin","type-plugin","status-publish","hentry","plugin_tags-image","plugin_tags-media","plugin_tags-notice","plugin_tags-opening-hours","plugin_tags-town-hall","plugin_category-media","plugin_contributors-verturin","plugin_committers-verturin"],"banners":{"banner":"https:\/\/ps.w.org\/mairie-affiche-information\/assets\/banner-772x250.png?rev=3650994","banner_2x":"https:\/\/ps.w.org\/mairie-affiche-information\/assets\/banner-1544x500.png?rev=3650994","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/mairie-affiche-information\/assets\/icon.svg?rev=3650994","icon":"https:\/\/ps.w.org\/mairie-affiche-information\/assets\/icon.svg?rev=3650994","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mairie-affiche-information\/assets\/screenshot-4.jpg?rev=3650994","caption":"A closure notice produced by the plugin."},{"src":"https:\/\/ps.w.org\/mairie-affiche-information\/assets\/screenshot-5.jpg?rev=3650994","caption":"A council meeting notice produced by the plugin."}],"raw_content":"<!--section=description-->\n<p>French town halls publish the same notice over and over: the office is closed on\nsuch and such a day. Only the date changes. This plugin turns that chore into a\nsingle field.<\/p>\n\n<p>Pick a date on the admin screen and the notice is composed on the fly: the\nbundled artwork is used as a background and the date is drawn on it with the GD\nlibrary, spelled out in the site language. The result is saved as a normal\nattachment in the Media Library, so it can be inserted into a post, a page or a\nwidget like any other image.<\/p>\n\n<p>Two notices are covered: the office closure notice, where only the date changes,\nand the council meeting notice, where the date, the time and the venue change.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Live preview while you pick the date.<\/li>\n<li>Date spelled out, with the French \"1er\" handled and a capital initial.<\/li>\n<li>Free text field for periods, for example \"From 10 to 21 August 2026\".<\/li>\n<li>One-click save to the Media Library, with a normalised file name\n(Fermeture_Mairie_05-08-2026.jpg), a title, a caption and alt text.<\/li>\n<li>Immediate download in JPEG or PNG.<\/li>\n<li>Access limited to the roles you tick: the plugin grants a dedicated\ncapability (generer_affiche_mairie) to the allowed roles and removes it from\nthe others.<\/li>\n<li>Council meeting notice with its own screen: date, time and venue, the venue\ndefaulting to a value you set once in the settings.<\/li>\n<li>Background replaceable from the Media Library for both notices; text position,\ncolour and JPEG quality are configurable.<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<p>PHP 7.4 or later with the GD extension built with FreeType support, which is the\ndefault on most shared hosts.<\/p>\n\n<p><strong>Privacy and external services<\/strong><\/p>\n\n<p>The plugin makes no external request. Images are composed locally by PHP and\nstored in your own uploads folder. No tracking, no remotely loaded fonts, no\ndata sent anywhere.<\/p>\n\n<h3>Hooks<\/h3>\n\n<ul>\n<li><code>mairie_affiche_information_police<\/code> (filter) - absolute path to the TrueType font.<\/li>\n<li><code>mairie_affiche_information_fond<\/code> (filter) - absolute path to the default background.<\/li>\n<li><code>mairie_affiche_information_affiche_enregistree<\/code> (action) - $attachment_id, $timestamp,\n$text.<\/li>\n<li><code>mairie_affiche_information_conseil_police<\/code> (filter) - font used by the council notice.<\/li>\n<li><code>mairie_affiche_information_conseil_fond<\/code> (filter) - default council background.<\/li>\n<li><code>mairie_affiche_information_conseil_reperes<\/code> (filter) - text positions, sizes and colours\nof the council notice.<\/li>\n<li><code>mairie_affiche_information_conseil_enregistre<\/code> (action) - $attachment_id, $timestamp,\n$time, $venue.<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<p>Fjalla One font by Sorkin Type and Anton font by Vernon Adams, both licensed\nunder the SIL Open Font License 1.1.\nThe bundled background artwork is provided by the plugin author under the same\nGPL-2.0-or-later license as the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mairie-affiche-information<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the\nzip from Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Mairie Affiche Information &gt; Settings and tick the roles allowed to generate\nnotices.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"who%20can%20generate%20a%20notice%3F\"><h3>Who can generate a notice?<\/h3><\/dt>\n<dd><p>The roles ticked in the settings. Administrators are always allowed. The role\nalso needs the <code>upload_files<\/code> capability to save to the Media Library, which\nAuthor and above already have.<\/p><\/dd>\n<dt id=\"where%20are%20the%20images%20stored%3F\"><h3>Where are the images stored?<\/h3><\/dt>\n<dd><p>In the standard uploads folder (wp-content\/uploads\/YYYY\/MM\/), like any other\nmedia file. They show up in the Media Library and can be inserted anywhere.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20artwork%3F\"><h3>Can I use my own artwork?<\/h3><\/dt>\n<dd><p>Yes. Pick any square image without a date from the Media Library in the settings\nscreen, then adjust the horizontal centre, the text baseline and the maximum\ntext width so the date lands where you want it.<\/p><\/dd>\n<dt id=\"can%20i%20print%20something%20other%20than%20a%20single%20date%3F\"><h3>Can I print something other than a single date?<\/h3><\/dt>\n<dd><p>Yes, use the custom text field, for example for a closure period.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20the%20notices%20generated%20so%20far%3F\"><h3>How do I find the notices generated so far?<\/h3><\/dt>\n<dd><p>Every attachment gets a <code>_mairie_affiche_information_date<\/code> meta key. The six most recent\nones are listed at the bottom of the generator screen.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin; translation files removed, translations now handled\nthrough translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New council meeting notice, with date, time and venue, and its own background\nsetting.<\/li>\n<li>Media Library saving refactored to serve both notices.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: generation, live preview, save to Media Library, role-based\naccess, artwork settings.<\/li>\n<\/ul>","raw_excerpt":"Generate the recurring town hall notices - office closure and council meeting - and save them straight to the Media Library.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/353729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=353729"}],"author":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/verturin"}],"wp:attachment":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=353729"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=353729"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=353729"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=353729"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=353729"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=353729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}