Compare commits

...
Sign in to create a new pull request.

265 commits

Author SHA1 Message Date
45fe8c724e
build: bump php version form 8.3 to 8.5 2026-10-23 11:31:59 +02:00
Noah Lancien
811c0baa1b fix: 🍱 prod url in october nl 2026-10-02 16:14:52 +02:00
Noix
a76535583b Merge branch 'issue-90' into 'develop'
Fix: update month on header and utm

See merge request ldc-web/projets/reghalal!77
2026-10-02 07:43:20 +00:00
Abdel LAMRANI
d859235666 update month on header and utm 2026-10-02 09:34:16 +02:00
Noix
8bfb5feaf7 Merge branch 'issue-90' into 'develop'
fix url facebook

See merge request ldc-web/projets/reghalal!76
2026-09-29 07:21:28 +00:00
Abdel LAMRANI
d99ab17de7 more customs 2026-09-28 12:41:45 +02:00
Abdel LAMRANI
cb148a5a94 more customs 2026-09-28 12:39:22 +02:00
Abdel LAMRANI
14d96d997f more customs 2026-09-28 11:00:07 +02:00
Abdel LAMRANI
11c087e7de fix url facebook 2026-09-25 16:57:22 +02:00
Noix
851e4f1da4 Merge branch 'issue-90' into 'develop'
feat: ✨ newsletter 09-30

See merge request ldc-web/projets/reghalal!75
2026-09-24 15:00:57 +00:00
Abdel LAMRANI
b50b73892e fix: resize img 2026-09-24 16:25:34 +02:00
Noah Lancien
963a08c86d chore: bump theme to 1.6.2 2026-09-23 12:02:34 +02:00
Abdel LAMRANI
cce8d7a132 feat: ✨ newsletter 09-30 2026-09-23 12:01:15 +02:00
Noah Lancien
d6e2f1cc08 chore: bump theme to 1.6.2 2026-09-23 11:59:30 +02:00
Vincent BRIDIER
9400869628 Merge branch '53-rgpd' into 'develop'
docs: 📝 Added rgpd.md

See merge request ldc-web/projets/reghalal!68
2026-08-13 13:22:31 +02:00
Noix
cef3afafe5 Merge branch 'issue-57' into 'develop'
fix: 🐛 set the uwil-faq navigation button to be visible to users who have edit_page permissions

See merge request ldc-web/projets/reghalal!74
2026-07-29 10:06:45 +00:00
Alexis Gousseau
6735c71c83 fix: 🐛 set the uwil-faq navigation button to be visible to users who have edit_page permissions 2026-07-29 11:56:41 +02:00
Noah Lancien
2d6dd9ddb1 chore: bump theme to 1.6.1 to add acf config for faq page 2026-07-29 09:51:51 +02:00
Noix
a6ebf6e3eb Merge branch 'issue-57' into 'develop'
feat: ✨ add faq feature from custom plugin #57

See merge request ldc-web/projets/reghalal!73
2026-07-28 13:05:42 +00:00
Alexis Gousseau
f1f624e49a chore: ⬆️ Bump theme version to 1.6.0 2026-07-28 14:58:17 +02:00
Noah Lancien
28971b8dcf feat: 🍱 updated links from re7 to prod in nl 2026-07-27 16:41:14 +02:00
Noah Lancien
dcb34e6be2 fix: 🍱 Updated instagram link in nl 2026-07-27 13:05:45 +02:00
Noah Lancien
63b88d199b feat: 💄 updated foirst bloc in nl 2026-07-24 16:55:29 +02:00
Alexis Gousseau
44cf2527c6 feat: ✨ add faq feature from custom plugin #57 2026-07-23 16:53:25 +02:00
Noah Lancien
ba75ec6fd1 fix: 💄 nl feedbacks 2026-07-22 10:02:09 +02:00
Noix
69a10eca8b Merge branch 'nl-2026-07' into 'develop'
feat: 🍱 2026 July newsletter

See merge request ldc-web/projets/reghalal!72
2026-07-21 12:21:11 +00:00
Noah Lancien
011fb79f87 feat: 🍱 2026 July newsletter 2026-07-21 14:20:15 +02:00
Noix
17c906d80e Merge branch 'issue-81' into 'develop'
fix #81 alow editors to regain access to mesbr plugin administration

See merge request ldc-web/projets/reghalal!71
2026-07-21 07:47:11 +00:00
Noah Lancien
75c69ee7fd fix: resolve conflicts 2026-07-21 09:46:12 +02:00
Jeremy Munsch
b95399e858 fix #81 alow editors to regain access to mesbr plugin administration 2026-07-21 09:41:05 +02:00
Noah Lancien
4e51c11958 Merge branch 'develop' into trunk 2026-07-20 17:13:39 +02:00
Noah Lancien
05275d60e1 fix: Added restriction to block wp2shell 2026-07-20 17:13:26 +02:00
Noah Lancien
78ab997b9a Merge branch 'develop' into trunk 2026-06-24 12:25:36 +02:00
Noix
3dba8805eb Merge branch '71-update-chore' into 'develop'
Resolve "ts-3452 : Outil réclas CRM"

See merge request ldc-web/projets/reghalal!67
2026-06-24 10:24:52 +00:00
Noah Lancien
f6f00649a8 chore: ⬆️ Bump theme version to 1.5.9 2026-06-24 12:19:48 +02:00
Noah Lancien
69a1afd31a Merge branch 'develop' into trunk 2026-06-24 10:40:07 +02:00
Noah Lancien
2d7c05f5c2 fix: 🍱 Added products links + replaced re7 with prod url 2026-06-24 10:39:52 +02:00
Noah Lancien
2834315284 Merge branch 'develop' into trunk 2026-06-24 09:03:37 +02:00
Noix
7778f0f9d2 Merge branch '79-update-wording' into 'develop'
fix: 🐛 changer folder name, and update wording

See merge request ldc-web/projets/reghalal!70
2026-06-24 07:02:10 +00:00
Corentin Huet
602866e566 fix: 🐛 changer folder name, and update wording 2026-06-19 14:25:53 +02:00
K Muller
82a543f0b9 Merge branch 'develop' into trunk 2026-06-18 16:56:27 +02:00
karl.muller
3fca6f5f86 Merge branch '79-newsletter' into 'develop'
feat: ✨ add newsletter 260630

See merge request ldc-web/projets/reghalal!69
2026-06-18 14:54:52 +00:00
Corentin Huet
7a56a6c21f feat: ✨ add newsletter 260630 2026-06-18 14:44:37 +02:00
Noix
3125b606d9 docs: 📝 Update RGPD.md 2026-06-12 14:26:10 +00:00
Noah Lancien
f8df081283 docs: 📝 Added rgpd.md 2026-06-12 16:14:48 +02:00
Corentin Huet
b0ea30490e chore: 🔧 add claim subject type variables 2026-06-12 11:34:08 +02:00
Corentin Huet
fb56c89261 chore: ⬆️ bump crm client version to 4.1.8 2026-06-12 11:30:50 +02:00
Noah Lancien
b957344f48 Merge branch 'develop' into trunk 2026-05-18 15:13:35 +02:00
Noah Lancien
0245216221 feat: 🍱 updated all links from re7 to prod in nl 2026-05-18 15:13:21 +02:00
Noah Lancien
fb5c5b1b41 fix: 🐛 updated game link in nl 2026-05-18 15:10:20 +02:00
Noah Lancien
6343ac1373 Merge branch 'develop' into trunk 2026-05-12 11:41:46 +02:00
Noix
36ed836407 Merge branch '74-newsletter-review' into 'develop'
fix: 🐛 update wording and style

See merge request ldc-web/projets/reghalal!66
2026-05-12 09:40:21 +00:00
Corentin Huet
ed25cd636c fix: 🐛 update wording and style 2026-05-11 10:11:08 +02:00
Vincent BRIDIER
5a3adcee35 Merge branch 'develop' into trunk 2026-05-07 09:52:32 +02:00
Vincent BRIDIER
e6c8f7c569 Merge branch '74-fix-header-link' into 'develop'
fix: 🐛 update header image link from .jpg to .png

See merge request ldc-web/projets/reghalal!65
2026-05-07 07:51:10 +00:00
Corentin Huet
7843272a85 fix: 🐛 update header image link from .jpg to .png 2026-05-07 09:48:10 +02:00
Vincent BRIDIER
092a2bfb42 Merge branch 'develop' into trunk 2026-05-07 08:27:59 +02:00
Vincent BRIDIER
fbe14f8084 Merge branch '74-newsletter' into 'develop'
feat: ✨ add newsletter 260521

See merge request ldc-web/projets/reghalal!64
2026-05-07 06:27:30 +00:00
Corentin Huet
51cdf980ad feat: ✨ add newsletter 260521 2026-05-06 15:48:03 +02:00
Noah Lancien
10b3925fd3 Merge branch 'develop' into trunk 2026-04-15 09:44:49 +02:00
Noix
9827be3452 Merge branch '72-bump-php' into 'develop'
chore: ⬆️ bump to php 8.3 and wp 6.9

See merge request ldc-web/projets/reghalal!63
2026-04-15 07:43:55 +00:00
Corentin Huet
1de3d4e8f6 chore: ⬆️ bump admin secure version to 3.1 2026-04-15 09:31:33 +02:00
Corentin Huet
20c89d193b chore: ⬆️ bump to php 8.3 and wp 6.9 2026-04-14 16:32:41 +02:00
Noah Lancien
df8de94fb7 Merge branch 'develop' into trunk 2026-03-30 09:47:20 +02:00
noah.lancien
90ff411390 Merge branch '70-newsletter-links' into 'develop'
fix: 🐛 set re7 to prod links

See merge request ldc-web/projets/reghalal!62
2026-03-30 07:44:03 +00:00
Corentin Huet
dc9db99529 fix: 🐛 set re7 to prod links 2026-03-27 10:57:29 +01:00
Noah Lancien
c8ee55807a Merge branch 'develop' into trunk 2026-03-23 14:19:33 +01:00
noah.lancien
6a64305ce3 Merge branch '70-newsletter' into 'develop'
feat: ✨ add newsletter 260331

See merge request ldc-web/projets/reghalal!61
2026-03-23 13:17:23 +00:00
Corentin Huet
08613dac46 feat: ✨ add newsletter 260331 2026-03-23 14:16:21 +01:00
Noah Lancien
7b9d250675 Merge branch 'develop' into trunk 2026-02-10 11:50:57 +01:00
Noah Lancien
a1d763b9d9 feat: bump admin-secure 2026-02-10 11:07:58 +01:00
noah.lancien
6afdc8f21f Merge branch '67-fix-nl' into 'develop'
fix: 🐛 update wording, set re7 to prod links

See merge request ldc-web/projets/reghalal!60
2026-02-10 10:00:16 +00:00
Corentin Huet
587b0be65e fix: 🐛 update wording, set re7 to prod links 2026-02-10 09:49:59 +01:00
Vincent BRIDIER
a87aaac416 Merge branch 'develop' into trunk 2026-02-09 13:07:30 +01:00
Vincent BRIDIER
972b64a177 Merge branch '67-newsletter' into 'develop'
feat: ✨ add newsletter 260226

See merge request ldc-web/projets/reghalal!59
2026-02-09 12:06:38 +00:00
Corentin Huet
e61a1aef88 feat: ✨ add newsletter 260226 2026-02-05 18:20:33 +01:00
Noah Lancien
07331a14b4 Merge branch 'develop' into trunk 2026-01-09 10:56:49 +01:00
Noah Lancien
5dd5d9f770 ci: added ci variables to define pod resources 2026-01-09 10:56:32 +01:00
Noah Lancien
b8e39f9089 Merge branch 'develop' into trunk 2025-12-30 16:01:42 +01:00
noah.lancien
f004168f53 Merge branch 'newsletter_janv_2026' into 'develop'
feat: 🚚 add links to PROD NL Reghalal

See merge request ldc-web/projets/reghalal!58
2025-12-30 15:00:46 +00:00
Ophélie Girault
8c25715aec feat: 🚚 add links to PROD NL Reghalal 2025-12-30 15:54:27 +01:00
Noah Lancien
c967623a52 Merge branch 'develop' into trunk 2025-12-23 15:23:50 +01:00
noah.lancien
7147d312e6 Merge branch 'newsletter_janv_2026' into 'develop'
feat: 🎉 create newsletter janv 2026 Réghalal

See merge request ldc-web/projets/reghalal!57
2025-12-23 14:20:16 +00:00
Ophélie Girault
9e30563edc feat: 🎉 create newsletter janv 2026 Réghalal 2025-12-23 15:01:14 +01:00
Noah Lancien
66cd2c22d5 Merge branch 'develop' into trunk 2025-12-10 15:42:21 +01:00
noah.lancien
0b7ab8f286 Merge branch '60-newsletter-links' into 'develop'
fix: 🐛 update wording, set re7 to prod links

See merge request ldc-web/projets/reghalal!56
2025-12-10 14:36:36 +00:00
Corentin Huet
1d72e06837 fix: 🐛 update wording, set re7 to prod links 2025-12-10 15:17:24 +01:00
Noah Lancien
998f9b3b61 Merge branch 'develop' into trunk 2025-12-08 12:34:57 +01:00
noah.lancien
a5f4bcf6f0 Merge branch '60-newsletter' into 'develop'
feat: ✨ add newsletter 251215

See merge request ldc-web/projets/reghalal!55
2025-12-08 11:32:17 +00:00
Corentin Huet
2e460f3988 feat: ✨ add newsletter 251215 2025-12-08 11:42:53 +01:00
Noah Lancien
189b72b663 Merge branch 'develop' into trunk 2025-12-04 10:56:41 +01:00
Noah Lancien
0d6b38916d chore: bump theme to 1.5.8 2025-12-04 10:55:54 +01:00
Noah Lancien
6d39a72983 Merge branch 'develop' into trunk 2025-11-20 11:33:09 +01:00
Noah Lancien
8f310d8587 chore: bump theme to 1.5.7 2025-11-20 11:32:44 +01:00
Noah Lancien
7a85417fbe Merge branch 'develop' into trunk 2025-11-13 16:17:57 +01:00
noah.lancien
111f90af0b Merge branch '54-newsletter-utm' into 'develop'
fix: change utm parameters on links

See merge request ldc-web/projets/reghalal!54
2025-11-13 14:54:48 +00:00
Corentin Huet
b79da5998f fix: change utm parameters on links 2025-11-13 13:17:11 +01:00
Noah Lancien
52d5da9878 Merge branch 'develop' into trunk 2025-11-13 10:06:23 +01:00
noah.lancien
1027805548 Merge branch '54-newsletter-links' into 'develop'
fix: update wording, set re7 to prod links

