=== VEFpressKit ===
Contributors: vimagesericfabre
Author URI: https://v-images.com
Tags: press kit, media kit, pdf, epk, download
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.3
Stable tag: 1.15.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build a downloadable media/press kit (PDF + zip) for your site — text, photos, documents, audio. For any type of activity.

== Description ==

VEFpressKit lets you build a professional media/press kit — a PDF (and an optional zip with the real files) that anyone can download from a stable link on your site. It works for any type of activity: artists, agencies, independents, shops — not just musicians.

**Kit builder — simple and generic**

* Global style: header band color or image (auto-cropped to fit), section title color, global text/link color, title/text fonts (3 universal families, or upload your own .ttf/.woff/.woff2 file), optional PDF background color
* Introduction text, always shown first — with optional background/text color
* As many sections as you need, in any order you choose (Text, Photos, Documents, Audio, or Two columns with a different content type in each column)
* Text sections: rich text (bold, italic, lists, clickable links, alignment), with optional background/text color and a single image on its own line
* Photos: shown in the PDF as a gallery that illustrates the kit, with the original full-resolution files added to the zip
* Documents and audio files: listed by name in the PDF, included as real files in the zip download
* Fully automatic pagination — a long text or a long list of files is never cut off
* Optional downloadable zip (PDF + photos + documents + audio), automatic fallback to PDF-only if your hosting doesn't support zip creation
* Stable public download URL — paste it in your own button or link, on any page builder
* Help, Support and Diagnostic screens built in
* Optional free license (About tab): register your copy to receive news and offers and get faster support. It unlocks nothing — the plugin works exactly the same without it.

**No dependency**

VEFpressKit works entirely on its own. It also exposes a filter (`vefpk_extra_content`) so other plugins can add their own content to the kit — without VEFpressKit ever depending on them. The "Extensions" card on the Kit builder screen lets you turn that added content off without deactivating the extension itself.

#### Need more? VEFpressKit Pro

