Compare commits

...

147 Commits

Author SHA1 Message Date
0525d37773 Package update nanoid 2024-12-16 09:07:16 +01:00
1d37e9c8e0 Merge pull request 'fix(css): remove leading zero to match stylelint' (#112) from fix/css-leading-0 into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#112
2024-12-10 16:36:08 +01:00
Florian Michaut
629a181e18 fix(css): remove leading zero to match stylelint 2024-12-10 15:01:33 +01:00
58a5fa0939 Merge pull request 'fix(css): handle title + lists in bio' (#111) from fix/members_bio into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#111
2024-12-09 17:11:39 +01:00
8f2ce9cf7c Merge branch 'master' into fix/members_bio 2024-12-09 17:11:31 +01:00
96ae89b4cf Merge pull request 'telephone-astro' (#110) from vincent.genieux/SiteWebAstrolabe:telephone-astro into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#110
2024-12-09 17:11:23 +01:00
dd54099516 Merge branch 'master' into telephone-astro 2024-12-09 17:10:57 +01:00
Florian Michaut
531d8552c1 fix(css): handle title + lists in bio 2024-12-09 16:52:13 +01:00
69ea800eb7 modification du téléphone Astrolabe 2024-12-09 14:46:16 +01:00
8bc6c17801 Ajout Réu info 2025 et changement Formulaire de frama à Astro 2024-12-07 01:56:27 +01:00
f4d8deb10d Merge pull request 'suppression-nelly' (#109) from vincent.genieux/SiteWebAstrolabe:suppression-nelly into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#109
2024-12-05 18:03:20 +01:00
8642423e99 suppression profil nelly 2024-12-05 13:20:25 +01:00
c846c77df7 Merge pull request 'Logo RSS' (#108) from rss-icon into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#108
2024-12-02 18:49:22 +01:00
aed16402a6 Fix icon RSS 2024-12-02 18:47:27 +01:00
Florian Michaut
dbe4f6370c styles(): use flex-wrap for social icons 2024-12-02 14:40:30 +01:00
779dee41ee Netoyage fichier oubli SVG 2024-12-02 11:43:05 +01:00
e1cd627275 Logo RSS 2024-12-02 11:40:26 +01:00
787ddde793 Petit fix RS 2024-11-27 12:19:39 +01:00
82330eec04 Merge pull request 'Mise à jour liens réseaux sociaux' (#107) from update-reseaux into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#107
2024-11-27 12:12:46 +01:00
7a1c9857d7 Mise à jour liens réseaux sociaux 2024-11-27 12:11:30 +01:00
4bdc27d2b9 Merge pull request 'fix/description' (#106) from fix/description into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#106
2024-11-23 00:09:19 +01:00
Florian Michaut
54ab6b7e73 fix(esm): only use esm + temp fix for importing json files 2024-11-22 16:58:33 +01:00
Florian Michaut
a0983633e2 fix(rss): add posts with both types event + news as feed items 2024-11-21 16:03:38 +01:00
Florian Michaut
f69296f1ad fix(): use description for seo purpose 2024-11-21 16:01:10 +01:00
Florian Michaut
30b122f57c fix(): use esm import since upgrade to V3 2024-11-21 16:00:52 +01:00
6fe50850fd Merge pull request 'Ajout de la création d'un flux RSS sur le site.' (#105) from rss-feed into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#105
2024-11-21 14:18:59 +01:00
Florian Michaut
486779e606 fix(rss): add proper description value 2024-11-21 12:57:18 +01:00
Florian Michaut
2c8788d118 content(posts): add description property 2024-11-21 12:47:21 +01:00
56ff6a12c5 Quelques mise à jour pour sécu 2024-11-20 10:58:58 +01:00
Florian Michaut
8b735e3ad8 fix(posts,members): replace 'new' to 'news' for event + fix quote in markdown 2024-11-19 18:29:51 +01:00
Florian Michaut
1157585904 feat(rss): add news collection to feed.xml 2024-11-19 18:29:07 +01:00
Florian Michaut
6d97a59e51 chore(): update eleventy to 3.0 + update rss plugin 2024-11-19 18:28:28 +01:00
fdadbf2db7 Merge pull request 'changes_profil_Pascaline_Grondein' (#104) from pascaline.grondein/SiteWebAstrolabe:changes_profil_Pascaline_Grondein into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#104
2024-11-13 17:12:12 +01:00
a60759c5ab Actualiser src/members/pascaline-grondein.md 2024-11-13 16:41:55 +01:00
4816aaa1a9 Actualiser src/members/pascaline-grondein.md 2024-11-13 16:19:41 +01:00
d6eb9b9434 Actualiser src/members/pascaline-grondein.md 2024-11-13 16:18:07 +01:00
ad8a87d983 Actualiser src/members/pascaline-grondein.md
Modification profil avec ajout liens
2024-11-13 16:15:48 +01:00
483ee87041 Mise à jour package secu 2024-11-04 12:15:25 +01:00
2b1e3ac347 Merge pull request 'Ajout profil Laurelene Hard' (#103) from vincent.genieux/SiteWebAstrolabe:laurelene into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#103
2024-11-04 12:06:36 +01:00
967ef0e66a ajout profil Laurélène Hard 2024-11-04 11:46:57 +01:00
f90971e3d5 Mise à jour des packages 2024-10-25 23:07:09 +02:00
Florent Le Saout
7c62676d43 Retrait Twitter/X 2024-10-09 17:32:02 +02:00
Florent Le Saout
5314730d47 Ajout du lien vers baloop depuis la première page 2024-10-07 09:09:39 +02:00
48b7a9dc20 Merge pull request 'Premier test post baloop erp' (#102) from baloop-erp into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#102
2024-10-07 08:53:54 +02:00
30571355b6 Merge branch 'master' into baloop-erp 2024-10-06 17:00:51 +02:00
Florent Le Saout
b4b06702b5 Petite correction 2024-10-06 17:00:12 +02:00
Florent Le Saout
8410592cce Update package for security update 2024-10-06 13:03:53 +02:00
c3a05862ce Premier test post baloop erp 2024-10-04 19:09:29 +02:00
1196144e7e Retrait profil 2024-09-30 23:27:21 +02:00
bcac4da5cd Merge pull request 'florian-michaut' (#101) from vincent.genieux/SiteWebAstrolabe:florian-michaut into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#101
2024-09-30 23:21:10 +02:00
46895370e0 ajout profil florian michaut 2024-09-25 16:58:10 +02:00
82d28e19b7 Amélioration Post Forum Séisme 2024-09-25 01:25:18 +02:00
1a222f90f8 Post forum séisme Rennes 2024-09-25 01:20:04 +02:00
3ff5d23445 Avance d'un jour la publication de la réu d'info d'octobre 2024-09-17 00:58:34 +02:00
e3596fa617 Update package 2024-09-17 00:26:25 +02:00
2c7f618874 Update packages versions 2024-09-03 15:35:01 +02:00
8577bdf3d7 Merge pull request 'simon-gougeon' (#100) from vincent.genieux/SiteWebAstrolabe:sylvain-gougeon into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#100
2024-09-03 15:33:11 +02:00
5aaa46ffac Merge branch 'master' into sylvain-gougeon 2024-09-03 15:32:20 +02:00
b4d6607816 Merge pull request 'ludovic' (#99) from vincent.genieux/SiteWebAstrolabe:ludovic into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#99
2024-09-03 15:31:58 +02:00
568d56c4d5 ajout profil simon gougeon 2024-09-03 12:03:57 +02:00
490e6333d2 ajout ludovic jeanne 2024-09-03 10:13:02 +02:00
8d6c840667 Ajout d'un modele de profil 2024-09-03 10:12:47 +02:00
7fe2a6f6df Petite correction pres 2024-09-01 22:42:40 +02:00
9674fd7cff Merge pull request 'Correction Heure et date réu info (17 sept-16 sept)' (#98) from fix/reu-info-2024-09 into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#98
2024-09-01 22:25:22 +02:00
d69b320b88 Merge branch 'master' into fix/reu-info-2024-09 2024-09-01 22:25:12 +02:00
4bb9f82c67 Merge pull request 'fix(ftp deploy): remove files from server before upload' (#97) from fix/deploy-remove-previous-files into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#97
2024-09-01 22:24:35 +02:00
26d4507c63 Correction Heure et date réu info (17 sept-16 sept) 2024-08-30 15:27:42 +02:00
2134fef2ff Mise à jour librairie 2024-08-14 16:18:28 +02:00
da53745fc9 Petit correctif suite retour JO 2024-08-08 08:53:01 +02:00
Jérémy Dufraisse
94a86974f9 fix(ftp deploy): remove files from server before upload 2024-08-07 09:40:03 +02:00
d67234b356 Petis correctif mineurs 2024-08-06 15:13:51 +02:00
c47a2b3360 Merge pull request 'Post AG 2024 Halles en commun' (#96) from AG2024 into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#96
2024-08-06 15:07:42 +02:00
f393228457 Update elliptic module 2024-08-06 14:59:56 +02:00
6b81efc651 Petites correction suite à relecture 2024-08-06 14:51:03 +02:00
5e22dbbb6d Merge branch 'master' into AG2024 2024-08-06 14:36:01 +02:00
a85d2936c4 Merge pull request 'fix(jeremy): remove his profile' (#95) from fix/remove-jeremy into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#95
2024-08-02 14:51:36 +02:00
66f524ff43 Post AG 2024 Halles en commun 2024-08-02 14:46:31 +02:00
588b599c4f Post appel financement Logiciel libre 2024-07-24 10:25:06 +02:00
Jérémy Dufraisse
63967a7503 fix(jeremy): remove his profile 2024-07-23 13:03:58 +02:00
27bd60f68f Mise à jour Insta (merci Tixie ;) 2024-07-18 10:58:34 +02:00
585f9bc239 Fix réu info 2024-07-02 01:22:54 +02:00
3a1f3c8dbf Ajout Réunion d'info septembre à décembre 2024-07-02 01:15:37 +02:00
be7da35378 Optim image Déborah 2024-07-01 22:54:34 +02:00
93ad11e992 Merge pull request 'deborah-jean' (#94) from vincent.genieux/SiteWebAstrolabe:deborah-jean into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#94
2024-07-01 22:42:09 +02:00
a4cdf36fea Merge pull request 'Plusieurs optimisations de la taille des images du site (ImageOptim, ...)' (#93) from OptimisationTaillesImages into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#93
2024-07-01 22:33:36 +02:00
f34b0ceac2 Ajout membre 2024-07-01 17:23:40 +02:00
9028d132cf Petit fix pour le post agrément CIR 2024-06-28 17:08:13 +02:00
0a621f849f Fix post agrément 2024-06-27 17:06:15 +02:00
Yannick Le Duc
a5928daec8 Plusieurs optimisations de la taille des images du site (ImageOptim, ...) 2024-06-27 14:13:22 +02:00
e4e00b9836 Ajout de l'obtention de l'Agrément CIR 2024-06-27 01:12:39 +02:00
3f4fb22d91 Retrait des personnes ayant quitté Astrolabe 2024-06-27 00:45:09 +02:00
eb2980d814 Mise à jour package lock 2024-06-26 23:22:08 +02:00
7dbdc3a806 Mise à jour de package 2024-06-26 23:19:51 +02:00
393c963676 Merge pull request 'pascaline-grondein' (#92) from vincent.genieux/SiteWebAstrolabe:pascaline-grondein into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#92
2024-06-26 23:18:48 +02:00
fbfeb9f9b2 ajout pascaline grondein 2024-06-17 18:22:01 +02:00
Florent Le Saout
352faad8ad Mise à jour package 2024-05-09 09:59:38 +02:00
540b187710 Merge pull request 'Ajout Sylvain Lepoutre' (#91) from vincent.genieux/SiteWebAstrolabe:sylvain-lepoutre into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#91
2024-05-09 09:21:28 +02:00
bd0f251967 Ajout Sylvain Lepoutre 2024-05-06 15:04:52 +02:00
d0e855eaf6 Merge pull request 'Ajout profil Annabelle Palmisano' (#90) from vincent.genieux/SiteWebAstrolabe:annabelle-palmisano into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#90
2024-04-30 09:30:57 +02:00
f50857add2 ajout Annabelle Palmisano 2024-04-29 16:49:10 +02:00
28c0b957cc Mise à jour réseaux sociaux : ajout chaine youtube 2024-04-24 15:23:16 +02:00
c985e79ad1 Mise à jour réseaux sociaux 2024-04-24 00:10:06 +02:00
32770082ef Merge pull request 'modification du profil de claire' (#88) from vincent.genieux/SiteWebAstrolabe:claire into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#88
2024-04-17 21:24:51 +02:00
730c70fac7 Merge branch 'master' into claire 2024-04-17 21:24:35 +02:00
fb4bc56c9c Merge pull request 'Modification du profil d'Antoine Naudy' (#87) from vincent.genieux/SiteWebAstrolabe:antoine into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#87
2024-04-17 21:24:20 +02:00
3b516471a7 modif claire
https://ticket.astrolabe.coop/#ticket/zoom/56
2024-04-17 20:03:42 +02:00
e420012cd9 modification profil antoine 2024-04-12 16:23:04 +02:00
10fbe4cc1b Merge pull request 'nouvelle image pour le poisson' (#86) from astro-stop-pv-final into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#86
2024-04-01 01:29:54 +02:00
46b80318a6 Fix typo 2024-04-01 01:29:16 +02:00
Yannick Le Duc
6af43c3236 nouvelle image pour le poisson 2024-03-31 22:18:01 +02:00
e24979f2d1 Merge pull request 'Astro-stop-pv : blague du 1er avril' (#85) from astro-stop-pv into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#85
Reviewed-by: Florent Le Saout <florent.lesaout@astrolabe.coop>
2024-03-29 11:13:49 +01:00
Yannick Le Duc
f1944ddfc7 changements mineurs dans l'astroblague 2024 en incluant les retours (je n'ai pas mis la partie GPS car elle me semblait surcharger la lecture déjà bien dense)
J'en ai profité pour nettoyer les noms et emplacements des fichiers pages/images des 2 poissons d'avril 2023 et 2024

J'ai rajouté aussi l'image/illustration de Guijaune pour la révélation du poisson, histoire de l'utiliser quand même.
2024-03-28 22:26:21 +01:00
Yannick Le Duc
0a2dcc18ee enleve "c'est top"... 2024-03-26 17:21:49 +01:00
Yannick Le Duc
bde004fb83 change l'image de astro-stop-pv (prise photo du jour par moi même) 2024-03-26 17:20:10 +01:00
Yannick Le Duc
e009ecc36c Merge branch 'astro-stop-pv' of ssh://git.astrolabe.coop:2106/AstrolabeCAE/SiteWebAstrolabe into astro-stop-pv 2024-03-26 17:15:59 +01:00
Yannick Le Duc
674df2bb5f simplification et allégement du texte de parties facultatives 2024-03-26 09:54:38 +01:00
Yannick Le Duc
9728cbd8b3 creation astroblague poisson avril 2024 2024-03-26 09:54:38 +01:00
Yannick Le Duc
a6956a9b1c simplification et allégement du texte de parties facultatives 2024-03-26 08:34:32 +01:00
Yannick Le Duc
8503bd57a5 creation astroblague poisson avril 2024 2024-03-25 11:21:01 +01:00
Yannick Le Duc
bc7572f902 Merge branch 'master' of ssh://git.astrolabe.coop:2106/AstrolabeCAE/SiteWebAstrolabe 2024-03-25 09:36:44 +01:00
66c074eced Merge pull request 'fix(contactForm): append question in subject' (#84) from fix/contact-set-object into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#84
2024-03-21 17:36:48 +01:00
Jérémy Dufraisse
91186e6644 fix(contactForm): append question in subject 2024-03-21 12:49:00 +01:00
71dd25ca44 Merge pull request 'fix(member): use right guess for email Address' (#83) from fix/member-contact-instead-of-main-contact2 into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#83
2024-03-20 15:19:18 +01:00
Jérémy Dufraisse
f94f98b8da fix(member): use right guess for email Address 2024-03-20 15:13:31 +01:00
21a1efbf7c Merge pull request 'fix(contactForm): use member contact when on member's page' (#82) from fix/member-contact-instead-of-main-contact into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#82
2024-03-20 15:04:23 +01:00
Jérémy Dufraisse
6f4eb9a844 fix(contactForm): use member contact when on member's page 2024-03-20 14:32:52 +01:00
9fd1712328 Merge pull request 'feat/send-mail-to-member' (#81) from feat/send-mail-to-member into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#81
2024-03-20 14:04:38 +01:00
Jérémy Dufraisse
9690867817 fix(member-contact): prettier form 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
4380a086db fix(contact-form-handler-php): capture wantedContact and sanitize it rigthly 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
b3b5ee6377 fix(htaccess): check if module activated 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
0806f09b4c fix(contactTo): define emailSlug if needed 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
0ad9951d77 refactor(_members.scss): eslint 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
63ccebb452 feat(contact-form): adapt to member 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
08fcc19e53 feat(members): create link to email form 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
2afe8ce4ba feat(members/contact): create pages 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
0b6c22c7a3 feat(contact-handler.php): manager other e-mails from POST 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse
1dd30c2f75 refactor(contact-handler.php): PSR2 autoformat 2024-03-20 13:10:28 +01:00
b58b2357c0 Merge pull request 'SEO Optims' (#80) from seo-optims into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#80
2024-03-18 15:07:08 +01:00
kevin
80f8f7f5a1 fix(gautier): remove 404 2024-03-18 13:29:44 +01:00
kevin
d72316cf86 feat(seo): add sitemap 2024-03-18 13:12:37 +01:00
kevin
cbe1ce6626 fix(seo): avoid redirect to uncrawl pages without trailing slash 2024-03-18 13:10:30 +01:00
7194cb5710 Mise à jour Profil Raphael 2024-03-15 15:09:14 +01:00
4713f39579 Merge pull request 'fix(gps): for Loana P' (#79) from fix/right-gps-coordinates-for-loana-p into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#79
2024-03-13 10:19:38 +01:00
Jérémy Dufraisse
afa68f0c75 fix(gps): for Loana P 2024-03-13 09:06:38 +01:00
1e02057350 Ajout de la validation propriétaires 2024-03-05 00:26:22 +01:00
4884d95433 Merge pull request 'Modification profil de francois bonningues' (#78) from francois-bonningues into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#78
2024-02-19 23:25:21 +01:00
Yannick Le Duc
a4fc862ac7 Test git 2023-02-17 14:50:39 +01:00
282 changed files with 5352 additions and 8781 deletions

View File

@ -1,27 +1,31 @@
const rssPlugin = require('@11ty/eleventy-plugin-rss');
const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
const fs = require('fs');
const util = require('util')
import rssPlugin from '@11ty/eleventy-plugin-rss';
import syntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight';
import fs from 'fs';
import util from 'util';
// Import filters
const dateFilter = require('./src/filters/date-filter.js');
const markdownFilter = require('./src/filters/markdown-filter.js');
const w3DateFilter = require('./src/filters/w3-date-filter.js');
import dateFilter from './src/filters/date-filter.js';
import markdownFilter from './src/filters/markdown-filter.js';
import w3DateFilter from './src/filters/w3-date-filter.js';
// Import transforms
const htmlMinTransform = require('./src/transforms/html-min-transform.js');
const parseTransform = require('./src/transforms/parse-transform.js');
import htmlMinTransform from './src/transforms/html-min-transform.js';
import parseTransform from './src/transforms/parse-transform.js';
// Import data files
import {createRequire} from 'node:module';
const require = createRequire(import.meta.url);
// need this because of issue when using ESM : https://github.com/11ty/eleventy-dependency-tree-esm/issues/2
// This will get soon resolved
const site = require('./src/_data/site.json');
module.exports = function(config) {
export default function(config) {
// Filters
config.addFilter('dateFilter', dateFilter);
config.addFilter('markdownFilter', markdownFilter);
config.addFilter('w3DateFilter', w3DateFilter);
config.addFilter('dump', obj => {
return util.inspect(obj)
return util.inspect(obj);
});
// Layout aliases
@ -48,11 +52,9 @@ module.exports = function(config) {
const livePosts = post => post.date <= now && !post.data.draft;
const newsPosts = post => post.data.type === 'news';
const eventPosts = post => post.data.type === 'event';
config.addCollection('posts', collection => {
return [
...collection.getFilteredByGlob('./src/posts/*.md')
].reverse();
return [...collection.getFilteredByGlob('./src/posts/*.md')].reverse();
});
config.addCollection('news', collection => {
return [
@ -70,56 +72,59 @@ module.exports = function(config) {
.slice(0, site.maxNewsPerPage);
});
config.addCollection('members', collection => {
return [...collection.getFilteredByGlob("./src/members/*.md")];
return [...collection.getFilteredByGlob('./src/members/*.md')];
});
config.addCollection('profiles', collection => {
return [...collection.getFilteredByGlob("./src/members/*.md")]
.reverse()
.slice(0, site.maxProfilePreview)
;
return [...collection.getFilteredByGlob('./src/members/*.md')]
.reverse()
.slice(0, site.maxProfilePreview);
});
config.addCollection("tagsList", function(collectionApi) {
config.addCollection('tagsList', function(collectionApi) {
const tagsList = new Set();
collectionApi.getAll().map( item => {
if (item.data.tags) { // handle pages that don't have tags
item.data.tags.map( tag => tagsList.add(tag))
}
collectionApi.getAll().map(item => {
if (item.data.tags) {
// handle pages that don't have tags
item.data.tags.map(tag => tagsList.add(tag));
}
});
return tagsList;
});
config.addCollection("skillsList", function(collectionApi) {
config.addCollection('skillsList', function(collectionApi) {
const skillsList = new Set();
collectionApi.getFilteredByGlob("./src/members/*.md").map( item => {
if (item.data.tags) { // handle pages that don't have skills
item.data.tags.map( skill => { // exclude non related tags
if (['post', 'news', 'event'].indexOf(skill) == -1) {
skillsList.add(skill)
}
})
}
collectionApi.getFilteredByGlob('./src/members/*.md').map(item => {
if (item.data.tags) {
// handle pages that don't have skills
item.data.tags.map(skill => {
// exclude non related tags
if (['post', 'news', 'event'].indexOf(skill) == -1) {
skillsList.add(skill);
}
});
}
});
return skillsList;
});
config.addCollection("membersLocations", function(collectionApi) {
return collectionApi.getFilteredByGlob("./src/members/*.md")
config.addCollection('membersLocations', function(collectionApi) {
return collectionApi
.getFilteredByGlob('./src/members/*.md')
.filter(item => typeof item.data.location !== 'undefined')
.map( member => {
.map(member => {
return {
name: member.data.name,
url: member.data.url,
location: member.data.location,
location: member.data.location
};
});
});
});
config.addCollection('customers', collection => {
return [...collection.getFilteredByGlob("./src/customers/*.md")]
.reverse()
.slice(0, site.maxCustomerPerPage);
return [...collection.getFilteredByGlob('./src/customers/*.md')]
.reverse()
.slice(0, site.maxCustomerPerPage);
});
config.addCollection('partners', collection => {
return [...collection.getFilteredByGlob("./src/partners/*.md")]
.reverse()
.slice(0, site.maxPartnerPerPage);
return [...collection.getFilteredByGlob('./src/partners/*.md')]
.reverse()
.slice(0, site.maxPartnerPerPage);
});
// Plugins
@ -146,6 +151,6 @@ module.exports = function(config) {
input: 'src',
output: 'dist'
},
passthroughFileCopy: true,
passthroughFileCopy: true
};
};
}

View File

@ -13,7 +13,7 @@ var config = {
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: false,
deleteRemote: true,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true
};

10770
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,9 +3,10 @@
"version": "0.1.0",
"description": "Site web de la coopérative Astrolabe CAE",
"main": "index.js",
"type": "module",
"dependencies": {
"@11ty/eleventy": "^2.0.0",
"@11ty/eleventy-plugin-rss": "^1.0.7",
"@11ty/eleventy": "^3.0.0",
"@11ty/eleventy-plugin-rss": "^2.0.2",
"@11ty/eleventy-plugin-syntaxhighlight": "^2.0.3",
"@tbranyen/jsdom": "^13.0.0",
"bootstrap": "^5.1.3",
@ -29,7 +30,7 @@
"make-dir-cli": "^3.0.0",
"prettier": "^1.19.1",
"rimraf": "^3.0.2",
"rollup": "^1.32.1",
"rollup": "^4.24.0",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-json": "^4.0.0",
"rollup-plugin-node-resolve": "^5.2.0",

View File

@ -1,12 +1,16 @@
# Prevent viewing of htaccess file.
<Files .htaccess>
order allow,deny
deny from all
<IfModule mod_access_compat.c>
Order Allow,Deny
Deny from all
</IfModule>
</Files>
# Prevent directory listings
Options All -Indexes
ErrorDocument 404 /404.html
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} ^astrolabe\.coop [NC]
RewriteRule ^ https://www.astrolabe.coop%{REQUEST_URI} [L,NE,R=301]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} ^astrolabe\.coop [NC]
RewriteRule ^ https://www.astrolabe.coop%{REQUEST_URI} [L,NE,R=301]
</IfModule>

View File

@ -1,4 +1,4 @@
module.exports = {
export default {
random() {
const segment = () => {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);

View File

@ -1,4 +1,4 @@
module.exports = {
export default {
getNextHeadingLevel(currentLevel) {
return parseInt(currentLevel, 10) + 1;
},

View File

@ -10,13 +10,16 @@
"authorCity": "35000 Rennes",
"authorSocial": {
"mastodon": "https://framapiaf.org/@AstrolabeCAE",
"twitter": "https://twitter.com/AstrolabeCae",
"linkedin": "https://www.linkedin.com/company/astrolabe-cae/",
"meetup": "https://www.meetup.com/fr-FR/Astrolabe-CAE/",
"mobilizon": "https://mobilizon.fr/@discussion_astrolabe_cae"
"facebook": "https://www.facebook.com/profile.php?id=61558600207926",
"instagram": "https://www.instagram.com/cae_astrolabe/",
"peertube" : "https://tube.troopers.agency/a/astrolabe_peertube/video-channels",
"youtube" : "https://www.youtube.com/channel/UCdxBGpXwL_A5rOcGbN_Xiag",
"twitch" : "https://www.twitch.tv/astrolabe_cae",
"rss" : "https://www.astrolabe.coop/feed.xml"
},
"designerName": "Yves Gatesoupe",
"designerHandle": "/members/yves-gatesoupe/",
"designerName": "Yves Gatesoupe et Astrolabe",
"designerHandle": "/equipe/",
"illustrators": "Igé Maulana, Leopold Merleau, Visual Glow, Galaxicon, Made, Eucalyp, yurr",
"enableThirdPartyComments": false,
"maxPostsPerPage": 5,

View File

@ -1,6 +1,11 @@
import {createRequire} from 'node:module';
const require = createRequire(import.meta.url);
// need this because of issue when using ESM : https://github.com/11ty/eleventy-dependency-tree-esm/issues/2
// This will get soon resolved
const tokens = require('./tokens.json');
module.exports = {
export default {
colors() {
let response = [];

View File

@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="google-site-verification" content="-haql21y-2aWWdYUVglG0kBA4yjCcyG6y8mAzTrZ-Eg" />
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="{{ site.faviconPath }}" type="image/png" />
{% include "partials/global/meta-info.njk" %}

View File

@ -21,6 +21,7 @@
</p>
{% endif %}
<ul class="social-links">
<li><a href="{{ [url , "/contact/"] | join | url }}" title="Écrire à {{ name }}" class="member-contact-at"><span>@</span></a></li>
{% if socialMastodon %}
<li><a href="{{ socialMastodon }}" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z"/></svg></a></li>
{% endif %}
@ -42,7 +43,7 @@
<ul class="tag-list mt-3">
{% for item in tags %}
<li class="tag-item">
<a href="/equipe/{{ item }}">{{ item }}</a>
<a href="/equipe/{{ item }}/">{{ item }}</a>
</li>
{% endfor %}
</ul>
@ -50,8 +51,14 @@
</div>
</div>
</article>
<a class="return-link" href="/equipe">Voir tous les membres</a>
<a class="return-link" href="/equipe/">Voir tous les membres</a>
</section>
{% if emailSlug %}
{% set contactMember = emailSlug %}
{% elif url %}
{% set contactMember = url | replace("/members/","") | replace("-",".") %}
{% endif %}
{% set contactTitle = ["Écrire à ",name] | join %}
{% include "partials/components/contact-form.njk" %}
</main>
{% endblock %}

View File

@ -12,7 +12,7 @@
<img class="post-pic" src="{{ illustration }}" alt="illustration de l'article">
{% endif %}
{{ content | safe }}
<a class="return-link" href="/posts">Voir toute l'actualité</a>
<a class="return-link" href="/posts/">Voir toute l'actualité</a>
</div>
</article>
{% include "partials/components/contact-form.njk" %}

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter">
<li>
<a href="/posts">Tout</a>
<a href="/posts/">Tout</a>
</li>
<li>
<a href="/posts-news">Actualités</a>
<a href="/posts-news/">Actualités</a>
</li>
<li class="active">
<a href="/posts-events">Évènements</a>
<a href="/posts-events/">Évènements</a>
</li>
</ul>
</div>

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter">
<li>
<a href="/posts">Tout</a>
<a href="/posts/">Tout</a>
</li>
<li class="active">
<a href="/posts-news">Actualités</a>
<a href="/posts-news/">Actualités</a>
</li>
<li>
<a href="/posts-events">Évènements</a>
<a href="/posts-events/">Évènements</a>
</li>
</ul>
</div>

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter">
<li class="active">
<a href="/posts">Tout</a>
<a href="/posts/">Tout</a>
</li>
<li>
<a href="/posts-news">Actualités</a>
<a href="/posts-news/">Actualités</a>
</li>
<li>
<a href="/posts-events">Évènements</a>
<a href="/posts-events/">Évènements</a>
</li>
</ul>
</div>

View File

@ -13,7 +13,7 @@
</div>
<ul class="tag-list mt-3" id="tagList">
{% for skill in collections.skillsList %}
<li class="tag-item visually-hidden"><a href="/equipe/{{ skill }}">{{ skill }}</a></li>
<li class="tag-item visually-hidden"><a href="/equipe/{{ skill }}/">{{ skill }}</a></li>
{% endfor %}
</ul>
</div>

View File

@ -1,9 +1,15 @@
{% from "macros/form.njk" import label, field, select, option, textarea, checkboxes, button %}
{% from "macros/form.njk" import label, field, select, option, textarea, checkboxes, button, hidden_field %}
<section class="[ form-container ]">
<svg aria-hidden="true" viewBox="0 0 1440 131" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M0 0h1440v131H0z"/><path d="M0 4.643l40-2.326c40-2.5 120-6.888 200 11.67 80 18.735 160 60.854 240 74.894 80 14.04 160 0 240-16.365 80-16.54 160-34.968 240-28.08 80 7.152 160 39.619 240 39.75 80-.131 160-32.598 200-49.139l40-16.365V131H0V4.643z" fill="#D6F253"/></svg>
{% if not removeWave %}
<svg aria-hidden="true" viewBox="0 0 1440 131" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M0 0h1440v131H0z"/><path d="M0 4.643l40-2.326c40-2.5 120-6.888 200 11.67 80 18.735 160 60.854 240 74.894 80 14.04 160 0 240-16.365 80-16.54 160-34.968 240-28.08 80 7.152 160 39.619 240 39.75 80-.131 160-32.598 200-49.139l40-16.365V131H0V4.643z" fill="#D6F253"/></svg>
{% endif %}
<div class="[ inner-wrapper ]">
<h2 id="contact-form" class="[ contact-heading ]">Nous contacter</h2>
{% if not contactMember %}
<h2 id="contact-form" class="[ contact-heading ]">Nous contacter</h2>
{% elif contactTitle %}
<h2 id="contact-form" class="[ contact-heading ]">{{ contactTitle }}</h2>
{% endif %}
<form name="contact" method="POST" action="/form/contact-form-handler.php">
<ol class="[ field-list ]">
<li class="[ field-list__field-group ]">
@ -16,20 +22,31 @@
</li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ label("Je vous contacte pour :", "select") }}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Obtenir des précisions sur le statut dentrepreneur salarié", value: "option 2"},
{label: "Proposer une mission à un coopérateur", value: "option 3"},
{label: "Proposer un partenariat", value: "option 4"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% if contactMember %}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Proposer une mission à un coopérateur", value: "option 3"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% else %}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Obtenir des précisions sur le statut dentrepreneur salarié", value: "option 2"},
{label: "Proposer une mission à un coopérateur", value: "option 3"},
{label: "Proposer un partenariat", value: "option 4"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% endif %}
</li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ label("Votre message", "message") }}
{{ textarea( "message", { required: true, autocapitalize: "sentences", spellcheck: "true" } ) }}
</li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ checkboxes("", "subscribe", [ "Je souhaite être tenu au courant de lactualité Astrolabe"], { description: "" } ) }}
</li>
{% if contactMember %}
{{ hidden_field('subscribe', '') }}
{% else %}
<li class="[ field-list__field-group ] [ full-width ]">
{{ checkboxes("", "subscribe", [ "Je souhaite être tenu au courant de lactualité Astrolabe"], { description: "" } ) }}
</li>
{% endif %}
<!-- H o n e y p o t -->
<li aria-hidden="true">
<label class="ohnohoney" for="name"></label>
@ -40,6 +57,9 @@
<input tabindex="-1" class="ohnohoney" autocomplete="off" type="email" id="email" name="email" placeholder="Your e-mail here">
</li>
</ol>
{% if contactMember %}
{{ hidden_field('contactTo', contactMember) }}
{% endif %}
{{ button("Envoyer") }}
</form>
</div>

View File

@ -3,11 +3,11 @@
<h1 class="[ intro__heading ]">{{ brandHeading }}</h1>
<svg viewBox="0 0 127 237" width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M116.77 20.74c-.472-1.843-2.433-5.326-6.48-5.326h-4.283C105.395 6.814 98.249 0 89.533 0c-9.116 0-16.534 7.448-16.534 16.605v20.597L10.073 61.124a2.422 2.422 0 00-1.403 3.124c6.302 16.578 22.13 26.795 38.897 26.795 2.778 0 5.582-.315 8.375-.895 2.026.425 4.09.704 6.169.824v21.449a2.422 2.422 0 104.842 0V90.962a41.398 41.398 0 006.046-.8v22.259a2.422 2.422 0 104.843 0v-23.59c16.39-5.573 28.22-21.102 28.22-39.352V20.256h4.228c1.262 0 1.737 1.513 1.793 1.708a2.425 2.425 0 002.94 1.723 2.424 2.424 0 001.747-2.948zM32.478 82.973c-8.206-3.684-14.61-10.117-18.31-18.225l62.113-23.615c.013-.004.023-.013.034-.017.09-.036.173-.083.257-.128.058-.032.119-.058.174-.093.066-.044.124-.096.186-.146.06-.05.127-.095.184-.151.05-.05.092-.109.138-.162.054-.063.112-.124.159-.192.043-.065.077-.136.116-.203.037-.067.079-.131.11-.202.03-.07.05-.146.074-.22.024-.076.053-.15.07-.229.015-.065.019-.132.028-.199.013-.093.028-.187.03-.282l.003-.039V16.605c0-6.485 5.245-11.762 11.69-11.762 6.416 0 11.637 5.226 11.687 11.667v30.547H86.663a2.421 2.421 0 00-2.422 2.422c0 .023.007.043.007.068-.033 15.12-9.538 28.88-23.678 34.255-9.166 3.483-19.144 3.192-28.092-.828zm34.639 3.12c12.614-6.78 21.023-19.79 21.88-34.194h12.133c-1.194 18.255-15.785 32.903-34.013 34.195z" fill="#1E1E1E"/><path d="M89.53 20.256h4.464a2.421 2.421 0 100-4.842h-4.463a2.421 2.421 0 100 4.842zM123.897 194.561h-4.496V114.15a2.241 2.241 0 00-2.248-2.233H6.994c-1.24 0-2.248 1-2.248 2.233v80.411H2.498a2.242 2.242 0 00-2.248 2.234v37.971A2.242 2.242 0 002.498 237h121.399a2.243 2.243 0 002.249-2.234v-37.971a2.243 2.243 0 00-2.249-2.234zM9.243 116.384h105.662v78.177H9.243v-78.177zm112.406 116.149H4.746v-33.505H121.65v33.505z" fill="#1E1E1E"/><path d="M103.663 125.318h-83.18a2.242 2.242 0 00-2.249 2.234v55.841a2.241 2.241 0 002.248 2.233h83.181c1.241 0 2.248-1 2.248-2.233v-55.841a2.242 2.242 0 00-2.248-2.234zm-2.248 55.841H22.73v-51.373h78.685v51.373zM114.904 206.846h-13.488a2.242 2.242 0 00-2.248 2.234v13.401a2.242 2.242 0 002.248 2.234h13.488a2.243 2.243 0 002.249-2.234V209.08a2.243 2.243 0 00-2.249-2.234zm-2.248 13.402h-8.992v-8.935h8.992v8.935zM92.423 206.846h-13.49a2.242 2.242 0 00-2.247 2.234v13.401a2.242 2.242 0 002.248 2.234h13.489a2.242 2.242 0 002.248-2.234V209.08a2.242 2.242 0 00-2.248-2.234zm-2.248 13.402h-8.993v-8.935h8.993v8.935z" fill="#1E1E1E"/><path d="M78.934 134.253H27.227v4.467h51.707v-4.467zM63.197 143.187h-35.97v4.468h35.97v-4.468zM45.212 152.122H27.227v4.467h17.985v-4.467zM58.7 152.122h-8.993v4.467h8.992v-4.467z" fill="#111"/></svg>
<div class="btn-grp">
<a role="button" href="/comprendre-la-cae" class="btn btn-secondary">Une CAE c'est quoi ?</a>
<a role="button" href="/nous-rejoindre" class="btn btn-primary">Nous rejoindre
<a role="button" href="/comprendre-la-cae/" class="btn btn-secondary">Une CAE c'est quoi ?</a>
<a role="button" href="/nous-rejoindre/" class="btn btn-primary">Nous rejoindre
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"/></svg>
</a>
<a role="button" href="/posts/flyer-2023" class="btn btn-secondary">Notre flyer 📄</a>
<a role="button" href="/posts/flyer-2023/" class="btn btn-secondary">Notre flyer 📄</a>
</div>
</div>
</header>

View File

@ -30,7 +30,7 @@
var members = {{ collections.membersLocations | dump | safe }};
var markerGroup = members.map( member => {
return new L.marker(member.location, {icon: iconMarker}).bindPopup('<a href="'+member.url+'">'+member.name+'</a>');
return new L.marker(member.location, {icon: iconMarker}).bindPopup('<a href="'+member.url+'/">'+member.name+'</a>');
});
var markerSiege = L.marker([48.10494125597395, -1.6795760019626425], {icon: iconMarkerAlt}).bindPopup('Siège Astrolabe CAE')

View File

@ -1,5 +1,5 @@
<section id="Meeting" class="[ meeting ]">
<a class="[ meeting__link btn btn-secondary ]" href="https://framaforms.org/reunion-dinformation-collective-astrolabe-cae-1591805443" target="_blank">
<a class="[ meeting__link btn btn-secondary ]" href="https://nuage.astrolabe.coop/apps/forms/embed/jiKKjDLEJZ7DEck3tacdRMX3" target="_blank">
Réunions d'information&nbsp;
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#FFF"></path></svg>
</a>

View File

@ -4,7 +4,7 @@
<ol class="[ member-list__items ]" reversed>
{% for item in teamListItems %}
<li class="member-list__item">
<a href="{{ item.data.url }}" class="">
<a href="{{ item.data.url }}/" class="">
<img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}">
<span class="member-name btn btn-primary">{{ item.data.name }}</span>
</a>

View File

@ -4,7 +4,7 @@
<ol class="[ member-list__items ]" reversed>
{% for item in teamListItems %}
<li class="member-list__item">
<a href="{{ item.data.url }}" class="">
<a href="{{ item.data.url }}/" class="">
<img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}">
<span class="member-name btn btn-primary">{{ item.data.name }}</span>
</a>
@ -16,7 +16,7 @@
{% endfor %}
<li class="member-list__item info">
<p>Vous êtes porteur dun projet entrepreneurial en numérique et nouvelles technologies ?</p>
<a role="button" href="/nous-rejoindre" class="btn btn-secondary">Rejoignez-nous</a>
<a role="button" href="/nous-rejoindre/" class="btn btn-secondary">Rejoignez-nous</a>
</li>
</ol>
{% endif %}

View File

@ -4,7 +4,7 @@
<div class="news-list__inner">
<h2 class="[ news-list__heading ]">{{ newsListHeading }}</h2>
{% include "partials/components/posts-list.njk" %}
<a href="/posts" class="return-link">Voir tout</a>
<a href="/posts/" class="return-link">Voir tout</a>
</div>
</div>
</section>

View File

@ -14,7 +14,7 @@
{# <figure> #}
<img src="/images/crew-join.svg" alt="équipage astrolabe" loading="lazy" style="width: 22rem;">
{# </figure> #}
<a role="button" href="/nous-rejoindre" class="btn btn-primary">Nous rejoindre
<a role="button" href="/nous-rejoindre/" class="btn btn-primary">Nous rejoindre
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"></path></svg>
</a>
</div>
@ -40,20 +40,22 @@
<p>
Nos coopérateurs possèdent des compétences propres allant de développement linux embarqué au web design et créent ainsi la <b>pluralité</b> de nos prestations.
<br><br>
Nous sommes également <b>distributeurs</b> de la solution logicielle <a href="https://www.crealead.com/naega#bootstrap-fieldgroup-nav-item--prsentation" target="_blank" rel="noreferrer noopener">Naega</a>.
Nous sommes également <b>fournisseur de service SAAS</b> de la solution logicielle libre de gestion de CAE <a href="https://www.baloop-erp.fr/" target="_blank" rel="noreferrer noopener">Baloop</a>.
<br><br>
Nous sommes détenteur de l'<a href="https://www.astrolabe.coop/posts/agrement-cir-2024/" target="_blank" rel="noreferrer noopener">Agrément CIR</a> utile pour nos membres qui travaillent dans le domaine de la R&D.
</p>
</div>
<div class="side-info">
<ul class="profile-preview">
{% for profile in profilePics %}
<li>
<a href="{{ profile.data.url }}" title="{{ profile.data.name }}">
<a href="{{ profile.data.url }}/" title="{{ profile.data.name }}">
<img src="{{ profile.data.profile }}" alt="photo de {{ profile.data.name }}">
</a>
</li>
{% endfor %}
</ul>
<a role="button" href="/equipe" class="btn btn-primary">Voir l'équipe</a>
<a role="button" href="/equipe/" class="btn btn-primary">Voir l'équipe</a>
</div>
</article>
</div>

View File

@ -7,12 +7,13 @@
{% set pageTitle = metaTitle %}
{% endif %}
{% if metaDesc %}
{% set pageDesc = metaDesc %}
{% if description %}
{% set pageDesc = description %}
{% endif %}
<title>{{ pageTitle }}</title>
<link rel="canonical" href="{{ currentUrl }}" />
<link rel="alternate" type="application/rss+xml" title="Astrolabe CAE's RSS Feed" href="/feed.xml" />
<meta property="og:site_name" content="{{ siteTitle }}" />
<meta property="og:title" content="{{ pageTitle }}" />
@ -23,10 +24,10 @@
<meta name="twitter:creator" content="@{{ site.authorHandle | replace('@', '') }}" />
{% endif %}
{% if metaDesc %}
<meta name="description" content="{{ metaDesc }}" />
<meta name="twitter:description" content="{{ metaDesc }}" />
<meta property="og:description" content="{{ metaDesc }}" />
{% if description %}
<meta name="description" content="{{ description }}" />
<meta name="twitter:description" content="{{ description }}" />
<meta property="og:description" content="{{ description }}" />
{% endif %}
{% if socialImage %}

View File

@ -10,18 +10,23 @@
</p>
</div>
<div class="">
<h3><a class="footer-link" href="{{site.url}}/mentions-legales" title="Mentions légales">Mentions légales</a></h3>
<p><a class="footer-link" href="{{site.url}}/rgpd" title="Protection des données">Protection des données</a></p>
<h3><a class="footer-link" href="{{site.url}}/mentions-legales/" title="Mentions légales">Mentions légales</a></h3>
<p><a class="footer-link" href="{{site.url}}/rgpd/" title="Protection des données">Protection des données</a></p>
</div>
<div class="">
<h3>Contact</h3>
<p>{{site.authorName}}</p>
<p>{{site.authorAddress}}<br>{{site.authorCity}}</p>
<a href="{{site.authorSocial.mastodon}}" class="social" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.twitter}}" class="social" title="twitter"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 4.309a9.83 9.83 0 01-2.828.775 4.932 4.932 0 002.165-2.724 9.864 9.864 0 01-3.127 1.195A4.916 4.916 0 0016.616 2c-3.179 0-5.515 2.966-4.797 6.045A13.978 13.978 0 011.671 2.901a4.93 4.93 0 001.523 6.574 4.903 4.903 0 01-2.229-.616c-.054 2.281 1.581 4.415 3.949 4.89a4.935 4.935 0 01-2.224.084 4.928 4.928 0 004.6 3.419A9.9 9.9 0 010 19.292a13.94 13.94 0 007.548 2.212c9.142 0 14.307-7.721 13.995-14.646A10.025 10.025 0 0024 4.309z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.linkedin}}" class="social" title="linkedin"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.98 2.5A2.49 2.49 0 012.5 5 2.49 2.49 0 01.02 2.5C.02 1.12 1.13 0 2.5 0a2.49 2.49 0 012.48 2.5zM5 7H0v16h5V7zm7.982 0H8.014v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0V23H24V12.869c0-7.88-8.922-7.593-11.018-3.714V7z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.meetup}}" class="social" title="meetup"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M16.001 17.372c.002 1.856 1.194 3.497 2.884 4.055.847.28 1.721.412 2.608.451.633.028 1.265-.016 1.85-.308.46-.23.676-.609.656-1.114-.021-.509-.249-.89-.736-1.092a2.458 2.458 0 00-.52-.159c-.537-.096-1.076-.176-1.61-.282-.882-.176-1.251-.642-1.263-1.534-.01-.788.203-1.532.446-2.268.444-1.346 1.042-2.63 1.616-3.924.553-1.25 1.133-2.489 1.524-3.805.216-.723.319-1.448.123-2.196-.298-1.134-.978-1.895-2.151-2.113-1.073-.2-2.141-.223-3.112.417-.323.212-.633.162-.913-.086-.214-.188-.418-.387-.627-.58-.991-.914-2.3-.959-3.363-.124-.429.337-.79.755-1.255 1.047-.417.262-.837.336-1.298.09-.439-.234-.893-.44-1.347-.646-.459-.207-.904-.464-1.422-.507-1.635-.14-3.347.833-4.068 2.31a20.107 20.107 0 00-.83 2.017c-1.144 3.16-2.077 6.389-3.041 9.606-.433 1.44.077 2.857 1.297 3.634.951.606 1.992.756 3.071.432.873-.263 1.352-.966 1.686-1.756 1.111-2.62 2.112-5.285 3.171-7.927.291-.726.574-1.456.883-2.175.312-.726 1.209-.974 1.741-.492.325.294.411.685.379 1.103-.035.447-.208.86-.371 1.27-.689 1.743-1.391 3.48-2.083 5.221-.14.352-.292.701-.353 1.079-.106.649.151 1.224.681 1.453.542.233 1.104.272 1.665.069.653-.237 1.044-.748 1.344-1.339 1.034-2.029 2.059-4.063 3.091-6.092.477-.938.963-1.871 1.45-2.803.181-.345.393-.672.731-.887a.882.882 0 01.947-.032c.306.171.326.484.313.792a1.42 1.42 0 01-.117.482c-.134.321-.259.646-.407.961-.859 1.806-1.731 3.606-2.582 5.416-.359.765-.732 1.532-.688 2.336z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.mobilizon}}" class="social" title="mobilizon"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.42 15.192c0-2.985-.795-5.279-2.384-6.883A6.831 6.831 0 0012 6.395a6.831 6.831 0 00-5.036 1.914C5.375 9.898 4.58 12.192 4.58 15.192c0 2.999.791 5.295 2.373 6.888a6.83 6.83 0 005.036 1.914 6.831 6.831 0 005.036-1.914c1.597-1.593 2.395-3.889 2.395-6.888zm-7.414 5.64c-2.116 0-3.173-1.88-3.173-5.64 0-3.761 1.057-5.641 3.173-5.641 2.115 0 3.172 1.88 3.172 5.641 0 3.76-1.057 5.64-3.172 5.64zm-1.953-17a4.123 4.123 0 01-.336-1.679 4.135 4.135 0 01.336-1.678 4.51 4.51 0 012.165-.47 3.939 3.939 0 012.065.47c.228.53.343 1.101.336 1.678a4.14 4.14 0 01-.336 1.679 4.174 4.174 0 01-2.165.47 3.633 3.633 0 01-2.065-.47z" fill="#fff"/></svg></a>
<div class="socials">
<a href="{{site.authorSocial.mastodon}}" class="social" title="Mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.facebook}}" class="social" title="Facebook"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="24px" height="24px"><path d="M24,4C12.972,4,4,12.972,4,24c0,10.006,7.394,18.295,17,19.75V29h-4c-0.552,0-1-0.447-1-1v-3c0-0.553,0.448-1,1-1h4v-3.632 C21,15.617,23.427,13,27.834,13c1.786,0,3.195,0.124,3.254,0.129C31.604,13.175,32,13.607,32,14.125V17.5c0,0.553-0.448,1-1,1h-2 c-1.103,0-2,0.897-2,2V24h4c0.287,0,0.56,0.123,0.75,0.338c0.19,0.216,0.278,0.502,0.243,0.786l-0.375,3 C31.555,28.624,31.129,29,30.625,29H27v14.75c9.606-1.455,17-9.744,17-19.75C44,12.972,35.028,4,24,4z"/></svg></a>
<a href="{{site.authorSocial.linkedin}}" class="social" title="Linkedin"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.98 2.5A2.49 2.49 0 012.5 5 2.49 2.49 0 01.02 2.5C.02 1.12 1.13 0 2.5 0a2.49 2.49 0 012.48 2.5zM5 7H0v16h5V7zm7.982 0H8.014v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0V23H24V12.869c0-7.88-8.922-7.593-11.018-3.714V7z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.instagram}}" class="social" title="Instagram"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M 16 3 C 8.83 3 3 8.83 3 16 L 3 34 C 3 41.17 8.83 47 16 47 L 34 47 C 41.17 47 47 41.17 47 34 L 47 16 C 47 8.83 41.17 3 34 3 L 16 3 z M 37 11 C 38.1 11 39 11.9 39 13 C 39 14.1 38.1 15 37 15 C 35.9 15 35 14.1 35 13 C 35 11.9 35.9 11 37 11 z M 25 14 C 31.07 14 36 18.93 36 25 C 36 31.07 31.07 36 25 36 C 18.93 36 14 31.07 14 25 C 14 18.93 18.93 14 25 14 z M 25 16 C 20.04 16 16 20.04 16 25 C 16 29.96 20.04 34 25 34 C 29.96 34 34 29.96 34 25 C 34 20.04 29.96 16 25 16 z"/></svg></a>
<a href="{{site.authorSocial.peertube}}" class="social" title="Peertube"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M8.83,4.5l16.89,9.75L42.6,24,25.72,33.75,8.83,43.5V24l8.36,4.83,8.42,4.87V14.27l-8.42,4.87L8.83,24V4.5Z"/></g></svg></a>
<a href="{{site.authorSocial.youtube}}" class="social" title="Youtube"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M44.9,14.5c-0.4-2.2-2.3-3.8-4.5-4.3C37.1,9.5,31,9,24.4,9c-6.6,0-12.8,0.5-16.1,1.2c-2.2,0.5-4.1,2-4.5,4.3C3.4,17,3,20.5,3,25s0.4,8,0.9,10.5c0.4,2.2,2.3,3.8,4.5,4.3c3.5,0.7,9.5,1.2,16.1,1.2s12.6-0.5,16.1-1.2c2.2-0.5,4.1-2,4.5-4.3c0.4-2.5,0.9-6.1,1-10.5C45.9,20.5,45.4,17,44.9,14.5z M19,32V18l12.2,7L19,32z"/></g></svg></a>
<a href="{{site.authorSocial.twitch}}" class="social" title="Twitch"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M31.16,12.16v8.19h2.47V12.16Zm-7.75,0v8.19H26V12.16ZM14.11,4.5,7.23,11.34l0,25.12h8.3l0,7,7.06-7H28.2L40.77,24V4.5Zm1.42,2.89H38v15.2L32.55,28H26.94l-5.12,5.13V28H15.53Z"/></g></svg></a>
<a href="{{site.authorSocial.rss}}" class="social" title="RSS"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path class="a" d="M5.5,13.5729A28.9269,28.9269,0,0,1,34.4271,42.5v0H42.5a37,37,0,0,0-37-37Z"></path><path class="a" d="M29.7179,42.5h-7.4A16.818,16.818,0,0,0,5.5,25.6819v-7.4A24.2183,24.2183,0,0,1,29.7181,42.5Z"></path><circle class="a" cx="10.2459" cy="37.7549" r="4.7453"></circle>/svg></a>
</div>
</div>
</div>
</footer>

35
src/feed.njk Normal file
View File

@ -0,0 +1,35 @@
---json
{
"permalink": "feed.xml",
"eleventyExcludeFromCollections": true,
"metadata": {
"title": "Actualité d'Astrolabe",
"description": "Retrouvez nos dernières actualités",
"language": "fr",
"base": "https://www.astrolabe.coop/",
"author": "Astrolabe CAE"
}
}
---
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ metadata.base | addPathPrefixToFullUrl }}" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ metadata.title }}</title>
<link>{{ metadata.base | addPathPrefixToFullUrl }}</link>
<atom:link href="{{ permalink | htmlBaseUrl(metadata.base) }}" rel="self" type="application/rss+xml" />
<description>{{ metadata.description }}</description>
<language>{{ metadata.language or page.lang }}</language>
{%- for post in collections.posts %}
{%- set absolutePostUrl = post.url | htmlBaseUrl(metadata.base) %}
<item>
<title>{{ post.data.title }}</title>
<link>{{ absolutePostUrl }}</link>
<description>{{ post.data.description }}</description>
<pubDate>{{ post.date | dateToRfc822 }}</pubDate>
<category>{{ post.data.type }}</category>
<dc:creator>{{ post.data.author or metadata.author }}</dc:creator>
<guid>{{ absolutePostUrl }}</guid>
</item>
{%- endfor %}
</channel>
</rss>

View File

@ -5,13 +5,28 @@ const appendSuffix = n => {
return n + (s[(v - 20) % 10] || s[v] || s[0]);
};
module.exports = function dateFilter(value) {
export default function dateFilter(value) {
const dateObject = new Date(value);
// const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
const months = ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juill.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'];
const months = [
'janv.',
'févr.',
'mars',
'avr.',
'mai',
'juin',
'juill.',
'août',
'sept.',
'oct.',
'nov.',
'déc.'
];
const dayWithSuffix = appendSuffix(dateObject.getDate());
// return `${dayWithSuffix} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`;
return `${dateObject.getDate()} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`;
};
return `${dateObject.getDate()} ${
months[dateObject.getMonth()]
} ${dateObject.getFullYear()}`;
}

View File

@ -1,9 +1,11 @@
const markdownIt = require('markdown-it')({
import markdownIt from 'markdown-it';
const m = markdownIt({
html: true,
breaks: true,
linkify: true
});
module.exports = function markdown(value) {
return markdownIt.render(value);
};
export default function markdown(value) {
return m.render(value);
}

View File

@ -1,5 +1,5 @@
module.exports = function w3cDate(value) {
export default function w3cDate(value) {
const dateObject = new Date(value);
return dateObject.toISOString();
};
}

View File

@ -1,102 +1,116 @@
<?php
require("/usr/share/php/libphp-phpmailer/autoload.php");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
$errors = '';
$myEmail = getenv('ASTRO_SMTP_FROM');
if(empty($_POST['namezzz']) || empty($_POST['emailzzz']) || empty($_POST['message'])) {
$errors .= "\n Error: all fields are required";
}
if(!empty($_POST['name']) && !empty($_POST['email'])) {
$errors .= "\n Error: spam";
}
$name = $_POST['namezzz'];
$emailAddress = $_POST['emailzzz'];
$select = $_POST['select'];
$message = $_POST['message'];
$subscribe = $_POST['subscribe'];
if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
$errors .= "\n Error: Invalid email address $emailAddress";
}
if( empty($errors)) {
$to = $myEmail;
$emailSubject = "[Formulaire Astrolabe] Nouveau message";
switch ($select) {
case "option 1":
$purpose = "Demande de rendez-vous";
break;
case "option 2":
$purpose = "Demande de précisions sur le statut dentrepreneur salarié";
break;
case "option 3":
$purpose = "Proposition de misson";
break;
case "option 4":
$purpose = "Proposition de partenariat";
break;
default:
$purpose = "Autre demande";
}
$emailBody = "Vous avez reçu un nouveau message depuis le formulaire du site Astrolabe :".
"\r\n\r\nNom: $name \r\nEmail: $emailAddress \r\nRaison: $purpose\r\nSubscribe: $subscribe\r\n\r\n$message";
$emailBodyHTML = str_replace("\r\n", "<br>", $emailBody);
$mail->isSMTP();
$mail->Host = getenv('ASTRO_SMTP_HOSTNAME');
$mail->SMTPAuth = true;
$mail->Username = getenv('ASTRO_SMTP_USERNAME');
$mail->Password = getenv('ASTRO_SMTP_PASSWORD');
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
//Options
$mail->CharSet = 'UTF-8';
$mail->WordWrap = 70;
//Recipients
$mail->setFrom($myEmail);
$mail->addAddress($myEmail);
$mail->addReplyTo($emailAddress, $name);
// Content
$mail->isHTML(true);
$mail->Subject = $emailSubject;
$mail->Body = $emailBodyHTML;
$mail->AltBody = $emailBody;
$mail->send();
// if subscribe add to mailing list
if(!empty($subscribe)) {
// process
// enovoi mail add to mailing list
}
// redirect to the 'thank you' page
header("Location: /thank-you/index.html");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact form handler</title>
</head>
<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>
</body>
</html>
<?php
require("/usr/share/php/libphp-phpmailer/autoload.php");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
$errors = '';
$myEmail = getenv('ASTRO_SMTP_FROM');
$myEmailSplitted = explode('@', $myEmail);
$domainFromMyEmail = (
empty($myEmailSplitted[1])
|| count($myEmailSplitted) != 2
) ? ''
: $myEmailSplitted[1];
$wantedContact = filter_input(INPUT_POST, 'contactTo', FILTER_SANITIZE_SPECIAL_CHARS);
$wantedContact = (
empty($wantedContact)
|| strpos($wantedContact, '@') !== false
|| strpos($wantedContact, '&') !== false
|| empty($domainFromMyEmail)
) ? $myEmail : "$wantedContact@$domainFromMyEmail" ;
if(empty($_POST['namezzz']) || empty($_POST['emailzzz']) || empty($_POST['message'])) {
$errors .= "\n Error: all fields are required";
}
if(!empty($_POST['name']) && !empty($_POST['email'])) {
$errors .= "\n Error: spam";
}
$name = $_POST['namezzz'];
$emailAddress = $_POST['emailzzz'];
$select = $_POST['select'];
$message = $_POST['message'];
$subscribe = $_POST['subscribe'];
if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
$errors .= "\n Error: Invalid email address $emailAddress";
}
if(empty($errors)) {
$emailSubject = "[Formulaire Astrolabe] Nouveau message";
switch ($select) {
case "option 1":
$purpose = "Demande de rendez-vous";
break;
case "option 2":
$purpose = "Demande de précisions sur le statut dentrepreneur salarié";
break;
case "option 3":
$purpose = "Proposition de misson";
break;
case "option 4":
$purpose = "Proposition de partenariat";
break;
default:
$purpose = "Autre demande";
}
$emailSubject .= " : $purpose";
$emailBody = "Vous avez reçu un nouveau message depuis le formulaire du site Astrolabe :".
"\r\n\r\nNom: $name \r\nEmail: $emailAddress \r\nRaison: $purpose\r\nSubscribe: $subscribe\r\n\r\n$message";
$emailBodyHTML = str_replace("\r\n", "<br>", $emailBody);
$mail->isSMTP();
$mail->Host = getenv('ASTRO_SMTP_HOSTNAME');
$mail->SMTPAuth = true;
$mail->Username = getenv('ASTRO_SMTP_USERNAME');
$mail->Password = getenv('ASTRO_SMTP_PASSWORD');
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
//Options
$mail->CharSet = 'UTF-8';
$mail->WordWrap = 70;
//Recipients
$mail->setFrom($myEmail);
$mail->addAddress($wantedContact);
$mail->addReplyTo($emailAddress, $name);
// Content
$mail->isHTML(true);
$mail->Subject = $emailSubject;
$mail->Body = $emailBodyHTML;
$mail->AltBody = $emailBody;
$mail->send();
// if subscribe add to mailing list
if(!empty($subscribe)) {
// process
// enovoi mail add to mailing list
}
// redirect to the 'thank you' page
header("Location: /thank-you/index.html");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact form handler</title>
</head>
<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 734 KiB

After

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 KiB

After

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

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