See merge request ldc-web/projets/reghalal!53
2025-11-13 09:03:59 +00:00
Corentin Huet
1a277c9054 fix: update wording, set re7 to prod links 2025-11-12 16:46:20 +01:00
Noah Lancien
11062480ec Merge branch 'develop' into trunk 2025-11-12 13:08:52 +01:00
noah.lancien
27da7411bd Merge branch '54-newsletter-feedbacks' into 'develop'
fix: update some style

See merge request ldc-web/projets/reghalal!52
2025-11-12 12:06:39 +00:00
Corentin Huet
ebc2f70bfb fix: update some style 2025-11-10 11:08:06 +01:00
Noah Lancien
4e422dd356 Merge branch 'develop' into trunk 2025-11-07 11:37:46 +01:00
noah.lancien
7b502e2c6a Merge branch '54-newsletter' into 'develop'
feat: ✨ add newsletter 251121

See merge request ldc-web/projets/reghalal!51
2025-11-07 10:35:20 +00:00
Corentin Huet
82d0ba89c3 feat: ✨ add newsletter 251121 2025-11-04 12:53:50 +01:00
K Muller
d3cbc848c7 Merge branch 'develop' into trunk 2025-10-20 12:57:01 +02:00
K Muller
57c324bf9a bump: 📦 theme bump 1.5.6 2025-10-20 12:55:38 +02:00
Noah Lancien
29b368458c Merge branch 'develop' into trunk 2025-10-13 11:31:42 +02:00
noah.lancien
a10d76c8d0 Merge branch 'newsletter-octobre-2025' into 'develop'
feat: 📦 add link to the game site newsletter

See merge request ldc-web/projets/reghalal!49
2025-10-13 09:29:33 +00:00
Ophélie Girault
2ba5250b46 feat: 📦 add link to the game site newsletter 2025-10-13 11:24:20 +02:00
Noah Lancien
c92bf43a7d Merge branch 'develop' into trunk 2025-10-10 11:26:35 +02:00
noah.lancien
803782e815 Merge branch 'newsletter-octobre-2025' into 'develop'
feat: 📦 update files and changes links RE7 to PROD newsletter

See merge request ldc-web/projets/reghalal!48
2025-10-10 09:24:32 +00:00
Ophélie Girault
12e1b30105 feat: 📦 update files format newsletter 2025-10-10 11:19:57 +02:00
Ophélie Girault
c36569b9c9 feat: 📦 update files and changes links RE7 to PROD newsletter 2025-10-10 10:56:25 +02:00
Noah Lancien
13ede7fc09 Merge branch 'develop' into trunk 2025-10-08 18:02:15 +02:00
noah.lancien
e68c6251ec Merge branch 'newsletter-octobre-2025' into 'develop'
feat: 🔧 add @font-face newsletter oct 2025

See merge request ldc-web/projets/reghalal!47
2025-10-08 15:59:55 +00:00
Ophélie Girault
eefe09efa6 feat: 🔧 add @font-face newsletter oct 2025 2025-10-08 17:58:34 +02:00
Noah Lancien
9d81fda7e0 Merge branch 'develop' into trunk 2025-10-08 16:48:43 +02:00
Noah Lancien
bda549cac2 ci: added staging-resources.yaml 2025-10-08 16:48:23 +02:00
Noah Lancien
1d8265b90e Merge branch 'develop' into trunk 2025-10-08 16:40:40 +02:00
noah.lancien
5d632e569b Merge branch 'newsletter-octobre-2025' into 'develop'
feat: 🎉 create newsletter reghalal oct 2025

See merge request ldc-web/projets/reghalal!46
2025-10-08 14:38:28 +00:00
Ophélie Girault
3d0e5d6c03 feat: 🎉 create newsletter reghalal oct 2025 2025-10-08 16:22:56 +02:00
Noah Lancien
f12911f127 Merge branch 'develop' into trunk 2025-09-15 10:33:07 +02:00
Noah Lancien
fd67271c53 chore: bump theme to 1.5.5 2025-09-15 10:31:17 +02:00
Noah Lancien
bc3d0dfe7a Merge branch 'develop' into trunk 2025-09-08 17:34:49 +02:00
noah.lancien
b916211fe9 Merge branch 'wording-nl' into 'develop'
fix: udpate newsletter wording

See merge request ldc-web/projets/reghalal!45
2025-09-08 15:33:20 +00:00
Corentin Huet
33fe38e353 fix: udpate newsletter wording 2025-09-08 16:09:23 +02:00
Noah Lancien
637ff2dd84 Merge branch 'develop' into trunk 2025-09-08 09:14:13 +02:00
noah.lancien
42c771f434 Merge branch 'fix-newsletter' into 'develop'
fix: reduce global paddings and correct UTM params

See merge request ldc-web/projets/reghalal!44
2025-09-08 07:10:17 +00:00
Corentin Huet
0883d03786 fix: reduce global paddings and correct UTM params 2025-09-05 10:50:14 +02:00
Vincent BRIDIER
3972e84378 Merge branch 'develop' into trunk 2025-09-03 12:54:42 +02:00
Vincent BRIDIER
b35c4bdf3f Merge branch 'newsletter-septembre' into 'develop'
feat: ✨ add newsletter 250921

See merge request ldc-web/projets/reghalal!43
2025-09-03 10:53:00 +00:00
Corentin Huet
444e17335e feat: ✨ add newsletter 250921 2025-09-02 10:30:43 +02:00
Noah Lancien
97f6593f36 Merge branch 'develop' into trunk 2025-08-08 16:14:47 +02:00
noah.lancien
555cf941a9 Merge branch 'issue-49' into 'develop'
fix: change the src link to prod

See merge request ldc-web/projets/reghalal!42
2025-08-08 14:11:57 +00:00
Nicolas Demangeat
fa7cc6a887 fix: change the src link to prod 2025-08-08 10:21:07 +02:00
Karl
291d0ac60c Merge branch 'develop' into trunk 2025-08-08 09:23:42 +02:00
karl.muller
9433bb21c0 Merge branch 'issue-49' into 'develop'
feat: ✨ add NL 250808 assets and index.html

See merge request ldc-web/projets/reghalal!41
2025-08-08 07:22:12 +00:00
Nicolas Demangeat
8a8704191a feat: ✨ add NL 250808 assets and index.html 2025-08-07 10:44:19 +02:00
Karl
c1e9dde51c Merge branch 'develop' into trunk 2025-07-24 10:13:43 +02:00
Karl
fc6c884858 bump: :chore: theme updated 1.5.4 2025-07-24 10:12:31 +02:00
System User
72482fac18 Merge branch 'develop' into trunk 2025-07-18 14:20:01 +02:00
noah.lancien
8a1f8df678 Merge branch 'bump-theme' into 'develop'
chore: ⬆️ bump theme to v1.5.3

See merge request ldc-web/projets/reghalal!40
2025-07-18 12:18:50 +00:00
Alexis Gousseau
3998473f07 chore: ⬆️ bump theme to v1.5.3 2025-07-18 13:32:37 +02:00
Noah Lancien
23b83d4639 Merge branch 'develop' into trunk 2025-07-16 15:15:01 +02:00
Noah Lancien
64c692047e chore: bump theme version to 1.5.2 2025-07-16 15:13:20 +02:00
Noah Lancien
fb9d2425c5 Merge branch 'develop' into trunk 2025-06-27 11:40:58 +02:00
noah.lancien
4c244afa94 Merge branch 'newsletter-juin-2025' into 'develop'
feat : 🚚 modif links newsletter juin 2025

See merge request ldc-web/projets/reghalal!38
2025-06-27 09:40:16 +00:00
Ophélie Girault
0fb2bfa488 feat : 🚚 modif links newsletter 2025-06-27 11:23:13 +02:00
Ophélie Girault
8344220ed5 feat : 🚚 modification texts bloc1 newsletter 2025-06-27 11:14:07 +02:00
Noah Lancien
3e34e788f2 Merge branch 'develop' into trunk 2025-06-26 17:03:00 +02:00
noah.lancien
4719b93f5a Merge branch 'newsletter-juin-2025' into 'develop'
newsletter to PROD

See merge request ldc-web/projets/reghalal!37
2025-06-26 15:02:15 +00:00
Ophélie Girault
e6f1b63283 newsletter to PROD 2025-06-26 16:29:52 +02:00
Noah Lancien
f8f5c6fdd4 Merge branch 'develop' into trunk 2025-06-24 10:09:27 +02:00
noah.lancien
57180c23b2 Merge branch 'newsletter-juin-2025' into 'develop'
feat : 📦 modification of texts and images for newsletter

See merge request ldc-web/projets/reghalal!36
2025-06-24 08:08:29 +00:00
Ophélie Girault
0644eef68f feat 📦 : rename files 2025-06-23 17:56:21 +02:00
Ophélie Girault
dcd596012f feat : 📦 modification of texts and images for newsletter 2025-06-23 17:18:08 +02:00
Noah Lancien
49ae2bc1ec Merge branch 'develop' into trunk 2025-06-17 13:22:55 +02:00
Noah Lancien
5e3c704628 ci: update image version + replace 443 port by 80 in manifest 2025-06-17 13:22:29 +02:00
Noah Lancien
62cc7ae39d Merge branch 'develop' into trunk 2025-06-11 17:04:22 +02:00
Noah Lancien
c6d0df2209 ci: Add DB_HOST to editable variables 2025-06-11 17:04:08 +02:00
Noah Lancien
70fa17409c chore: update WP to 6.8.1 2025-06-11 17:03:42 +02:00
Noah Lancien
6666e1e573 Merge branch 'develop' into trunk 2025-06-10 11:05:15 +02:00
Noah Lancien
b0fdfff11e fix: updated img src attributes to set re7 url 2025-06-10 11:05:01 +02:00
Noah Lancien
e2c4eb64ff Merge branch 'develop' into trunk 2025-06-10 10:50:46 +02:00
noah.lancien
6e2bca3eaa Merge branch 'issue-40' into 'develop'
fix: 🐛 rename asset in lowercase

See merge request ldc-web/projets/reghalal!35
2025-06-10 08:46:23 +00:00
Nicolas Demangeat
296e3dee3a fix: 🐛 rename asset in lowercase 2025-06-10 10:25:58 +02:00
Noah Lancien
057b98f9ef Merge branch 'develop' into trunk 2025-06-10 09:12:28 +02:00
noah.lancien
e67c58c543 Merge branch 'issue-40' into 'develop'
feat: ✨ add newsletter for june + assets

See merge request ldc-web/projets/reghalal!34
2025-06-10 06:58:52 +00:00
Nicolas Demangeat
93455afd0e feat: ✨ add newsletter for june + assets 2025-06-06 14:38:40 +02:00
Noah Lancien
3852b4b7a9 Merge branch 'develop' into trunk 2025-04-24 10:37:24 +02:00
noah.lancien
c50db4a73c Merge branch 'newsletters-reghalal-avril-2025' into 'develop'
feat : 🚚 added missing links NL reghalal April 2025 + PROD NL

See merge request ldc-web/projets/reghalal!33
2025-04-24 08:36:59 +00:00
Ophélie Girault
e5832b1386 feat : 🚚 added missing links for NL reghalal April 2025 for PROD 2025-04-24 10:15:40 +02:00
Karl Muller
1bb537bd4b Merge branch 'develop' into trunk 2025-04-07 06:52:44 +00:00
karl.muller
cd243bd7eb Merge branch 'newsletters-reghalal-avril-2025' into 'develop'
feat: ✨ newsletter 25/04/25

See merge request ldc-web/projets/reghalal!32
2025-04-07 06:52:13 +00:00
Ophélie Girault
df1e62654b feat: 🔥 removal of the unsubscribe section and the RGPD for the newsletter 2025-04-04 17:29:45 +02:00
Ophélie Girault
277ade6868 feat: 📦 change of link on two buttons for the newsletter 2025-04-04 17:22:03 +02:00
Ophélie Girault
99adf12b0f feat: ✨ newsletter 25/04/25 2025-04-04 16:58:00 +02:00
Karl Muller
7cc116efff Merge branch 'develop' into trunk 2025-04-02 09:04:21 +00:00
karl.muller
dc614135e5 Merge branch 'refactor-unsubscribe' into 'develop'
refactor: rewrite php code for a better legibility + created variable for stylesheet directory

See merge request ldc-web/projets/reghalal!31
2025-04-02 09:03:05 +00:00
Corentin Huet
6b5fb68ff9 refactor: rewrite php code for a better legibility + created variable for stylesheet directory 2025-03-31 09:37:57 +02:00
Noah Lancien
cb2c58b3cf Merge branch 'develop' into trunk 2025-03-26 12:00:56 +01:00
noah.lancien
c4c72c41f4 Merge branch 'nl-mars-vdef' into 'develop'
fix: some style feedback on the newsletter

See merge request ldc-web/projets/reghalal!30
2025-03-26 10:58:50 +00:00
Corentin Huet
0ad61be8a6 fix: some style feedback on the newsletter 2025-03-26 11:41:17 +01:00
Noah Lancien
d458bee81b Merge branch 'develop' into trunk 2025-03-24 15:40:51 +01:00
noah.lancien
d6a6ff6363 Merge branch 'nl-mars-feedback-v2' into 'develop'
fix: some style feedback on the newsletter

See merge request ldc-web/projets/reghalal!29
2025-03-24 14:40:25 +00:00
Corentin Huet
cd61f5d8aa fix: some style feedback on the newsletter 2025-03-24 15:25:27 +01:00
Noah Lancien
5d79ccb0c6 Merge branch 'develop' into trunk 2025-03-21 13:50:14 +01:00
noah.lancien
0dddabc7ee Merge branch 'nl-mars-feedback' into 'develop'
fix: some style feedback on the newsletter

See merge request ldc-web/projets/reghalal!28
2025-03-21 12:49:47 +00:00
Corentin Huet
c8e580beff fix: some style feedback on the newsletter 2025-03-21 13:08:33 +01:00
Noah Lancien
ac7bac2430 Merge branch 'develop' into trunk 2025-03-18 12:26:40 +01:00
noah.lancien
83463059cc Merge branch 'newsletter-mars-2025' into 'develop'
feat: add newsletter 25-03

See merge request ldc-web/projets/reghalal!27
2025-03-18 11:23:58 +00:00
Corentin Huet
ba363730be feat: add newsletter 25-03 2025-03-18 12:07:17 +01:00
Noah Lancien
42b38921bb Merge branch 'develop' into trunk 2025-03-04 12:22:37 +01:00
Noah Lancien
d083b3d1a6 chore: bump theme to 1.5.1 2025-03-04 12:22:23 +01:00
Noah Lancien
3b803e77a2 Merge branch 'develop' into trunk 2025-02-27 12:56:23 +01:00
Noah Lancien
0e2a59cc8f feat: bump crm v4 2025-02-27 12:55:15 +01:00
Vincent BRIDIER
55f6a188a8 Merge branch 'commentaires' into 'develop'
maj ht.access