VEFpressKit stays free and complete: building the kit, the PDF, the zip and the stable download link all work without the Pro. [VEFpressKit Pro](https://v-images.com/plugin-vefpresskit/) is a separate paid extension (installed in addition to VEFpressKit, which it requires) that adds tools to manage who downloads your kit and how:

* Contact form before the download (off, optional or required), with a notification email and a history of the requests received
* Download statistics, day by day
* Download links limited to a number of uses, to an expiry date, or both — for example one link per journalist
* Several independent kits, each with its own content, PDF, zip and download link — useful for an agency managing several clients
* Send the download link by email to a list of press contacts you keep in the plugin (the email carries the link, never the file)
* Five additional PDF templates (Minimal, Bold, Elegant, Modern Mono, Corporate)

Every Pro feature builds on the kit you already created — nothing to set up twice.

== Installation ==

1. Upload the plugin files to `/wp-content/plugins/vefpresskit`, or install directly from your WordPress admin.
2. Activate the plugin.
3. Go to "VEFpressKit" in your WordPress admin menu (Kit builder screen), fill in your identity, contact information and sections, then click "Save and generate the kit".
4. Copy the stable download URL shown on the page into your own button or link anywhere on your site.

== Frequently Asked Questions ==

= Does this work for a non-musician? =

Yes — VEFpressKit is fully generic. It was designed for any type of activity.

= What happens if my hosting doesn't support zip files? =

The plugin automatically falls back to offering the PDF only. Documents and audio files listed in a section simply won't be attached in that case — this is shown clearly in the admin diagnostic screen.

= Can I embed audio or video playback inside the PDF? =

No — a PDF is a static document, it can never play audio or video. Audio/document files are listed by name in the PDF and included as real, downloadable files in the zip.

= Is there a Pro version? =

Yes. VEFpressKit Pro is a separate paid extension, sold on v-images.com. VEFpressKit itself is not limited: the Pro only adds features, and nothing in the free plugin is locked.

== External services ==

This plugin connects to V-IMAGES.com (the plugin's publisher) in two cases only, both started by you — never automatically for a site that has not asked for it.

**Support requests.** Only when you explicitly use the "Support & feature requests" screen: submitting that form sends your message, email, and basic site/version diagnostics (no personal data beyond what you typed) to V-IMAGES.com, the plugin's developer, so they can reply and process the request. Nothing is sent automatically or in the background — only when you click "Send the request". If you registered for the optional free license (below), its key is added to the request so your site is identified right away.

**Optional free license.** Only if you ask for it, from the "Free license" card on the About tab: nothing is sent until you fill in the form and tick the consent box. The free license unlocks nothing — the plugin works exactly the same without it; it only lets the publisher send you news and offers, and identify your site when you ask for support. When you register, the following is sent: the email address you typed, the exact consent text you agreed to, your site's URL, the VEFpressKit version and your site's language. While you are registered, each time you open the About tab or the Kit builder screen the plugin checks the registration status (on each of those screens until you confirm by email, then once a week), sending your license key, your site's URL and the VEFpressKit version. When you unregister, the plugin asks the service to delete your data.

These services are provided by V-IMAGES.com: [terms of use](https://v-images.com/cgv-cgu/), [privacy policy](https://v-images.com/politique-de-cookies-eu/).

== Screenshots ==

1. Kit builder screen — current status, stable download URL and global style.
2. Global style — header band, colors, fonts and PDF background.
3. Identity and contact information.
4. Introduction text, sections and extensions.
5. About screen — plugin overview and optional free license.
6. Diagnostic screen — checks and copyable system info.
7. Built-in Help.
8. VEFpressKit Pro — several independent kits.
9. VEFpressKit Pro — optional contact form before the download, with history.
10. VEFpressKit Pro — download statistics.
11. VEFpressKit Pro — download links limited by number of uses or expiry date.
12. VEFpressKit Pro — press contact list.

== Changelog ==

= 1.15.6 =
* Changed: VEFpressKit now requires PHP 8.3 or higher, because PHP 8.2 stops receiving security fixes on 31 December 2026. WordPress only offers this update on sites that meet the requirement; most hosts let you switch the PHP version from their control panel.

= 1.15.5 =
* Fixed: in a "2 columns" section, a photo no longer floats in the middle of its column, which pushed the two photos far apart. Photos now fill the width of their column (up to a maximum height, since the pictures in the PDF only illustrate the kit), flush left.
* Fixed: in a "2 columns" section, the two column titles now always stay on the same page as the top of their columns. A title is no longer left alone at the bottom of a page while its photo moves to the next one, and the two columns always start on the same page. A column that is longer than the page continues on the next page, as before.
* Fixed: the title of a full-width "Photos" section could also be left alone at the bottom of a page, with its photos on the next page.
* Fixed: text placed right under an image touched the bottom edge of that image.
* Changed: clearer help texts. A new "How the kit works" help tab explains that the PDF illustrates and the zip carries the full-resolution originals, and which images end up in the zip.

= 1.15.4 =
* Fixed: the WordPress "Help" button never appeared on the Kit builder screen, so its help tabs (section types, Free vs Pro) could not be opened. They now show.
* Fixed: removing a section and then adding a new text section by Ajax could give two editors the same identifier. Editors are now identified by their section, not by their position.
* Fixed: clicking two "Add a ... section" buttons in quick succession could lose one of the two sections. Only one addition runs at a time.
* Fixed: a harmless JavaScript error on the Kits screen of VEFpressKit Pro.

= 1.15.3 =
* Fixed: saving the kit multiplied its sections. Since 1.13.0, every save split each section into several fragments, so the list grew at every save (4 sections became 16, then 64). The sections of the form are now numbered one by one, so a save keeps exactly the sections you see, in the order you see them. If an earlier save already left empty or duplicated sections in your kit, remove them once with the "Remove" button and save again.

= 1.15.2 =
* Changed: new look for every admin screen. Each page now has a header with its name and purpose, tabs with icons, redesigned cards and settings rows, and a Save button that stays visible on long kits. It follows the admin color scheme you chose in WordPress and works on small screens. Presentation only: no setting, feature or generated kit changes.

= 1.15.1 =
* Fixed: PHP 8.5 compatibility — the PDF engine no longer calls a GD function deprecated in PHP 8.5. No visible change.

= 1.15.0 =
* Added: optional free license (About tab). Register your copy to receive news and offers from the publisher and get faster support — your key is attached to your support requests. It unlocks nothing and changes nothing in the plugin. Offered, never imposed: nothing is sent until you fill in the form and tick the consent box; you can unregister at any time, which deletes your data. A discreet, dismissible invitation is shown on the Kit builder screen only (never on the WordPress dashboard).
* Added: the Diagnostic screen shows the free license status.

= 1.14.0 =
* Changed: VEFpressKit is now distributed through WordPress.org only. Updates come from WordPress.org like any plugin from the official directory, and translations from translate.wordpress.org. The former self-hosted update system (weekly check, "Check now" button, version history/rollback, automatic-install checkbox) has been removed entirely.
* Changed: sites that installed an earlier direct-download copy are cleaned up automatically on first load (old scheduled check, cached data and setting removed) and then keep receiving updates from WordPress.org. Your kit, settings and generated files are untouched.
* Fixed: the About and Help screens now list .woff among the supported custom font formats (supported since 1.12.5, but not mentioned there).

= 1.13.0 =
* Changed: adding a section no longer reloads the whole page — replaced the old "number of sections + position" layout tool with one "Add a ... section" button per type (text/photos/documents/audio/two columns), added and shown instantly. Reordering and removing a section are also instant now (arrows on each section, a "Remove" button) — nothing is actually saved until "Save and generate", exactly as before.
* Fixed: the underlying form fields no longer use a fixed numeric index per section — a real bug this change would otherwise have reintroduced, since the browser always submits fields in their on-screen order but a fixed index would have kept referring to each section's original position, silently ignoring any reordering.

= 1.12.5 =
* Added: custom title/text fonts now also accept .woff (WOFF1) files, converted on the fly (new VEFPK_WOFF_Font class, ported from VEFmusic) exactly like the existing .ttf/.woff2 support. Unlike .woff2 (which needs Brotli decoding, not guaranteed on every hosting), .woff uses zlib — natively supported by PHP everywhere, so it always works, no hosting-specific limitation or fallback warning. The font picker now actually attempts the conversion at selection time and shows a clear, specific message (including telling apart an unsupported OpenType/PostScript/CFF font from any other invalid file) instead of a blanket message — same precision added to the Diagnostics screen's own check for this field.
* Changed: more breathing room below the "Press contact" box on the first page, before the next section (26pt → 40pt).
* Changed: even more breathing room below the header band repeated on pages automatically added past the first (62pt → 130pt margin) — the band's own height also increased (46pt → 80pt), the first page's own band is unchanged (130pt).

= 1.12.4 =
* Fixed: removed the system-binary fallback (`proc_open()`) used as a last resort to decode Brotli-compressed data inside a .woff2 font file — not permitted on WordPress.org, dropped here too to keep a single shared codebase between both builds. Decoding now only happens when the hosting exposes the native Brotli PHP extension; otherwise the kit still falls back to Helvetica for that role, exactly as before, just without ever attempting a system-level call.
* Fixed: the rollback-confirmation link's token read (`class-vefpk-admin.php`, `maybe_finish_rollback()`) is now correctly marked to reflect the actual sniff WordPress.org's Plugin Check flags for a GET-triggered action (`NonceVerification.Missing`, not just `.Recommended` used for plain reads) — same justification as before (single-use token = proof of authorization), only the suppression comment was fixed.
* Fixed: added the Terms of Use and Privacy Policy links for the support-request service (v-images.com) under "External services".

= 1.12.2 =
* Changed: on pages automatically added past the first, the "Page X/Y" indicator now sits in the bottom-right corner (same discreet style as page 1) instead of inside the header band — one consistent marker throughout the document, matching VEFmusic.
* Changed: subtitle position and size in the header band, aligned with VEFmusic.

= 1.12.1 =
* The header band on the first page, and the smaller header band repeated on any page automatically added past the first, are now taller — easier to read at a glance, more room to breathe around the kit title and logo.

= 1.12.0 =
* New global "Text color" and "Link color" settings (Global style card) — used as the default for every section (Text, Documents/Audio, Columns) that doesn't set its own color, plus the new press-contact box and the page footer/page numbers on continuation pages.
* Custom title/text fonts now also accept .woff2 files, on top of .ttf (converted internally; needs this hosting to support decoding it — a clear message shows once a file is selected, and on the Diagnostic screen).
* Contact information (name/email/phone) is now shown in its own highlighted "Press contact" box just below the header band, instead of a small line inside the band — easier to spot for a journalist skimming the document.
* Fixed: a Text section containing only a single image (added via the rich-text editor's media button, no other text) could be wrongly treated as empty and silently dropped from the generated PDF.
* Fixed: a section title could occasionally be printed alone at the very bottom of a page, with all of its content pushed to the next page.
* Fixed: uploading a .ttf/.woff2 font file could be rejected as "not allowed for security reasons" on some hosting (server-side MIME detection not recognizing font files).
* Consistent spacing between sections (Text/Photos/Documents/Audio).
* Help tab and About tab updated to document the new text/link color settings and .woff2 font support.

= 1.11.0 =
* Automatic installation of updates is now an option, off by default — a new checkbox on the "VEFpressKit updates" card. The weekly check always keeps running and a new version always shows up here and on the Plugins screen either way; with the checkbox off, install it yourself with the "Check now" button or the Plugins screen.

= 1.10.1 =
* Fixed: a handful of `phpcs:ignore` comments referenced outdated/incorrect sniff names and didn't actually suppress what they meant to (found by running the official Plugin Check tool ahead of WordPress.org review) — no functional change, code was already correct and safe.
* Fixed: two local variables in `uninstall.php` renamed with a plugin-specific prefix (WordPress coding standard for this top-level script).
* Fixed: a font-family field read from the submitted form no longer reads `$_POST` a second time unnecessarily.

= 1.10.0 =
* The plugin can now also be distributed through WordPress.org, alongside the existing direct-sale download — same source code, same features. The direct-sale download is unaffected (self-hosted updates, version history and rollback all keep working exactly as before).

= 1.9.0 =
* New "Extensions" card on the Kit builder screen: a checkbox lets you remove the content added by an installed extension (e.g. VEFpressKit Pro) from the generated kit, without deactivating the extension itself.

= 1.8.3 =
* Fixed: the update download itself had no explicit time limit (WordPress defaults to 5 minutes) — on a site that also hosts its own update server, a network hiccup during download could leave the page looking frozen for that whole time. Now fails fast and cleanly (45 seconds) instead.

= 1.8.2 =
* Update check now retries once (after a brief pause) if the update server can't be reached — reduces a rare failure when a site's own domain hosts the license/update server itself (self-referential requests can occasionally hiccup, even when everything works fine a moment later).

= 1.8.1 =
* New "vefpk_diagnostic_checks" extension point for the Diagnostic tab, and "vefpk_system_info_lines" for the copyable system info — used by VEFpressKit Pro's new features.
* The Support form's technical info now reuses the exact same system info as the Diagnostic tab, instead of a separate, shorter copy.

= 1.8.0 =
* New extension points for VEFpressKit Pro's "Multiple kits" feature — the default kit's own storage, settings and download URL are completely unaffected.
* "About" tab rewritten with a full features overview and a clear path to VEFpressKit Pro.
* Contextual help (Help tab and the native WordPress "Help" screen dropdown) updated to match every current feature.

= 1.7.1 =
* Fixed stale documentation: the plugin description and README no longer mention the old "1 or 2 columns" text layout (replaced by the separate "Two columns" section type since 1.3.0), and the rollback screen's location is correctly described (Settings > About tab, not a separate "About" page).

= 1.7.0 =
* Fixed: content could be lost when clicking "Update layout" — it only kept a 5-minute temporary draft instead of saving for real. It now saves immediately, exactly like the main "Save" button.
* Fixed: rolling back or updating via the version history could land on a "you don't have permission" page — the redirect now always targets the main Kit builder page, which stays valid across every version.
* Reworded the "PDF background color" checkbox label to be clearer.

= 1.6.0 =
* Fixed: the "Contact name" field was saved but never actually shown anywhere in the PDF — now included in the footer alongside email/phone.
* Fixed: section/introduction background boxes didn't leave enough room above the text (letters could touch the top edge).
* Admin menu simplified: About/Help/Support/Diagnostic merged into a single "Settings" page with tabs (Pro adds its own License and Pro Help tabs there too) — 3 menu entries instead of 8.

= 1.5.0 =
* Renamed the Pro "Kit downloads" menu entry to a shorter "Downloads".
* New "Global style" card at the top of the Kit builder: header band background color or image (auto-cropped to fit), section title color, title/text fonts.
* Custom font support: upload your own .ttf file for titles and/or body text (regular weight, Latin/French characters), on top of Helvetica/Times/Courier.
* Colors (background/text) added to the introduction text, matching what Text sections already had.
* Minor spacing fixes in the Kit builder screen (Two columns layout).

= 1.4.0 =
* Self-hosted updates: automatic weekly check and install, a manual "Check now" button, and a version-history screen with one-click rollback (About page). Every update is verified by cryptographic signature before installation.

= 1.3.0 =
* Renamed "Contact requests" (Pro) to "Downloads" throughout.
* New section type "Two columns": each column can now be a different type of content (e.g. a biography and a photo gallery side by side).
* New "Help" and "Support & feature requests" screens.
* "System info" added to the Diagnostic screen, for support requests.

= 1.2.0 =
* New "About" screen explaining the plugin and the Free/Pro split.
* Contextual help tab added to the Kit builder screen.
* Visual refresh of the Kit builder screen (clearer cards, color-coded section types).
* Optional PDF background color (whole document).
* Optional background and text color per Text section (single page, 1-column only).
* Images can now be inserted inside a Text section's content (on their own line, via "Add Media").
* A short notice on the Kit builder screen now mentions VEFpressKit Pro when it isn't installed.

= 1.1.0 =
* New extension point (`vefpk_intercept_download` filter) for paid add-ons (e.g. VEFpressKit Pro) to intercept a download request before the file is sent — no visible change for sites without such an add-on installed.

= 1.0.1 =
* Admin: "View the PDF" now opens the PDF inline instead of forcing a download.
* Admin: top-level WordPress menu entry renamed to "VEFpressKit".

= 1.0.0 =
* Initial release: kit builder (Text/Photos/Documents/Audio sections), PDF + zip generation, stable public download URL, diagnostic screen.
