House-keeping page for the manual posting companion. Everything happens offline, through one static board that enforces conservative timers (X baseline) and lets you import/export CSV files.
Each file = one campaign. Load it, confirm the rows, and we persist the session in localStorage.
Use the X / YouTube / Facebook buttons. Each click copies the text and consumes the quota immediately.
When a campaign is done, export the CSV to keep your timestamps, then reset.
Columns are fixed. Keep the header exactly as shown.
| Column | Purpose |
|---|---|
id | Unique reference (string). Used to enforce same-text limits. |
bloc_groupe | Logical family for anti-spam group rules. |
texte | Full body. Can contain placeholders like {{cta}}. |
lien | Optional tracking link. Leave blank if none. |
x_ok, youtube_ok, facebook_ok | Use 1 for allowed, 0 otherwise. |
abonnement_requis | free or premium. Premium rows are locked unless the toggle is set to premium. |
dernier_envoi_x etc. | Unix ms timestamps, optional. Helpful when exporting/importing to keep history. |
Sample block:
id,bloc_groupe,texte,lien,x_ok,youtube_ok,facebook_ok,abonnement_requis,dernier_envoi_x,dernier_envoi_youtube,dernier_envoi_facebook 001,Launch Pulse,"Publier le teaser vid�o 'Resilience Road' et mentionner @ForumDesMaires",https://mayors.example/road,1,1,1,free,,,
No network calls, no cookies. Everything is stored locally; export manually for backups.
If you reload the page, the board reconstructs timers from localStorage timestamps and continues the countdowns.
Send teammates directly to social-campaign-posts-timer.php. Keep this index bookmarked for onboarding.
Need another feature? Update the CSV + reload, or fork the JS inside the tool (constants are at the top).