See merge request ldc-web/projets/reghalal!25
2025-02-17 17:52:34 +00:00
Karl Muller
c5d7bdfcca Merge branch 'develop' into trunk 2025-02-14 13:21:59 +00:00
Karl Muller
98b07a51e3 bump: 📦 theme bump to 1.4.0 2025-02-14 13:21:46 +00:00
Karl Muller
11a854aa69 Merge branch 'develop' into trunk 2025-02-13 14:22:50 +00:00
Karl Muller
b1714ede99 bump: 📦 theme bump to 1.3.0 2025-02-13 14:22:24 +00:00
Noah Lancien
c5937df9a0 Merge branch 'develop' into trunk 2025-02-12 17:05:41 +01:00
Noah Lancien
5e85c82e39 chore: bump theme version to 1.2.0 2025-02-12 17:05:33 +01:00
Karl Muller
ad51dfee7b Merge branch 'develop' into trunk 2025-01-14 13:32:16 +00:00
Karl Muller
18a5c6eabf fix: change manifest for worker 2025-01-14 13:31:48 +00:00
Karl Muller
62f1d4757d Merge branch 'develop' into trunk 2024-11-25 10:16:15 +00:00
karl.muller
9a38ea5645 Merge branch 'bump/theme' into 'develop'
bump: update the reghalal-theme

See merge request ldc-web/projets/reghalal!26
2024-11-25 10:15:40 +00:00
Karl Muller
60eb944748 bump: update the reghalal-theme 2024-11-25 10:14:24 +00:00
Ophélie Girault
4128416c80 maj ht.access 2024-09-24 10:57:13 +02:00
Noah Lancien
f044b59e28 Merge branch 'develop' into trunk 2024-08-01 16:03:06 +02:00
noah.lancien
51a06d21fe Merge branch 'passerelle-archive' into 'develop'
fix: move passerelle/archive dir + added a cronJob to delete old archives

See merge request ldc-web/projets/reghalal!24
2024-08-01 14:02:10 +00:00
Noah Lancien
20de622f48 chore: bump reghalal-theme 2024-08-01 15:59:33 +02:00
Noah Lancien
cebe5a9e65 fix: delete all files in the purge cronJob 2024-08-01 15:59:20 +02:00
Noah Lancien
91c6d14a4d fix: move passerelle/archive dir + added a cronJob to delete old archives 2024-08-01 13:07:00 +02:00
Noah Lancien
51557bf17f Merge branch 'develop' into trunk 2024-08-01 09:52:24 +02:00
Noah Lancien
dd2d131c17 Updated manifest.yaml 2024-08-01 09:52:04 +02:00
noah.lancien
58e675792f Merge branch 'add-passerelle-folder' into 'develop'
fix: create passerelle folders

See merge request ldc-web/projets/reghalal!23
2024-08-01 07:47:24 +00:00
Sebastien Hattry
2c9b662347 fix: create passerelle folders 2024-08-01 09:18:16 +02:00
Vincent BRIDIER
202fbcee66 Merge branch 'develop' into trunk 2024-07-25 09:58:40 +02:00
Vincent BRIDIER
e4f900b749 Merge branch 'newsletters' into 'develop'
chore: add utm

See merge request ldc-web/projets/reghalal!22
2024-07-25 07:58:29 +00:00
Sebastien Hattry
7fe54e6e76 chore: add utm 2024-07-25 09:51:34 +02:00
Vincent BRIDIER
50530a69b7 Merge branch 'develop' into trunk 2024-07-24 16:49:40 +02:00
Vincent BRIDIER
2d236ea8ef Merge branch 'newsletters' into 'develop'
Newsletter juillet-aout

See merge request ldc-web/projets/reghalal!21
2024-07-24 14:48:46 +00:00
Sebastien Hattry
c50b8dcfa7 Newsletter juillet-aout 2024-07-23 10:22:54 +02:00
Louis Rossignol
d2c75608d9 Merge branch 'develop' into 'trunk'
Develop

See merge request ldc-web/projets/reghalal!19
2024-07-05 12:31:31 +00:00
Louis Rossignol
1c4048155b Merge branch 'lor-migration' into 'develop'
Preparation migration

See merge request ldc-web/projets/reghalal!18
2024-07-05 12:27:24 +00:00
LOR
3a21f65f67 Preparation migration 2024-07-05 14:23:43 +02:00
Vincent BRIDIER
faf42b4f0f Merge branch 'develop' into trunk 2024-07-03 10:34:38 +02:00
Vincent BRIDIER
6803b8a716 Bump theme Close #29 2024-07-03 10:34:27 +02:00
Vincent BRIDIER
e51216a2c3 Bump plugins 2024-07-03 09:05:26 +02:00
Vincent BRIDIER
d483ca2d53 Bump WP 2024-07-03 09:03:42 +02:00
Vincent BRIDIER
82fdfd217a Merge branch 'xmco' into 'develop'
xmco

See merge request ldc-web/projets/reghalal!17
2024-07-03 06:52:12 +00:00
Sam SINGH-LIEGARD
b5bb0fd62d xmco 2024-06-20 09:26:05 +00:00
Vincent BRIDIER
96d77ae87f Merge branch 'develop' into trunk 2024-06-12 17:08:15 +02:00
Vincent BRIDIER
a62d469661 Bump theme 2024-06-12 17:08:03 +02:00
Vincent BRIDIER
599e048df2 Merge branch 'develop' into trunk 2024-06-12 13:53:32 +02:00
Vincent BRIDIER
88e4c0a87f Bump theme + WP version 2024-06-12 13:52:24 +02:00
Vincent BRIDIER
8acb18bd8e Add FR lang 2024-06-12 13:32:30 +02:00
Vincent BRIDIER
d9c07a6477 Merge branch 'develop' into trunk 2024-05-30 17:17:00 +02:00
Vincent BRIDIER
be6aaa4b95 Merge branch 'newsletters' into 'develop'
Add recipe link into newsletter

See merge request ldc-web/projets/reghalal!16
2024-05-30 15:16:24 +00:00
Sebastien Hattry
1eed556783 Add recipe link 2024-05-30 17:06:17 +02:00
Jérémy Munsch
3d202ff7e5 Merge branch 'develop' into trunk 2024-05-30 10:46:32 +02:00
Vincent BRIDIER
83c8e9bce8 Merge branch 'newsletters' into 'develop'
Change relative paths

See merge request ldc-web/projets/reghalal!15
2024-05-30 08:41:11 +00:00
Sebastien Hattry
c51c57d5d1 Change relative paths 2024-05-30 10:32:25 +02:00
Vincent BRIDIER
894dabf46e Merge branch 'develop' into trunk 2024-05-30 10:09:35 +02:00
Vincent BRIDIER
e77187e2e8 Merge branch 'newsletters' into 'develop'
Newsletters

See merge request ldc-web/projets/reghalal!14
2024-05-30 08:07:55 +00:00
Sebastien Hattry
0a987fbcae Add relative path 2024-05-29 12:45:25 +02:00
Vincent BRIDIER
c7f126ced2 Merge branch 'develop' into trunk 2024-05-28 14:13:18 +02:00
Vincent BRIDIER
14d150199c Merge branch 'newsletters' into 'develop'
2ème Newsletter de Mai 2024

See merge request ldc-web/projets/reghalal!13
2024-05-28 12:12:32 +00:00
sebastien.hattry
2468e8d1f8 2ème Newsletter de Mai 2024 2024-05-28 12:12:32 +00:00
Vincent BRIDIER
93d0af62a3 Merge branch 'develop' into trunk 2023-10-18 09:29:41 +02:00
Vincent BRIDIER
f8c5472d99 Merge branch 'develop' into trunk 2023-07-12 15:51:04 +02:00
Vincent BRIDIER
e8d5cdd5a4 Merge branch 'develop' into trunk 2022-06-23 09:37:37 +02:00
Vincent BRIDIER
455d17c46c Merge branch 'develop' into trunk 2022-03-02 09:33:47 +01:00
Vincent BRIDIER
d2bdbdd568 Merge branch 'develop' into trunk 2022-02-18 13:29:02 +01:00
Vincent BRIDIER
f25d0c942e Merge branch 'develop' into trunk 2022-02-18 13:08:48 +01:00
Vincent BRIDIER
714223c81a Merge branch 'trunk' of https://voight001.lesidc.com/Reghalal2020 into trunk 2022-02-18 11:50:29 +01:00
Vincent BRIDIER
06264e466c Merge branch 'develop' into trunk 2022-02-18 11:49:00 +01:00
Olivier Legat
a857d08559 Merge branch 'develop' into trunk 2022-02-16 12:41:56 +01:00
Jérémy Munsch
2b7caabd38 Merge branch 'develop' into trunk 2022-02-11 15:26:24 +01:00
Olivier Legat
619bd1d471 Merge branch 'develop' into trunk 2021-09-16 09:22:10 +02:00
Vincent BRIDIER
a48ffe9e49 Merge branch 'develop' into trunk 2021-07-09 12:13:30 +02:00
Vincent BRIDIER
94932ff55a Merge branch 'develop' into trunk 2021-07-08 16:12:42 +02:00
224 changed files with 59414 additions and 781 deletions

View file

@ -51,8 +51,11 @@ MATOMO_SITE_ID=
GOOGLE_RECAPTCHA_PUBLIC=
GOOGLE_RECAPTCHA_PRIVATE=
#LDC WEB API TOKEN
LDCWEB_API_TOKEN=
# UWIL ADMIN SECURE
# - LIST SEPARATED WITH ',' (Required)
UWIL_ADMIN_SECURE_CIDR_LIST=""
# - LIST SEPARATED WITH ',' (Optional)
UWIL_ADMIN_SECURE_CIDR_PROJECT_ALLOWED_LIST=""
#MESBR
MESBR_REF_CAMP=
@ -62,6 +65,9 @@ MESBR_ENDPOINT=
CRM_ENDPOINT=
CRM_TOKEN=
CRM_PASSWORD=
CRM_SUBJECT_GAME=
CRM_SUBJECT_COMMERCIAL=
CRM_SUBJECT_OTHER=
# IMPORT SOCIAL NETWORKS WP PLUGIN
SOCIAL_NETWORKS=

7
.gitignore vendored
View file

@ -3,10 +3,13 @@ public/app/plugins/*
!public/app/plugins/ldc-import-inco-products
!public/app/plugins/.gitkeep
public/app/mu-plugins/*/
!public/app/mu-plugins/uwil-faq/
public/app/themes/reghalal-theme/
public/app/upgrade
public/app/uploads/*
!public/app/uploads/.gitkeep
public/app/uploads/passerelle/archive/*
!public/app/uploads/passerelle/archive/.gitkeep
public/app/cache/*
# WordPress
@ -32,3 +35,7 @@ wp-cli.phar
# Dumps
*.tar.gz
# .npmrc
# .zshrc
# .composer

View file

@ -1,23 +1,22 @@
include:
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'security/composer.yml'
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'build/composer-bedrock.yml'
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'build/docker-bedrock.yml'
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'test/test.yml'
- project: 'ldc-web/shared-ci'
ref: 'main'
file: 'deploy/deploy.yml'
- project: "ldc-web/shared-ci"
ref: "main"
file: "security/composer.yml"
- project: "ldc-web/shared-ci"
ref: "main"
file: "build/composer-bedrock-8.3.yml"
- project: "ldc-web/shared-ci"
ref: "main"
file: "build/docker-bedrock.yml"
- project: "ldc-web/shared-ci"
ref: "main"
file: "test/test.yml"
- project: "ldc-web/shared-ci"
ref: "main"
file: "deploy/deploy.yml"
stages:
- security
- build
- test
- deploy
- security
- build
- test
- deploy

View file

@ -1,5 +1,7 @@
FROM registry.s-web.fr/ldc-web/projets/ldc-web-images-docker/ldcweb-production-8.2:latest
ARG PHP_8_5_TAG=latest
FROM registry.s-web.fr/ldc-web/projets/ldc-web-images-docker/ldcweb-production-8.5:${PHP_8_5_TAG}
COPY --chown=www-data:www-data . /app/srcs
USER root
RUN chmod -R 755 /app/srcs/public/app/uploads
USER www-data
USER www-data

35
RGPD.md Normal file
View file

@ -0,0 +1,35 @@
# RGPD
## Site
### En base de données
| Table | Colonne | Contenu | Utilisation |
| ----- | ------- | ------- | ----------- |
| ldc_wp_customer | hashcode | Identifiant client en CRM | Liaison avec la CRM |
| ldc_wp_customer | email | Email du client | Connexion au club |
| --- | --- | --- | --- |
| wpjz_usermeta | meta_value | Des informations sur l'utilisateur, avec par exemple le nom et le prénom | Affichage sur le site ou BO |
| --- | --- | --- | --- |
| wpjz_users | user_email | Adresse mail | Identifiant, sert à la connexion au BO |
### Formulaire de contact (Passerelle et marketing)
| Donnée | Contenu |
| ------ | ------- |
| Civilité | Nom de la personne |
| Nom | Nom de la personne |
| Prénom | Prénom de la personne |
| Téléphone | Numéro de téléphone de la personne |
| Adresse E-mail | Adresse email de la personne |
| Adresse | Adresse de la personne |
| Ville | Ville de la personne |
| Code postal | Code postal de la personne |
## Cookies
| Service | Utilité |
| ------- | ------- |
| Matomo | Mesure d'audience |
| Google Recaptcha | Empêcher la soumission de formulaire par des robots |
| Youtube | Visionner du contenu disponible sur la plateforme Youtube |

View file

@ -2,10 +2,6 @@
"name": "uwil/reghalal",
"description": "Reghalal website",
"repositories": [
{
"type": "path",
"url": "./crm-client-3.0.6"
},
{
"type": "composer",
"url": "https://lab.s-web.fr/api/v4/group/23/-/packages/composer/packages.json"
@ -24,21 +20,21 @@
}
],
"require": {
"php": ">=8.0",
"php": ">=8.3",
"composer/installers": "^2.2",
"ldc/ldccrmv2client": "^3.0",
"ldc/ldccrmv4client": "^4.0",
"nesbot/carbon": "^3.7",
"oscarotero/env": "^2.1",
"roots/bedrock-autoloader": "^1.0",
"roots/bedrock-disallow-indexing": "^2.0",
"roots/wordpress": "6.3.1",
"roots/wordpress": "^7.0",
"roots/wp-config": "1.0.0",
"roots/wp-password-bcrypt": "1.1.0",
"uwil/admin-secure-wp": "^2.0",
"uwil/admin-secure-wp": "^3.1",
"uwil/import-social-networks-wp": "^2.0",
"uwil/mesbr-wp": "^1.0",
"uwil/reghalal-theme": "^1.0",
"uwil/mesbr-wp": "^1.2",
"uwil/reghalal-theme": "^1.6",
"vlucas/phpdotenv": "^5.5",
"wpackagist-plugin/wordpress-seo": "^21.2",
"wpackagist-plugin/wordpress-seo": "^27.4",
"wpackagist-plugin/wp-sitemap-page": "^1.9",
"wpengine/advanced-custom-fields-pro": "*"
},

2342
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -54,9 +54,10 @@ Config::define('GOOGLE_RECAPTCHA_PRIVATE', env('GOOGLE_RECAPTCHA_PRIVATE'));
Config::define('MATOMO_SITE_ID', env('MATOMO_SITE_ID'));
/**
* LDC Web API TOKEN
* UWIL ADMIN SECURE
*/
Config::define('LDCWEB_API_TOKEN', env('LDCWEB_API_TOKEN'));
Config::define('UWIL_ADMIN_SECURE_CIDR_LIST', env('UWIL_ADMIN_SECURE_CIDR_LIST', ''));
Config::define('UWIL_ADMIN_SECURE_CIDR_PROJECT_ALLOWED_LIST', env('UWIL_ADMIN_SECURE_CIDR_PROJECT_ALLOWED_LIST', ''));
/**
* CRM
@ -64,3 +65,6 @@ Config::define('LDCWEB_API_TOKEN', env('LDCWEB_API_TOKEN'));
Config::define('CRM_ENDPOINT', env('CRM_ENDPOINT'));
Config::define('CRM_TOKEN', env('CRM_TOKEN'));
Config::define('CRM_PASSWORD', env('CRM_PASSWORD'));
Config::define('CRM_SUBJECT_GAME', env('CRM_SUBJECT_GAME'));
Config::define('CRM_SUBJECT_COMMERCIAL', env('CRM_SUBJECT_COMMERCIAL'));
Config::define('CRM_SUBJECT_OTHER', env('CRM_SUBJECT_OTHER'));

View file

@ -0,0 +1,23 @@
<?php
use Carbon\Carbon;
/** @var WP_Filesystem_Direct $wp_filesystem */
global $wp_filesystem;
require_once(ABSPATH . 'wp-load.php');
require_once ABSPATH . 'wp-admin/includes/file.php';
WP_Filesystem();
$archiveFolder = sprintf('%s/uploads/passerelle/archive', WP_CONTENT_DIR);
if (is_dir($archiveFolder)) {
array_map(
function ($value) use ($wp_filesystem) {
if (Carbon::parse(filemtime($value))->lessThan(Carbon::now()->sub('3 months'))) {
$wp_filesystem->delete($value);
};
},
glob(sprintf('%s/*', $archiveFolder))
);
}

View file

@ -7,11 +7,11 @@ data:
DB_NAME: "${APP_DB_NAME}"
DB_USER: "${APP_DB_USER}"
DB_PASSWORD: "${APP_DB_PASSWORD}"
DB_HOST: "mariadb-service.common-services"
DB_HOST: "${APP_DB_HOST}"
DB_PREFIX: "wpjz_"
WP_ENV: "${APP_WP_ENV}"
WP_HOME: "https://www.${APP_DOMAIN}"
WP_SITEURL: "https://www.${APP_DOMAIN}/wp"
WP_HOME: "https://${REDIRECT}${APP_DOMAIN}"
WP_SITEURL: "https://${REDIRECT}${APP_DOMAIN}/wp"
AUTH_KEY: "${APP_AUTH_KEY}"
SECURE_AUTH_KEY: "${APP_SECURE_AUTH_KEY}"
LOGGED_IN_KEY: "${APP_LOGGED_IN_KEY}"
@ -32,7 +32,6 @@ data:
CONTACT_RECIPIENT: "${APP_CONTACT_RECIPIENT}"
MAIL_PASSERELLE: "${APP_MAIL_PASSERELLE}"
MATOMO_SITE_ID: "${APP_MATOMO_SITE_ID}"
LDCWEB_API_TOKEN: "${APP_LDCWEB_API_TOKEN}"
SOCIAL_NETWORKS: "${APP_SOCIAL_NETWORKS}"
FACEBOOK_APP_ID: "${APP_FACEBOOK_APP_ID}"
FACEBOOK_APP_SECRET: "${APP_FACEBOOK_APP_SECRET}"
@ -47,6 +46,10 @@ data:
CRM_ENDPOINT: "${APP_CRM_ENDPOINT}"
CRM_TOKEN: "${APP_CRM_TOKEN}"
CRM_PASSWORD: "${APP_CRM_PASSWORD}"
CRM_SUBJECT_GAME: "${APP_CRM_SUBJECT_GAME}"
CRM_SUBJECT_COMMERCIAL: "${APP_CRM_SUBJECT_COMMERCIAL}"
CRM_SUBJECT_OTHER: "${APP_CRM_SUBJECT_OTHER}"
UWIL_ADMIN_SECURE_CIDR_LIST: "${APP_GLOBAL_UWIL_ADMIN_SECURE_CIDR_LIST}"
---
apiVersion: v1
@ -82,6 +85,13 @@ spec:
envFrom:
- configMapRef:
name: ${CI_PROJECT_PATH_SLUG}-config-map
resources:
limits:
cpu: "${APP_CI_CPU_LIMIT}"
memory: "${APP_CI_MEMORY_LIMIT}"
requests:
cpu: "${APP_CI_CPU_REQUEST}"
memory: "${APP_CI_MEMORY_REQUEST}"
volumeMounts:
- name: storage
mountPath: /app/srcs/public/app/uploads
@ -97,7 +107,6 @@ spec:
persistentVolumeClaim:
claimName: ${CI_PROJECT_PATH_SLUG}-pvc-storage
---
apiVersion: v1
kind: Service
@ -108,10 +117,10 @@ spec:
app: ${CI_PROJECT_PATH_SLUG}-app
ports:
- port: 80
targetPort: 443
targetPort: 80
---
apiVersion: traefik.containo.us/v1alpha1
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: ${CI_PROJECT_PATH_SLUG}-ingress-route
@ -120,30 +129,15 @@ spec:
- web
- websecure
routes:
- match: Host(`${APP_DOMAIN}`, `www.${APP_DOMAIN}`)
- match: Host(`${APP_DOMAIN}`) || Host(`www.${APP_DOMAIN}`)
kind: Rule
services:
- name: ${CI_PROJECT_PATH_SLUG}-service
port: 80
middlewares:
- name: redirect-no-www-to-www
namespace: common-services
tls:
secretName: $APP_DOMAIN
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: $APP_DOMAIN
spec:
dnsNames:
- $APP_DOMAIN
- www.${APP_DOMAIN}
secretName: $APP_DOMAIN
issuerRef:
name: $APP_CERT_ISSUER
kind: ClusterIssuer
secretName: ${CRT_TLS_NAME}
---
apiVersion: batch/v1
@ -152,6 +146,9 @@ metadata:
name: ${CI_PROJECT_PATH_SLUG}-cronjob-sn
spec:
schedule: "30 4 * * *"
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
@ -194,6 +191,9 @@ metadata:
name: ${CI_PROJECT_PATH_SLUG}-cronjob-mbr
spec:
schedule: "30 4 * * *"
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
@ -228,3 +228,48 @@ spec:
fsGroup: 33
fsGroupChangePolicy: "OnRootMismatch"
restartPolicy: OnFailure
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: ${CI_PROJECT_PATH_SLUG}-cronjob-purge-archive
spec:
schedule: "0 0 * * 0"
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- ${CI_PROJECT_PATH_SLUG}-app
topologyKey: "kubernetes.io/hostname"
namespaces: [$KUBE_NAMESPACE]
containers:
- name: ${CI_PROJECT_PATH_SLUG}-scheduled
image: $IMAGE_TAG
imagePullPolicy: IfNotPresent
command:
- "php"
args:
- "crons/PurgePasserelleArchive.php"
envFrom:
- configMapRef:
name: ${CI_PROJECT_PATH_SLUG}-config-map
imagePullSecrets:
- name: docker-registry-credentials
securityContext:
runAsUser: 33
runAsGroup: 33
fsGroup: 33
fsGroupChangePolicy: "OnRootMismatch"
restartPolicy: OnFailure

14
production-resources.yaml Normal file
View file

@ -0,0 +1,14 @@
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: $APP_DOMAIN
spec:
dnsNames:
- $APP_DOMAIN
- www.${APP_DOMAIN}
secretName: $APP_DOMAIN
issuerRef:
name: $APP_CERT_ISSUER
kind: ClusterIssuer

View file

@ -12,4 +12,16 @@ RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# END WordPress
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
# Rules to disable WP Comments
<files wp-comments-post.php>
Order allow,deny
Deny from all
</files>

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"The suggested policy text has been copied to your clipboard.":["Le texte de la politique propos\u00e9e a \u00e9t\u00e9 copi\u00e9 dans votre presse-papiers."],"This user&#8217;s personal data export file was downloaded.":["L\u2019exportation des donn\u00e9es personnelles de ce compte a \u00e9t\u00e9 t\u00e9l\u00e9charg\u00e9e."],"This user&#8217;s personal data export link was sent.":["Le lien d\u2019exportation des donn\u00e9es personnelles de ce compte a \u00e9t\u00e9 envoy\u00e9."],"An error occurred while attempting to find and erase personal data.":["Une erreur est survenue lors de la tentative de trouver et de retirer des donn\u00e9es personnelles."],"Personal data was found for this user but some of the personal data found was not erased.":["Des donn\u00e9es personnelles ont \u00e9t\u00e9 trouv\u00e9es pour ce compte mais certaines donn\u00e9es personnelles trouv\u00e9es n\u2019ont pas \u00e9t\u00e9 supprim\u00e9es."],"All of the personal data found for this user was erased.":["Toutes les donn\u00e9es personnelles trouv\u00e9es pour ce compte ont \u00e9t\u00e9 supprim\u00e9es."],"Personal data was found for this user but was not erased.":["Des donn\u00e9es personnelles ont \u00e9t\u00e9 trouv\u00e9es pour ce compte mais n\u2019ont pas \u00e9t\u00e9 supprim\u00e9es."],"No personal data was found for this user.":["Aucune donn\u00e9e personnelle n\u2019a \u00e9t\u00e9 trouv\u00e9e pour ce compte."],"An error occurred while attempting to export personal data.":["Une erreur est survenue en tentant d\u2019exporter des donn\u00e9es personnelles."],"No personal data export file was generated.":["Aucun fichier d\u2019exportation de donn\u00e9es personnelles n\u2019a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9."]}},"comment":{"reference":"wp-admin\/js\/privacy-tools.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Editor tips":["Astuces de l\u2019\u00e9diteur"],"Disable tips":["D\u00e9sactiver les astuces"],"Got it":["J\u2019ai compris"],"See next tip":["Voir l\u2019astuce suivante"]}},"comment":{"reference":"wp-includes\/js\/dist\/nux.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"%1$s is deprecated since version %2$s! Use %3$s instead. Please consider writing more inclusive code.":["%1$s est obsol\u00e8te depuis la version %2$s\u00a0! Utilisez %3$s \u00e0 la place. Pensons \u00e0 \u00e9crire du code plus inclusif."]}},"comment":{"reference":"wp-admin\/js\/password-strength-meter.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"%s applied.":["%s appliqu\u00e9."],"%s removed.":["%s retir\u00e9."]}},"comment":{"reference":"wp-includes\/js\/dist\/rich-text.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Create pattern\/reusable block":["Cr\u00e9er une composition ou un bloc r\u00e9utilisable"],"Unsynced Pattern created: %s":["Composition non synchronis\u00e9e cr\u00e9\u00e9e\u00a0: %s"],"Synced Pattern created: %s":["Composition synchronis\u00e9e cr\u00e9\u00e9e\u00a0: %s"],"Untitled Pattern block":["Composition de blocs sans titre"],"Editing the pattern will update it anywhere it is used.":["La modification de cette composition mettra \u00e0 jour son contenu partout o\u00f9 elle est utilis\u00e9e."],"Synced":["Synchronis\u00e9e"],"My pattern":["Ma composition"],"Create pattern":["Cr\u00e9er une composition"],"Manage patterns":["G\u00e9rer les compositions"],"Detach pattern":["D\u00e9tacher la composition"],"Detach patterns":["D\u00e9tacher les compositions"],"Create":["Cr\u00e9er"],"Cancel":["Annuler"],"Name":["Nom"]}},"comment":{"reference":"wp-includes\/js\/dist\/reusable-blocks.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"%1$s Block. Row %2$d":["Bloc %1$s. Ligne %2$d"],"Design":["Apparence"],"%s Block":["Bloc %s"],"%1$s Block. %2$s":["Bloc %1$s. %2$s"],"%1$s Block. Column %2$d":["%1$s bloc. Colonne %2$d"],"%1$s Block. Column %2$d. %3$s":["Bloc %1$s. Colonne %2$d. %3$s"],"%1$s Block. Row %2$d. %3$s":["Bloc %1$s. Ligne %2$d. %3$s"],"Reusable blocks":["Blocs r\u00e9utilisables"],"Embeds":["Contenus embarqu\u00e9s"],"Text":["Texte"],"Widgets":["Widgets"],"Theme":["Th\u00e8me"],"Media":["M\u00e9dias"]}},"comment":{"reference":"wp-includes\/js\/dist\/blocks.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"You are probably offline.":["Vous \u00eates probablement hors ligne."],"Media upload failed. If this is a photo or a large image, please scale it down and try again.":["Le t\u00e9l\u00e9versement du m\u00e9dia a \u00e9chou\u00e9. S\u2019il s\u2019agit d\u2019une photo ou d\u2019une grande image, veuillez la redimensionner puis r\u00e9essayer."],"The response is not a valid JSON response.":["La r\u00e9ponse n\u2019est pas une r\u00e9ponse JSON valide."],"An unknown error occurred.":["Une erreur inconnue est survenue."]}},"comment":{"reference":"wp-includes\/js\/dist\/api-fetch.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Submitted on:":["Envoy\u00e9 le\u00a0:"],"%1$s %2$s, %3$s at %4$s:%5$s":["%2$s %1$s %3$s \u00e0 %4$sh%5$s"]}},"comment":{"reference":"wp-admin\/js\/comment.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Selected crop ratio exceeds the boundaries of the image. Try a different ratio.":["Le ratio de recadrage s\u00e9lectionn\u00e9 d\u00e9passe les limites de l\u2019image. Essayez un ratio diff\u00e9rent."],"Could not load the preview image.":["Impossible de charger l\u2019image de pr\u00e9visualisation."],"Could not load the preview image. Please reload the page and try again.":["Impossible de charger l\u2019image de pr\u00e9visualisation. Veuillez recharger la page et r\u00e9essayer."],"Image updated.":["Image mise \u00e0 jour."]}},"comment":{"reference":"wp-admin\/js\/image-edit.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Type a command or search":["Saisir une commande ou rechercher"],"Command palette":["Palette de commande"],"Open the command palette":["Ouvrir la palette de commandes"],"No results found.":["Aucun r\u00e9sultat."]}},"comment":{"reference":"wp-includes\/js\/dist\/commands.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Pattern imported successfully!":["Composition bien import\u00e9e\u00a0!"],"Invalid Pattern JSON file":["Fichier JSON de la composition invalide"],"button label\u0004Import":["Importer"],"Unknown error":["Erreur inconnue"],"Invalid JSON file":["Fichier JSON non valide"],"Import from JSON":["Importer depuis un JSON"],"File":["Fichier"]}},"comment":{"reference":"wp-includes\/js\/dist\/list-reusable-blocks.js"}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Annotation":["Annotation"]}},"comment":{"reference":"wp-includes\/js\/dist\/annotations.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Notifications":["Notifications"]}},"comment":{"reference":"wp-includes\/js\/dist\/a11y.js"}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Global Styles":["Styles globaux"],"Widget types":["Types de widget"],"Menu Item":["\u00c9l\u00e9ment de menu"],"Comment":["Commentaire"],"Widget areas":["Zone de widget"],"Site":["Site"],"Post Type":["Type de publication"],"Taxonomy":["Taxonomie"],"Menu Location":["Emplacements de menus"],"Menu":["Menu"],"User":["Compte"],"Base":["Base"],"Widgets":["Widgets"],"Site Title":["Titre du site"],"Themes":["Th\u00e8mes"],"(no title)":["(pas de titre)"],"Media":["M\u00e9dias"],"Plugins":["Extensions"]}},"comment":{"reference":"wp-includes\/js\/dist\/core-data.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Unavailable":["Indisponible"],"No details available":["Aucun d\u00e9tail disponible"],"A test is unavailable":["Un test n\u2019est pas disponible"],"All site health tests have finished running. There are items that should be addressed, and the results are now available on the page.":["Tous les tests de sant\u00e9 du site ont fini de tourner. Il y a des \u00e9l\u00e9ments qui devraient \u00eatre pris en charge, et les r\u00e9sultats sont maintenant disponible sur cette page."],"Should be improved":["Peut \u00eatre am\u00e9lior\u00e9"],"Good":["Bien"],"%s critical issue":["%s probl\u00e8me critique","%s probl\u00e8mes critiques"],"%s item with no issues detected":["%s \u00e9l\u00e9ment sans probl\u00e8me d\u00e9tect\u00e9","%s \u00e9l\u00e9ments sans probl\u00e8me d\u00e9tect\u00e9s"],"%s recommended improvement":["%s am\u00e9lioration recommand\u00e9e","%s am\u00e9liorations recommand\u00e9es"],"Site information has been copied to your clipboard.":["Les informations du site ont \u00e9t\u00e9 copi\u00e9es dans le presse-papier."],"All site health tests have finished running. Your site is looking good, and the results are now available on the page.":["Les v\u00e9rifications de sant\u00e9 sont termin\u00e9es. Votre site a bonne mine, et les r\u00e9sultats sont maintenant disponibles sur la page."],"All site health tests have finished running.":["Tous les tests de v\u00e9rification de sant\u00e9 du site sont termin\u00e9s."],"Please wait...":["Veuillez patienter\u2026"]}},"comment":{"reference":"wp-admin\/js\/site-health.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Use as featured image":["Utiliser comme image mise en avant"],"Saving\u2026":["Enregistrement\u2026"],"Could not set that as the thumbnail image. Try a different attachment.":["Impossible de s\u2019en servir comme miniature. Essayez un autre fichier joint."],"Done":["Termin\u00e9"]}},"comment":{"reference":"wp-admin\/js\/set-post-thumbnail.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Drag boxes here":["Glissez les blocs ici"],"Add boxes from the Screen Options menu":["Ajouter des blocs depuis le menu d\u2019options de l\u2019\u00e9cran"],"The boxes order has been saved.":["L\u2019ordre des boites a \u00e9t\u00e9 enregistr\u00e9."],"The box is on the last position":["La boite est en derni\u00e8re position"],"The box is on the first position":["La boite est en premi\u00e8re position"]}},"comment":{"reference":"wp-admin\/js\/postbox.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Widget has been added to the selected sidebar":["Le widget a \u00e9t\u00e9 ajout\u00e9 \u00e0 la colonne lat\u00e9rale s\u00e9lectionn\u00e9e"],"Saved":["Enregistr\u00e9"],"The changes you made will be lost if you navigate away from this page.":["Les modifications que vous avez faites seront perdues si vous changez de page."],"Save":["Enregistrer"]}},"comment":{"reference":"wp-admin\/js\/widgets.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"All application passwords revoked.":["Tous les mots de passe d\u2019application ont \u00e9t\u00e9 r\u00e9voqu\u00e9s."],"Are you sure you want to revoke all passwords? This action cannot be undone.":["Confirmez-vous la r\u00e9vocation de tous les mots de passe\u00a0? Cette action ne peut \u00eatre annul\u00e9e."],"Application password revoked.":["Mot de passe d\u2019application r\u00e9voqu\u00e9."],"Are you sure you want to revoke this password? This action cannot be undone.":["Confirmez-vous la r\u00e9vocation de ce mot de passe\u00a0? Cette action ne peut \u00eatre annul\u00e9e."],"Dismiss this notice.":["Ignorer cette notification."]}},"comment":{"reference":"wp-admin\/js\/application-passwords.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"URL Slug":["Slug de l\u2019URL"],"Permalink saved":["Permalien enregistr\u00e9"],"Published on:":["Publi\u00e9 le\u00a0:"],"Publish on:":["Publi\u00e9 le\u00a0:"],"Schedule for:":["Planifier pour\u00a0:"],"Saving Draft\u2026":["Enregistrement du brouillon\u2026"],"No more comments found.":["Aucun autre commentaire trouv\u00e9."],"Show more comments":["Afficher plus de commentaires"],"post action\/button label\u0004Schedule":["Planifier"],"%1$s %2$s, %3$s at %4$s:%5$s":["%2$s %1$s %3$s \u00e0 %4$sh%5$s"],"Public, Sticky":["Public, \u00e9pingl\u00e9"],"Privately Published":["Mis en ligne en priv\u00e9"],"Save as Pending":["Mettre en attente"],"Password Protected":["Prot\u00e9g\u00e9 par mot de passe"],"The file URL has been copied to your clipboard":["L\u2019URL du fichier a \u00e9t\u00e9 copi\u00e9e dans votre presse-papier"],"Could not set that as the thumbnail image. Try a different attachment.":["Impossible de s\u2019en servir comme miniature. Essayez un autre fichier joint."],"The changes you made will be lost if you navigate away from this page.":["Les modifications que vous avez faites seront perdues si vous changez de page."],"Update":["Mettre \u00e0 jour"],"Public":["Publique"],"Private":["Priv\u00e9e"],"OK":["OK"],"Save Draft":["Enregistrer le brouillon"],"Cancel":["Annuler"],"Publish":["Publier"],"Published":["Publi\u00e9"]}},"comment":{"reference":"wp-admin\/js\/post.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Are you sure you want to do this?\nThe comment changes you made will be lost.":["Voulez-vous vraiment faire cela\u00a0?\nLes modifications apport\u00e9es au commentaire seront perdues."],"Are you sure you want to edit this comment?\nThe changes you made will be lost.":["Confirmez-vous la modification de ce commentaire\u00a0?\nLes modifications que vous y avez apport\u00e9es seront perdues."],"Approve and Reply":["Approuver et r\u00e9pondre"],"Comments (%s)":["Commentaires (%s)"],"Reply":["R\u00e9pondre"],"Comments":["Commentaires"]}},"comment":{"reference":"wp-admin\/js\/edit-comments.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Preference activated - %s":["Pr\u00e9f\u00e9rence activ\u00e9e - %s"],"Preference deactivated - %s":["Pr\u00e9f\u00e9rence d\u00e9sactiv\u00e9e - %s"]}},"comment":{"reference":"wp-includes\/js\/dist\/preferences.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Text direction":["Direction du texte"],"A valid language attribute, like \"en\" or \"fr\".":["Un attribut de langue valide, comme \u00ab\u00a0en\u00a0\u00bb ou \u00ab\u00a0fr\u00a0\u00bb."],"Clear Unknown Formatting":["Effacer le formatage inconnu"],"Create page: <mark>%s<\/mark>":["Cr\u00e9er une page\u00a0: <mark>%s<\/mark>"],"Highlight":["Mettre en \u00e9vidence"],"Keyboard input":["Saisie au clavier"],"Inline code":["Code en ligne"],"Link edited.":["Lien modifi\u00e9."],"Link removed.":["Lien retir\u00e9."],"Inline image":["Image en ligne"],"media":["m\u00e9dia"],"photo":["photo"],"Warning: the link has been inserted but may have errors. Please test it.":["Attention\u00a0: le lien a bien \u00e9t\u00e9 ins\u00e9r\u00e9 mais peut contenir des erreurs. Veuillez le tester."],"Link inserted.":["Lien ins\u00e9r\u00e9."],"Left to right":["De gauche \u00e0 droite"],"Right to left":["De droite \u00e0 gauche"],"Link":["Lien"],"Background":["Arri\u00e8re-plan"],"Superscript":["Exposant"],"Subscript":["Indice"],"Unlink":["Supprimer le lien"],"Strikethrough":["Barrer"],"Underline":["Souligner"],"Italic":["Italique"],"Bold":["Gras"],"Language":["Langue"],"Text":["Texte"],"Width":["Largeur"],"Apply":["Appliquer"]}},"comment":{"reference":"wp-includes\/js\/dist\/format-library.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Create a classic widget layout with a title that\u2019s styled by your theme for your widget areas.":["Cr\u00e9ez une mise en page de widget classique avec un titre mis en forme par votre th\u00e8me pour vos zones de widgets."],"Widget Group":["Groupe de widget"],"The \"%s\" block was affected by errors and may not function properly. Check the developer tools for more details.":["Le bloc \u00ab\u00a0%s\u00a0\u00bb a \u00e9t\u00e9 affect\u00e9 par des erreurs et peut ne pas fonctionner correctement. V\u00e9rifiez les outils de d\u00e9veloppement pour obtenir plus de d\u00e9tails."],"Move to widget area":["D\u00e9placer vers la zone des widgets"],"Widget is missing.":["Widget manquant."],"No preview available.":["Aucun aper\u00e7u disponible."],"Legacy Widget Preview":["Aper\u00e7u de l\u2019ancien widget"],"Select widget":["S\u00e9lectionner le widget"],"Convert to blocks":["Convertir en blocs"],"Move to":["D\u00e9placer vers"],"Legacy Widget":["Ancien widget"],"Select a legacy widget to display:":["S\u00e9lectionner un ancien widget pour l\u2019afficher\u00a0:"],"There are no widgets available.":["Il n\u2019y a aucun widget disponible."],"Save":["Enregistrer"],"Title":["Titre"]}},"comment":{"reference":"wp-includes\/js\/dist\/widgets.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"The file URL has been copied to your clipboard":["L\u2019URL du fichier a \u00e9t\u00e9 copi\u00e9e dans votre presse-papier"],"An error has occurred. Please reload the page and try again.":["Une erreur est survenue. Veuillez recharger la page et r\u00e9essayer."]}},"comment":{"reference":"wp-admin\/js\/media.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Plugin details":["D\u00e9tails de l\u2019extension"],"Plugin: %s":["Extension\u00a0: %s"]}},"comment":{"reference":"wp-admin\/js\/plugin-install.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"%1$s is deprecated since version %2$s with no alternative available.":["%1$s est obsol\u00e8te depuis la version %2$s, aucune alternative n\u2019est disponible."],"%1$s is deprecated since version %2$s! Use %3$s instead.":["%1$s est obsol\u00e8te depuis la version %2$s\u00a0! Utilisez %3$s \u00e0 la place."],"Expand Main menu":["D\u00e9plier le menu principal"],"Dismiss this notice.":["Ignorer cette notification."],"You are about to permanently delete these items from your site.\nThis action cannot be undone.\n'Cancel' to stop, 'OK' to delete.":["Vous \u00eates en train de supprimer d\u00e9finitivement ces \u00e9l\u00e9ments de votre site.\nCette action ne peut pas \u00eatre annul\u00e9e.\n\u00ab\u00a0Annuler\u00a0\u00bb pour arr\u00eater, \u00ab\u00a0OK\u00a0\u00bb pour supprimer."],"Collapse Main menu":["Replier le menu principal"]}},"comment":{"reference":"wp-admin\/js\/common.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Something went wrong.":["Une mauvaise manipulation\u00a0?"],"Sorry, you are not allowed to do that.":["D\u00e9sol\u00e9, vous n\u2019avez pas l\u2019autorisation de faire cela."]}},"comment":{"reference":"wp-admin\/js\/tags.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Hide":["Masquer"],"Show":["Afficher"],"Hide password":["Cacher le mot de passe"],"Show password":["Afficher le mot de passe"]}},"comment":{"reference":"wp-admin\/js\/password-toggle.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Term selected.":["Terme s\u00e9lectionn\u00e9."],"tag delimiter\u0004,":[", "]}},"comment":{"reference":"wp-admin\/js\/tags-suggest.js"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Showing %1$s of %2$s media items":["Affichage de %1$s m\u00e9dias sur %2$s"],"Jump to first loaded item":["Aller au premier \u00e9l\u00e9ment charg\u00e9"],"Load more":["Charger la suite"],"Number of media items displayed: %d. Click load more for more results.":["Nombre de m\u00e9dias affich\u00e9s\u00a0: %d. Cliquer sur \u00ab\u00a0en afficher plus\u00a0\u00bb pour charger plus de r\u00e9sultats."],"The file URL has been copied to your clipboard":["L\u2019URL du fichier a \u00e9t\u00e9 copi\u00e9e dans votre presse-papier"],"%s item selected":["%s \u00e9l\u00e9ment s\u00e9lectionn\u00e9","%s \u00e9l\u00e9ments s\u00e9lectionn\u00e9s"],"Number of media items displayed: %d. Scroll the page for more results.":["Nombre d\u2019\u00e9l\u00e9ments m\u00e9dia affich\u00e9s\u00a0: %d. Fa\u00eetes d\u00e9filer la page pour plus de r\u00e9sultats."]}},"comment":{"reference":"wp-includes\/js\/media-views.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Your new password has not been saved.":["Votre nouveau mot de passe n\u2019a pas \u00e9t\u00e9 enregistr\u00e9."],"Hide":["Masquer"],"Show":["Afficher"],"Confirm use of weak password":["Confirmer l\u2019utilisation du mot de passe faible"],"Hide password":["Cacher le mot de passe"],"Show password":["Afficher le mot de passe"]}},"comment":{"reference":"wp-admin\/js\/user-profile.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"There is %s error which must be fixed before you can update this file.":["Il y a %s erreur qui doit \u00eatre corrig\u00e9e avant que vous puissiez mettre \u00e0 jour ce fichier.","Il y a %s erreurs qui doivent \u00eatre corrig\u00e9es avant que vous puissiez mettre \u00e0 jour ce fichier."],"Something went wrong. Your change may not have been saved. Please try again. There is also a chance that you may need to manually fix and upload the file over FTP.":["Quelque chose a mal tourn\u00e9. Votre modification n\u2019a peut-\u00eatre pas \u00e9t\u00e9 enregistr\u00e9e. Veuillez r\u00e9essayer. Il est \u00e9galement possible que vous deviez corriger manuellement et t\u00e9l\u00e9verser le fichier par FTP."],"The changes you made will be lost if you navigate away from this page.":["Les modifications que vous avez faites seront perdues si vous changez de page."]}},"comment":{"reference":"wp-admin\/js\/theme-plugin-editor.js"}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Your session has expired. You can log in again from this page or go to the login page.":["Votre session a expir\u00e9. Vous pouvez vous reconnecter depuis cette page ou aller \u00e0 la page de connexion."]}},"comment":{"reference":"wp-includes\/js\/wp-auth-check.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Get started here":["Premiers pas ici"],"Interested in creating your own block?":["Int\u00e9ress\u00e9\u00b7e pour cr\u00e9er votre propre bloc\u00a0?"],"Select a block to install and add it to your post.":["S\u00e9lectionnez un bloc \u00e0 installer et ajoutez-le \u00e0 votre publication."],"Available to install":["Disponible(s) pour l\u2019installation"],"No results available from your installed blocks.":["Aucun r\u00e9sultat disponible \u00e0 partir de vos blocs install\u00e9s."],"%d additional block is available to install.":["%d bloc suppl\u00e9mentaire est disponible pour l\u2019installation.","%d blocs suppl\u00e9mentaires sont disponibles pour l\u2019installation."],"Blocks available for install":["Blocs disponibles pour l\u2019installation"],"Install block":["Installer un bloc"],"%1$s <span>by %2$s<\/span>":["%1$s <span>par %2$s<\/span>"],"Installing\u2026":["Installation\u2026"],"Install %1$s. %2$s stars with %3$s review.":["Installer %1$s. %2$s \u00e9toile et %3$s avis.","Installer %1$s. %2$s \u00e9toiles et %3$s avis."],"Try reloading the page.":["Essayez de recharger la page."],"Block %s installed and added.":["Bloc %s install\u00e9 et ajout\u00e9."],"Your site doesn\u2019t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.":["Votre site ne prend pas en charge le bloc %s. Vous pouvez essayer de l\u2019installer, de le convertir en bloc de HTML personnalis\u00e9 ou de le retirer compl\u00e8tement."],"Your site doesn\u2019t include support for the %s block. You can try installing the block or remove it entirely.":["Votre site ne prend pas en charge le bloc \u00ab\u00a0%s\u00a0\u00bb. Vous pouvez essayer de l\u2019installer ou de le retirer compl\u00e8tement."],"The following block has been added to your site.":["Le bloc suivant a \u00e9t\u00e9 ajout\u00e9 \u00e0 votre site.","Les blocs suivants ont \u00e9t\u00e9 ajout\u00e9s \u00e0 votre site."],"Added: %d block":["Ajout\u00e9\u00a0: %d bloc","Ajout\u00e9s\u00a0: %d blocs"],"Error installing block. You can reload the page and try again.":["Erreur lors de l\u2019installation du bloc. Vous pouvez recharger la page et r\u00e9essayer."],"This block is already installed. Try reloading the page.":["Ce bloc est d\u00e9j\u00e0 install\u00e9. Essayez de recharger la page."],"An error occurred.":["Une erreur s\u2019est produite."],"Error registering block. Try reloading the page.":["Erreur lors de l\u2019enregistrement du bloc. Essayez de recharger la page."],"%s out of 5 stars":["%s sur 5 \u00e9toiles"],"Keep as HTML":["Conserver en HTML"],"Install %s":["Installer %s"],"Installed!":["Install\u00e9\u00a0!"],"No results found.":["Aucun r\u00e9sultat."],"By %s":["Par %s"]}},"comment":{"reference":"wp-includes\/js\/dist\/block-directory.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"All selected items have been removed. Select new items to use Bulk Actions.":["Tous les \u00e9l\u00e9ments s\u00e9lectionn\u00e9s ont \u00e9t\u00e9 supprim\u00e9s. S\u00e9lectionnez de nouveaux \u00e9l\u00e9ments pour utiliser les actions group\u00e9es."],"Remove &#8220;%s&#8221; from Bulk Edit":["Retirer \u00ab\u00a0%s\u00a0\u00bb de l\u2019action group\u00e9e"],"Error while saving the changes.":["Erreur lors de la sauvegarde des modifications."],"Changes saved.":["Modifications enregistr\u00e9es."],"Item removed.":["\u00c9l\u00e9ment retir\u00e9."],"tag delimiter\u0004,":[", "],"(no title)":["(pas de titre)"]}},"comment":{"reference":"wp-admin\/js\/inline-edit-post.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Clear color":["Effacer la couleur"],"Select default color":["S\u00e9lectionner la couleur par d\u00e9faut"],"Color value":["Valeur de couleur"],"Select Color":["S\u00e9lectionner une couleur"],"Clear":["Effacer"],"Default":["Valeur par d\u00e9faut"]}},"comment":{"reference":"wp-admin\/js\/color-picker.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Term added.":["Terme ajout\u00e9."],"Term removed.":["Terme retir\u00e9."],"Remove term:":["Retirer un terme\u00a0:"],"tag delimiter\u0004,":[", "]}},"comment":{"reference":"wp-admin\/js\/tags-box.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Tilde":["Tilde"],"Backtick":["Retour arri\u00e8re"],"Period":["P\u00e9riode"],"Comma":["Virgule"]}},"comment":{"reference":"wp-includes\/js\/dist\/keycodes.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"You are about to permanently delete this menu.\n'Cancel' to stop, 'OK' to delete.":["Vous \u00eates sur le point de supprimer d\u00e9finitivement ce menu.\nCliquez sur \u00ab\u00a0Annuler\u00a0\u00bb pour abandonner, \u00ab\u00a0OK\u00a0\u00bb pour le supprimer."],"missing menu item navigation label\u0004(no label)":["(sans libell\u00e9)"],"The changes you made will be lost if you navigate away from this page.":["Les modifications que vous avez faites seront perdues si vous changez de page."],"No results found.":["Aucun r\u00e9sultat."]}},"comment":{"reference":"wp-admin\/js\/nav-menu.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Your new password for %s is:":["Votre nouveau mot de passe pour %s est\u00a0:"],"Be sure to save this in a safe location. You will not be able to retrieve it.":["Assurez-vous de le conserver en lieu s\u00fbr. Vous ne pourrez pas le r\u00e9cup\u00e9rer."]}},"comment":{"reference":"wp-admin\/js\/auth-app.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"text direction\u0004ltr":["ltr"]}},"comment":{"reference":"wp-includes\/js\/dist\/i18n.js"}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Dismiss":["Ignorer"]}},"comment":{"reference":"wp-includes\/js\/wp-pointer.js"}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Error while saving the changes.":["Erreur lors de la sauvegarde des modifications."],"Changes saved.":["Modifications enregistr\u00e9es."]}},"comment":{"reference":"wp-admin\/js\/inline-edit-tax.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"%s: Sorry, you are not allowed to upload this file type.":["D\u00e9sol\u00e9, vous n\u2019avez pas l\u2019autorisation de t\u00e9l\u00e9verser ce type de fichier."],"Select or Upload Media":["S\u00e9lectionnez ou t\u00e9l\u00e9versez un fichier"],"Error while uploading file %s to the media library.":["Erreur lors du t\u00e9l\u00e9versement du fichier %s dans la m\u00e9diath\u00e8que."],"%s: This file is empty.":["%s\u00a0: ce fichier est vide."],"%s: Sorry, this file type is not supported here.":["%s\u00a0: d\u00e9sol\u00e9, ce type de fichier n\u2019est pas pris en charge ici."],"%s: This file exceeds the maximum upload size for this site.":["%s\u00a0: ce fichier d\u00e9passe la taille maximum de t\u00e9l\u00e9versement pour ce site."]}},"comment":{"reference":"wp-includes\/js\/dist\/media-utils.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Block rendered as empty.":["Bloc devenu vide."],"Error loading block: %s":["Erreur de chargement du bloc\u00a0: %s"]}},"comment":{"reference":"wp-includes\/js\/dist\/server-side-render.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:18:24+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Attend an upcoming event near you.":["Assistez au prochain \u00e9v\u00e9nement pr\u00e8s de chez vous."],"Events widget offset prefix\u0004GMT":["GMT"],"%1$s %2$d \u2013 %3$s %4$d, %5$d":["%1$s %2$d \u2013 %3$s %4$d, %5$d"],"upcoming events year format\u0004Y":["Y"],"upcoming events day format\u0004j":["j"],"%1$s %2$d\u2013%3$d, %4$d":["%1$s %2$d\u2013%3$d, %4$d"],"upcoming events month format\u0004F":["F"],"City updated. Listing events near %s.":["Ville mise \u00e0 jour. Affichage des \u00e9v\u00e8nements pr\u00e8s de %s."],"We couldn\u2019t locate %s. Please try another nearby city. For example: Kansas City; Springfield; Portland.":["Nous ne localisons pas %s. Veuillez essayer une autre ville proche. Par exemple\u00a0: Lille, Bordeaux ou Grenoble."],"An error occurred. Please try again.":["Une erreur est survenue. Veuillez essayer \u00e0 nouveau."],"Enter your closest city to find nearby events.":["Saisissez une ville proche de chez vous pour trouver un \u00e9v\u00e8nement."],"l, M j, Y":["l j M Y"]}},"comment":{"reference":"wp-admin\/js\/dashboard.js"}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Could not set that as the thumbnail image. Try a different attachment.":["Impossible de s\u2019en servir comme miniature. Essayez un autre fichier joint."]}},"comment":{"reference":"wp-includes\/js\/media-editor.js"}}

View file

@ -0,0 +1 @@
{"translation-revision-date":"2023-10-12 12:16:45+0000","generator":"GlotPress\/4.0.0-alpha.9","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"Open library":["Ouvrir la biblioth\u00e8que"],"Open templates":["Ouvrir les mod\u00e8les"],"Open style variations":["Ouvrir les variations de style"],"Open pages":["Ouvrir les pages"],"Open navigation":["Ouvrir la navigation"],"Manage all of my patterns":["G\u00e9rer toutes mes compositions"],"Add new post":["Ajouter un article"],"Add new page":["Ajouter une page"],"(no title)":["(pas de titre)"]}},"comment":{"reference":"wp-includes\/js\/dist\/core-commands.js"}}

File diff suppressed because one or more lines are too long

Binary file not shown.

20218
public/app/languages/fr_FR.po Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
<?php
require_once WPMU_PLUGIN_DIR . '/uwil-faq/index.php';

View file

@ -0,0 +1,238 @@
<?php
/*
Plugin Name: UWIL FAQ
Description: Plugin to manage topics, questions and responses
Version: 1.0
Author: UWIL
*/
require_once __DIR__ . '/utils.php';
/**
* Add foreign key constraints (dbDelta doesn't handle them).
*
* @return void
*/
function uwil_add_foreign_keys(): void
{
global $wpdb;
$constraints = [
[
'table' => 'uwil_questions',
'name' => 'fk_questions_topic',
'sql' => "ALTER TABLE uwil_questions
ADD CONSTRAINT fk_questions_topic
FOREIGN KEY (topic_id) REFERENCES uwil_topics(id)
ON DELETE CASCADE",
],
];
foreach ($constraints as $constraint) {
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = %s
AND TABLE_NAME = %s
AND CONSTRAINT_NAME = %s",
DB_NAME,
$constraint['table'],
$constraint['name']
));
if (!$exists) {
$wpdb->query($constraint['sql']);
}
}
}
/**
* Create tables.
*
* @return void
*/
function uwil_faq_create_tables(): void
{
global $wpdb;
$charset = $wpdb->get_charset_collate();
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
dbDelta("CREATE TABLE uwil_topics (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
`order` INT NOT NULL DEFAULT 0
) $charset;");
dbDelta("CREATE TABLE uwil_questions (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
topic_id BIGINT UNSIGNED NOT NULL,
title VARCHAR(255) NOT NULL,
contenu TEXT NOT NULL,
`order` INT NOT NULL DEFAULT 0,
KEY topic_id (topic_id)
) $charset;");
uwil_add_foreign_keys();
}
add_action('admin_init', function () {
global $wpdb;
$tables = ['uwil_topics', 'uwil_questions', 'uwil_responses'];
foreach ($tables as $table) {
if ($wpdb->get_var("SHOW TABLES LIKE '$table'") !== $table) {
uwil_faq_create_tables();
break;
}
}
});
/**
* Add button plugin in the admin.
*
* @return void
*/
function plugin_menu(): void
{
add_menu_page(
'UWIL FAQ',
'UWIL FAQ',
'edit_pages',
'uwil-faq-topics',
'renderTopics',
'dashicons-editor-help',
);
add_submenu_page(
'uwil-faq-topics',
'Thématiques',
'Thématiques',
'edit_pages',
'uwil-faq-topics',
'renderTopics',
);
add_submenu_page(
'uwil-faq-topics',
'Questions/Réponses',
'Questions/Réponses',
'edit_pages',
'uwil-faq-questions',
'renderQuestions',
);
}
add_action('admin_menu', 'plugin_menu');
/**
* Add style resource.
*
* @return void
*/
function custom_style(): void
{
wp_register_style('uwil-faq', WPMU_PLUGIN_URL . '/uwil-faq/style.css');
wp_enqueue_style('uwil-faq');
}
add_action('admin_init', 'custom_style');
/** LIMITS */
define('UWIL_MIN_TOPIC', 3);
define('UWIL_MAX_TOPIC', 6);
define('UWIL_MIN_QUESTIONS_PER_TOPIC', 3);
define('UWIL_MAX_QUESTIONS_PER_TOPIC', 8);
/**
* Render FAQ topics page.
*
* @return void
*/
function renderTopics(): void
{
global $wpdb;
uwil_render_crud([
'table' => 'uwil_topics',
'title' => 'Thématiques',
'min_total' => UWIL_MIN_TOPIC,
'max_total' => UWIL_MAX_TOPIC,
'fields' => [
[
'name' => 'title',
'label' => 'Titre',
'type' => 'text',
],
],
'columns' => [
[
'label' => 'Titre',
'field' => 'title',
],
[
'label' => 'Questions',
'field' => 'id',
'render' => function ($item) use ($wpdb) {
$count = (int) $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM uwil_questions WHERE topic_id = %d",
$item->id
));
$class = ($count < UWIL_MIN_QUESTIONS_PER_TOPIC || $count > UWIL_MAX_QUESTIONS_PER_TOPIC) ? 'uwil-count-warning' : 'uwil-count-ok';
return '<span class="' . $class . '">' . $count . ' / ' . UWIL_MAX_QUESTIONS_PER_TOPIC . '</span>';
},
],
],
]);
}
/**
* Render FAQ questions page.
*
* @return void
*/
function renderQuestions(): void
{
global $wpdb;
uwil_render_crud([
'table' => 'uwil_questions',
'title' => 'Questions',
'parent_key' => 'topic_id',
'min_per_parent' => UWIL_MIN_QUESTIONS_PER_TOPIC,
'max_per_parent' => UWIL_MAX_QUESTIONS_PER_TOPIC,
'filter' => [
'key' => 'topic_id',
'label' => 'Filtrer par thématique',
'options' => fn() => $wpdb->get_results("SELECT id, title FROM uwil_topics ORDER BY `order`"),
],
'fields' => [
[
'name' => 'topic_id',
'label' => 'Thématique',
'type' => 'select',
'options' => fn() => $wpdb->get_results("SELECT id, title FROM uwil_topics ORDER BY `order`"),
],
[
'name' => 'title',
'label' => 'Question',
'type' => 'text',
],
[
'name' => 'contenu',
'label' => 'Réponse',
'type' => 'wysiwyg',
],
],
'columns' => [
[
'label' => 'Thématique',
'field' => 'topic_id',
'render' => function ($item) use ($wpdb) {
return esc_html($wpdb->get_var($wpdb->prepare(
"SELECT title FROM uwil_topics WHERE id = %d",
$item->topic_id
)));
},
],
[
'label' => 'Question',
'field' => 'title',
],
[
'label' => 'Réponse',
'field' => 'contenu',
],
],
]);
}

View file

@ -0,0 +1,131 @@
:root {
--faq-spacing: 15px;
}
.uwil-faq {
width: calc(100% - 20px);
padding-right: 20px;
padding-left: 0;
margin-right: auto;
margin-left: auto;
}
.uwil-faq-title {
padding-bottom: 0px !important;
margin-bottom: var(--faq-spacing) !important;
}
.uwil-faq-cards {
display: flex;
gap: var(--faq-spacing);
flex-wrap: wrap;
}
.uwil-faq-card {
background: #fff;
border: 1px solid #c3c4c7;
padding: 24px;
text-align: center;
min-width: 180px;
flex: 1;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}
.uwil-faq-card-count {
font-size: 32px;
font-weight: 600;
margin: var(--faq-spacing) 0;
}
.uwil-faq-card-label {
color: #646970;
margin-bottom: var(--faq-spacing);
}
.uwil-faq-content {
display: flex;
flex-direction: column;
justify-content: start;
align-items: start;
gap: var(--faq-spacing);
}
@media screen and (min-width: 1100px) {
.uwil-faq-content {
flex-direction: row;
}
}
.uwil-faq-list {
display: flex;
flex-direction: column;
justify-content: start;
align-items: stretch;
width: 100%;
gap: var(--faq-spacing);
}
.uwil-faq-form {
padding-bottom: var(--faq-spacing);
border-bottom: 1px solid #c3c4c7;
display: flex;
flex-direction: column;
justify-content: start;
align-items: stretch;
gap: var(--faq-spacing);
width: 100%;
}
.uwil-faq-form select {
max-width: 100%;
}
@media screen and (min-width: 1100px) {
.uwil-faq-form {
padding-bottom: 0px;
padding-right: var(--faq-spacing);
border-bottom: 0;
border-right: 1px solid #c3c4c7;
width: fit-content;
}
.uwil-faq-form > * {
width: 25rem;
}
}
.uwil-faq-field {
display: flex;
flex-direction: column;
justify-content: center;
align-items: stretch;
gap: 2px;
}
.uwil-faq-actions {
width: 100%;
display: flex;
justify-content: center;
align-items: stretch;
gap: var(--faq-spacing);
}
.uwil-faq-actions > * {
width: inherit;
margin: 0 !important;
text-align: center;
}
.uwil-count-ok {
color: #00a32a;
font-weight: 600;
}
.uwil-count-warning {
color: #d63638;
font-weight: 600;
}
.uwil-faq-border-0 {
border: 0 !important;
}

View file

@ -0,0 +1,285 @@
<?php
/**
* CRUD order.
*
* @param string $table Name of the table.
* @param integer $id Target id to move.
* @param string $direction Direction to move target element.
* @param string|null $parent_key Relation parent key.
* @return void
*/
function uwil_move_item(string $table, int $id, string $direction, ?string $parent_key = null): void
{
global $wpdb;
$current = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table WHERE id = %d", $id));
if (!$current) return;
$operator = $direction === 'up' ? '<' : '>';
$order = $direction === 'up' ? 'DESC' : 'ASC';
$where = "`order` $operator %d";
$params = [$current->order];
if ($parent_key) {
$where .= " AND $parent_key = %d";
$params[] = $current->{$parent_key};
}
$neighbor = $wpdb->get_row($wpdb->prepare(
"SELECT * FROM $table WHERE $where ORDER BY `order` $order LIMIT 1",
...$params
));
if ($neighbor) {
$wpdb->update($table, ['order' => $neighbor->order], ['id' => $current->id]);
$wpdb->update($table, ['order' => $current->order], ['id' => $neighbor->id]);
}
}
/**
* CRUD generic.
*
* @param array $config {
* string table Name of the table.
* string title Title of the page.
* array fields List of fields in formulary.
* array columns Columns to display in the table.
* string parent_key Name of the relationship column (optionnal).
* }
*/
function uwil_render_crud(array $config): void
{
global $wpdb;
$table = $config['table'];
$parent_key = $config['parent_key'] ?? null;
$min_per_parent = $config['min_per_parent'] ?? null;
$max_per_parent = $config['max_per_parent'] ?? null;
$min_total = $config['min_total'] ?? null;
$max_total = $config['max_total'] ?? null;
$filter = $config['filter'] ?? null;
// Delete action.
if (isset($_GET['delete']) && check_admin_referer('uwil_delete_' . $_GET['delete'])) {
$id = (int) $_GET['delete'];
$item = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table WHERE id = %d", $id));
$can_delete = true;
if ($item && $parent_key && $min_per_parent !== null) {
$count = (int) $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM $table WHERE $parent_key = %d",
$item->{$parent_key}
));
if ($count <= $min_per_parent) {
$can_delete = false;
echo '<div class="error"><p>Suppression impossible : minimum de ' . esc_html($min_per_parent) . ' élément(s) requis.</p></div>';
}
}
if ($can_delete && $item && $min_total !== null) {
$count = (int) $wpdb->get_var("SELECT COUNT(*) FROM $table");
if ($count <= $min_total) {
$can_delete = false;
echo '<div class="error"><p>Suppression impossible : minimum de ' . esc_html($min_total) . ' élément(s) requis au total.</p></div>';
}
}
if ($can_delete) {
$wpdb->delete($table, ['id' => $id]);
echo '<div class="updated"><p>Élément supprimé.</p></div>';
}
}
// Add/modification.
if (isset($_POST['uwil_submit']) && check_admin_referer('uwil_form_' . $config['table'])) {
$data = [];
foreach ($config['fields'] as $field) {
$value = wp_unslash($_POST[$field['name']] ?? '');
$data[$field['name']] = $field['type'] === 'wysiwyg'
? wp_kses_post($value)
: sanitize_text_field($value);
}
$is_new = empty($_POST['id']);
$can_save = true;
// Check max per parent before save.
if ($is_new && $parent_key && $max_per_parent !== null && !empty($data[$parent_key])) {
$count = (int) $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM $table WHERE $parent_key = %d",
$data[$parent_key]
));
if ($count >= $max_per_parent) {
$can_save = false;
echo '<div class="error"><p>Ajout impossible : maximum de ' . esc_html($max_per_parent) . ' élément(s) atteint pour ce parent.</p></div>';
}
}
// Check max total before save.
if ($can_save && $is_new && $max_total !== null) {
$count = (int) $wpdb->get_var("SELECT COUNT(*) FROM $table");
if ($count >= $max_total) {
$can_save = false;
echo '<div class="error"><p>Ajout impossible : maximum de ' . esc_html($max_total) . ' élément(s) atteint au total.</p></div>';
}
}
if ($can_save) {
if (!$is_new) {
$wpdb->update($table, $data, ['id' => (int) $_POST['id']]);
echo '<div class="updated"><p>Élément modifié.</p></div>';
} else {
$where = '';
if ($parent_key && !empty($data[$parent_key])) {
$where = $wpdb->prepare(" WHERE $parent_key = %d", $data[$parent_key]);
}
$max_order = (int) $wpdb->get_var("SELECT MAX(`order`) FROM $table$where");
$data['order'] = $max_order + 1;
$wpdb->insert($table, $data);
echo '<div class="updated"><p>Élément ajouté.</p></div>';
}
}
}
// Order action.
if (isset($_GET['move'], $_GET['id']) && check_admin_referer('uwil_move_' . $_GET['id'])) {
uwil_move_item($table, (int) $_GET['id'], $_GET['move'], $parent_key);
}
// Edit action.
$edit_item = null;
if (isset($_GET['edit'])) {
$edit_item = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table WHERE id = %d", (int) $_GET['edit']));
}
// Filter action.
$filter_value = null;
if ($filter && isset($_GET[$filter['key']]) && $_GET[$filter['key']] !== '') {
$filter_value = (int) $_GET[$filter['key']];
}
// List and order.
$order_by = $parent_key ? "$parent_key ASC, `order` ASC" : "`order` ASC";
if ($filter_value) {
$items = $wpdb->get_results($wpdb->prepare(
"SELECT * FROM $table WHERE {$filter['key']} = %d ORDER BY $order_by",
$filter_value
));
} else {
$items = $wpdb->get_results("SELECT * FROM $table ORDER BY $order_by");
}
?>
<div class="wrap uwil-faq">
<h1 class="uwil-faq-title"><?= esc_html($config['title']) ?></h1>
<div class="uwil-faq-content">
<!-- Formulary -->
<form class="uwil-faq-form" method="post">
<?php wp_nonce_field('uwil_form_' . $config['table']); ?>
<input type="hidden" name="id" value="<?= esc_attr($edit_item->id ?? '') ?>">
<?php foreach ($config['fields'] as $field): ?>
<?php
$value = $edit_item->{$field['name']} ?? '';
$field_id = 'uwil_field_' . $field['name'];
?>
<?php if ($field['type'] === 'select'): ?>
<div class="uwil-faq-field">
<label for="<?= esc_attr($field_id) ?>"><?= esc_html($field['label']) ?></label>
<select id="<?= esc_attr($field_id) ?>" name="<?= esc_attr($field['name']) ?>" required>
<option value="" selected disabled>Sélectionner une valeur</option>
<?php foreach ($field['options']() as $opt): ?>
<option value="<?= esc_attr($opt->id) ?>" <?= selected($value, $opt->id, false) ?>>
<?= esc_html($opt->title) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<?php elseif ($field['type'] === 'wysiwyg'): ?>
<div class="uwil-faq-field">
<label for="<?= esc_attr($field_id) ?>"><?= esc_attr($field['label']) ?></label>
<?php
wp_editor($value, esc_attr($field_id), [
'textarea_name' => $field['name'],
'teeny' => true,
'media_buttons' => false,
'textarea_rows' => 6,
'quicktags' => false,
'tinymce' => [
'toolbar1' => 'bold,italic,underline,link,unlink',
'toolbar2' => '',
],
]);
?>
</div>
<?php else: ?>
<div class="uwil-faq-field">
<label for="<?= esc_attr($field_id) ?>"><?= esc_attr($field['label']) ?></label>
<input id="<?= esc_attr($field_id) ?>" type="text" name="<?= esc_attr($field['name']) ?>" value="<?= esc_attr($value) ?>" required>
</div>
<?php endif; ?>
<?php endforeach; ?>
<div class="uwil-faq-actions">
<?php if ($edit_item): ?>
<a href="<?= esc_url(remove_query_arg('edit')) ?>" class="button button-secondary">
Annuler
</a>
<?php endif; ?>
<button type="submit" name="uwil_submit" class="button button-primary">
<?= $edit_item ? 'Modifier' : 'Ajouter' ?>
</button>
</div>
</form>
<div class="uwil-faq-list">
<!-- Filter -->
<?php if ($filter): ?>
<form method="get" class="uwil-faq-form uwil-faq-border-0">
<input type="hidden" name="page" value="<?= esc_attr($_GET['page']) ?>">
<div class="uwil-faq-field">
<label for="uwil_filter_<?= esc_attr($filter['key']) ?>"><?= esc_html($filter['label']) ?></label>
<select id="uwil_filter_<?= esc_attr($filter['key']) ?>" name="<?= esc_attr($filter['key']) ?>" onchange="this.form.submit()">
<option value="">Toutes les thématiques</option>
<?php foreach ($filter['options']() as $opt): ?>
<option value="<?= esc_attr($opt->id) ?>" <?= selected($filter_value, $opt->id, false) ?>>
<?= esc_html($opt->title) ?>
</option>
<?php endforeach; ?>
</select>
</div>
</form>
<?php endif; ?>
<!-- Listing elements -->
<table class="widefat">
<thead>
<tr>
<?php foreach ($config['columns'] as $col): ?>
<th><?= esc_html($col['label']) ?></th>
<?php endforeach; ?>
<th>Ordre</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($items as $item): ?>
<tr>
<?php foreach ($config['columns'] as $col): ?>
<td><?= isset($col['render']) ? $col['render']($item) : esc_html($item->{$col['field']}) ?></td>
<?php endforeach; ?>
<td><?= esc_html($item->order) ?></td>
<td>
<a href="<?= wp_nonce_url(add_query_arg(['move' => 'up', 'id' => $item->id]), 'uwil_move_' . $item->id) ?>">▲</a>
<a href="<?= wp_nonce_url(add_query_arg(['move' => 'down', 'id' => $item->id]), 'uwil_move_' . $item->id) ?>">▼</a> |
<a href="<?= add_query_arg(['edit' => $item->id]) ?>">Éditer</a> |
<a href="<?= wp_nonce_url(add_query_arg(['delete' => $item->id]), 'uwil_delete_' . $item->id) ?>" onclick="return confirm('Supprimer cet élément ?');">Supprimer</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<?php
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

View file

@ -0,0 +1,743 @@
<!doctype html>
<html lang="und" dir="auto" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<title>La Newsletter Janvier 2026</title><!--[if !mso]><!-->
<meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
#outlook a,
body {
padding: 0
}
body {
margin: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%
}
table,
td {
border-collapse: collapse;
mso-table-lspace: 0;
mso-table-rspace: 0
}
img {
border: 0;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic
}
p {
display: block;
margin: 13px 0
}
</style><!--[if mso]>
<noscript>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
</noscript>
<![endif]--><!--[if lte mso 11]>
<style type="text/css">
.mj-outlook-group-fix { width:100% !important; }
</style>
<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 {
max-width: 100%;
width: 100% !important
}
.mj-column-per-33-333333333333336 {
max-width: 33.333333333333336%;
width: 33.333333333333336% !important
}
.mj-column-per-50 {
max-width: 50%;
width: 50% !important
}
}
</style>
<style media="screen and (min-width:480px)">
.moz-text-html .mj-column-per-100 {
max-width: 100%;
width: 100% !important
}
.moz-text-html .mj-column-per-33-333333333333336 {
max-width: 33.333333333333336%;
width: 33.333333333333336% !important
}
.moz-text-html .mj-column-per-50 {
max-width: 50%;
width: 50% !important
}
</style>
<style type="text/css">
@media only screen and (max-width:479px) {
table.mj-full-width-mobile {
width: 100% !important
}
td.mj-full-width-mobile {
width: auto !important
}
}
</style>
</head>
<body style="background-color:#fff;word-spacing:normal">
<div style="color:#fff;display:none;font-size:1px;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden">
La Newsletter Janvier 2026</div>
<div style="background-color:#fff" lang="und" dir="auto">
<div style="background:#fff;background-color:#fff;margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="background:#fff;background-color:#fff;width:100%">
<tbody>
<tr>
<td style="direction:ltr;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;" ><![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="right" class="nl-title"
style="font-size:0;padding:10px 40px 10px 25px;word-break:break-word">
<div
style="color:#024e2a;font-family:Barlow,Arial,sans-serif;font-size:24px;font-weight:700;line-height:1;text-align:right">
LA NEWSLETTER<br> <span
style="color:#00803a;font-family:Barlow,Arial,sans-serif;font-size:20px;font-weight:700">JANVIER
2026</span></div>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:600px"> <a
href="https://www.reghalal.com/?mtm_campaign=newsletter_janvier_2026_reghalal&mtm_source=newsletter_mensuelle_reghalal&mtm_medium=newsletter"
target="_blank"> <img alt="Logo Réghalal et sa signature halal & engagés"
src="https://www.reghalal.com/newsletters/ref/header.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="600" height="auto"> </a> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" bgcolor="#024e2a" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
<div style="background:#024e2a;background-color:#024e2a;margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="background:#024e2a;background-color:#024e2a;width:100%">
<tbody>
<tr>
<td style="direction:ltr;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;" ><![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:600px"> <img
alt="Visuel de plusieurs personnes autour d'une table en train de partager un moment de convivialité"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_cle.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="600" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:30px 25px 10px;word-break:break-word">
<div
style="color:#fdf5eb;font-family:Arial,sans-serif;font-size:42px;font-weight:700;line-height:1;text-align:center">
L'ÉQUIPE RÉGHALAL VOUS SOUHAITE SES MEILLEURS VOEUX !</div>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:10px 25px 30px;word-break:break-word">
<div
style="color:#fff;font-family:Arial,sans-serif;font-size:20px;line-height:1.4;text-align:center">
Une nouvelle année commence, l’occasion de partager ensemble des moments remplis de
gourmandise <br> et de saveurs ! <br> C'est l'occasion parfaite pour parcourir nos recettes
<br> et trouver vos prochaines inspirations !
</div>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:5px 25px 30px;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:separate;line-height:100%">
<tbody>
<tr>
<td align="center" bgcolor="#00803a" role="presentation"
style="border:2px solid #fff;border-radius:6px;cursor:auto;mso-padding-alt:10px 16px;background:#00803a"
valign="middle"> <a
href="https://www.reghalal.com/recettes-halal/?mtm_campaign=newsletter_janvier_2026_reghalal&mtm_source=newsletter_mensuelle_reghalal&mtm_medium=newsletter"
style="background:#00803a;color:#fff;display:inline-block;font-family:Arial Narrow,Arial;font-size:17px;font-weight:400;line-height:120%;margin:0;padding:10px 16px;text-decoration:none;text-transform:uppercase;mso-padding-alt:0;border-radius:6px"
target="_blank"> JE DÉCOUVRE LES RECETTES </a> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" bgcolor="#00803a" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
<div style="background:#00803a;background-color:#00803a;margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="background:#00803a;background-color:#00803a;width:100%">
<tbody>
<tr>
<td style="direction:rtl;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:middle;width:600px;" ><![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:middle;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%">
<tbody>
<tr>
<td style="padding-bottom:15px;padding-top:15px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:10px 25px 5px;word-break:break-word">
<div
style="color:#fff;font-family:Arial,sans-serif;font-size:24px;font-weight:700;line-height:1.2;text-align:center">
2026 S'ANNONCE PLEINE DE SURPRISES CHEZ RÉGHALAL !</div>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:10px 25px;word-break:break-word">
<div
style="color:#fff;font-family:Arial,sans-serif;font-size:17px;line-height:1.15;text-align:center">
De nouvelles saveurs, des offres inédites, des produits qui vont vous régaler... et
bien plus encore. <br> Notre site et nos réseaux sociaux évolueront pour vous offrir
toujours plus d’inspiration et de gourmandise. <br> Restez connectés, l’aventure
continue... et elle promet d’être savoureuse !</div>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:5px 25px 10px;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:separate;line-height:100%">
<tbody>
<tr>
<td align="center" bgcolor="#024e2a" role="presentation"
style="border:2px solid #fff;border-radius:6px;cursor:auto;mso-padding-alt:10px 16px;background:#024e2a"
valign="middle"> <a
href="https://www.reghalal.com/?mtm_campaign=newsletter_janvier_2026_reghalal&mtm_source=newsletter_mensuelle_reghalal&mtm_medium=newsletter"
style="background:#024e2a;color:#fff;display:inline-block;font-family:Arial Narrow,Arial;font-size:17px;font-weight:400;line-height:120%;margin:0;padding:10px 16px;text-decoration:none;text-transform:uppercase;mso-padding-alt:0;border-radius:6px"
target="_blank"> JE DÉCOUVRE LE SITE </a> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" bgcolor="#024e2a" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
<div style="background:#024e2a;background-color:#024e2a;margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="background:#024e2a;background-color:#024e2a;width:100%">
<tbody>
<tr>
<td style="direction:rtl;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:middle;width:600px;" ><![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:middle;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%">
<tbody>
<tr>
<td style="padding-bottom:15px;padding-top:15px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:10px 25px 5px;word-break:break-word">
<div
style="color:#fff;font-family:Arial,sans-serif;font-size:24px;font-weight:700;line-height:1.2;text-align:center">
AU REVOIR 2025</div>
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:10px 25px;word-break:break-word">
<p style="border-top:4px solid #00803a;font-size:1px;margin:0 auto;width:90px"> </p> <!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #00803a;font-size:1px;margin:0px auto;width:90px;" role="presentation" width="90px" ><tr><td style="height:0;line-height:0;"> &nbsp;
</td></tr></table><![endif]-->
</td>
</tr>
<tr>
<td align="center" style="font-size:0;padding:10px 25px;word-break:break-word">
<div
style="color:#fff;font-family:Arial,sans-serif;font-size:17px;line-height:1.15;text-align:center">
Avant de commencer 2026, prenons un moment pour revenir sur 2025 : une année riche en
échanges, en gourmandise et en belles réussites partagées avec vous. <br> Merci pour
votre <strong>fidélité</strong> et votre <strong>engagement</strong> qui font
<strong>vivre la marque Réghalal au quotidien.</strong><br> Découvrez maintenant le
récapitulatif de vos publications préférées de l’année !
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
<div style="margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%">
<tbody>
<tr>
<td style="direction:rtl;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img
alt="Visuel d'une personne trempant ses samoussas dans une sauce blanche"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_4.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img alt="Visuel d'un chat sur un canapé"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_3.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img
alt="Visuel de deux personnes dans une cuisine en train de se servir dans un plat"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_2.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]></td></tr></table><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
<div style="margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%">
<tbody>
<tr>
<td style="direction:rtl;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img alt="Visuel d'un plat de pâtes carbonara dans une assiette"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_7.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img
alt="Visuel de morceaux de poulet Réghalal et des pâtes en sauce dans une assiette"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_6.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img
alt="Visuel d'un pique-nique avec différents produits Réghalal"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_5.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]></td></tr></table><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
<div style="margin:0 auto;max-width:600px">
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%">
<tbody>
<tr>
<td style="direction:rtl;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img
alt="Visuel d'un plat préparé à base de filet de poulet Réghalal"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_10.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img alt="Visuel de plusieurs buns"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_9.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:top;width:200px;" ><![endif]-->
<div class="mj-column-per-33-333333333333336 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:0;word-break:break-word">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-collapse:collapse;border-spacing:0">
<tbody>
<tr>
<td style="width:200px"> <img
alt="Visuel de feuilletés préparés avec les dés de dinde Réghalal"
src="https://www.reghalal.com/newsletters/2026_01_07/assets/visuel_8.jpg"
style="border:0;display:block;font-size:13px;height:auto;outline:none;text-decoration:none;width:100%"
width="200" height="auto"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><v:rect style="width:600px;" xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false"><v:fill origin="0.5, 0" position="0.5, 0" src="https://www.reghalal.com/newsletters/ref/fond-sable.jpg" type="tile" /><v:textbox style="mso-fit-shape-to-text:true" inset="0,0,0,0"><![endif]-->
<div
style="background:url(https://www.reghalal.com/newsletters/ref/fond-sable.jpg) top/auto repeat;background-position:top;background-repeat:repeat;background-size:auto;margin:0 auto;max-width:600px">
<div style="font-size:0;line-height:0">
<table align="center" background="https://www.reghalal.com/newsletters/ref/fond-sable.jpg" border="0"
cellpadding="0" cellspacing="0" role="presentation"
style="background:url(https://www.reghalal.com/newsletters/ref/fond-sable.jpg) top/auto repeat;background-position:top;background-repeat:repeat;background-size:auto;width:100%">
<tbody>
<tr>
<td style="direction:ltr;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:600px;" ><![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:top;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top"
width="100%">
<tbody>
<tr>
<td align="left" class="s-title" style="font-size:0;padding:10px 25px;word-break:break-word">
<div
style="color:#00803a;font-family:Barlow,Arial,sans-serif;font-size:37.5px;font-weight:700;line-height:1;text-align:left">
REJOIGNEZ LA COMMUNAUTÉ</div>
</td>
</tr>
<tr>
<td align="left" style="font-size:0;padding:10px 25px;word-break:break-word">
<div
style="color:#000;font-family:Arial,sans-serif;font-size:13px;line-height:1;text-align:left">
<span class="s-subtitle"
style="color:#024e2a;font-family:Barlow,Arial,sans-serif;font-size:33px;font-weight:700">@reghalal
!</span>
</div>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
</div> <!--[if mso | IE]></v:textbox></v:rect></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><v:rect style="width:600px;" xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false"><v:fill origin="0.5, 0" position="0.5, 0" src="https://www.reghalal.com/newsletters/ref/fond-sable.jpg" type="tile" size="200px" aspect="atmost" /><v:textbox style="mso-fit-shape-to-text:true" inset="0,0,0,0"><![endif]-->
<div
style="background:url(https://www.reghalal.com/newsletters/ref/fond-sable.jpg) top/200px repeat;background-position:top;background-repeat:repeat;background-size:200px;margin:0 auto;max-width:600px">
<div style="font-size:0;line-height:0">
<table align="center" background="https://www.reghalal.com/newsletters/ref/fond-sable.jpg" border="0"
cellpadding="0" cellspacing="0" role="presentation"
style="background:url(https://www.reghalal.com/newsletters/ref/fond-sable.jpg) top/200px repeat;background-position:top;background-repeat:repeat;background-size:200px;width:100%">
<tbody>
<tr>
<td style="direction:ltr;font-size:0;padding:0;text-align:center">
<!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:middle;width:300px;" ><![endif]-->
<div class="mj-column-per-50 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:middle;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:middle"
width="100%">
<tbody>
<tr>
<td align="left" class="f-text" style="font-size:0;padding:10px 25px;word-break:break-word">
<div
style="color:#024e2a;font-family:Barlow,Arial,sans-serif;font-size:24px;line-height:1;text-align:left">
Retrouvez toutes nos actualités sur nos réseaux sociaux ou sur <a
style="color:#024e2a;font-weight:700"
href="https://www.reghalal.com/?mtm_campaign=newsletter_janvier_2026_reghalal&mtm_source=newsletter_mensuelle_reghalal&mtm_medium=newsletter">reghalal.com</a>
</div>
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td><td class="" style="vertical-align:bottom;width:300px;" ><![endif]-->
<div class="mj-column-per-50 mj-outlook-group-fix"
style="direction:ltr;display:inline-block;font-size:0;text-align:left;vertical-align:bottom;width:100%">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:bottom"
width="100%">
<tbody>
<tr>
<td align="center" style="font-size:0;padding:10px 25px;word-break:break-word">
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" ><tr><td><![endif]-->
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="display:inline-table;float:none">
<tbody>
<tr>
<td style="padding:4px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-radius:3px;width:58px">
<tbody>
<tr>
<td style="font-size:0;height:58px;vertical-align:middle;width:58px"> <a
href="https://www.facebook.com/reghalalofficiel/" target="_blank"> <img alt
height="58" src="https://www.reghalal.com/newsletters/ref/facebook.png"
style="border-radius:3px;display:block" width="58"> </a> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table> <!--[if mso | IE]></td><td><![endif]-->
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="display:inline-table;float:none">
<tbody>
<tr>
<td style="padding:4px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-radius:3px;width:58px">
<tbody>
<tr>
<td style="font-size:0;height:58px;vertical-align:middle;width:58px"> <a
href="https://www.instagram.com/reghalal/" target="_blank"> <img alt
height="58" src="https://www.reghalal.com/newsletters/ref/instagram.png"
style="border-radius:3px;display:block" width="58"> </a> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table> <!--[if mso | IE]></td><td><![endif]-->
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"
style="display:inline-table;float:none">
<tbody>
<tr>
<td style="padding:4px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"
style="border-radius:3px;width:58px">
<tbody>
<tr>
<td style="font-size:0;height:58px;vertical-align:middle;width:58px"> <a
href="https://www.tiktok.com/@reghalal" target="_blank"> <img alt
height="58" src="https://www.reghalal.com/newsletters/ref/tiktok.png"
style="border-radius:3px;display:block" width="58"> </a> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div> <!--[if mso | IE]></td></tr></table><![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
</div> <!--[if mso | IE]></v:textbox></v:rect></td></tr></table><![endif]-->
<!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" role="presentation" style="width:600px;" width="600" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]-->
</div>
</body>
</html>

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Some files were not shown because too many files have changed in this diff Show more