mise en place du début du back

This commit is contained in:
antonin gallon 2026-01-13 16:35:52 +01:00
parent 5210d78d7d
commit c1c4fda329
22 changed files with 1595 additions and 4 deletions

View file

@ -0,0 +1,79 @@
title: À propos
icon: users
tabs:
# Contenu
content:
label: Contenu
icon: text
columns:
- width: 2/3
sections:
intro:
type: fields
fields:
intro_headline:
type: headline
label: Introduction
intro_title:
label: Titre principal
type: text
required: true
help: "Ex: NOUS FAISONS JOUER LE MONDE."
intro_text:
label: Sous-titre
type: textarea
size: small
principal_text:
label: Texte principal
type: textarea
size: small
- width: 1/3
sections:
team:
type: fields
fields:
team_headline:
type: headline
label: Équipe
team_title:
label: Titre section Équipe
type: text
default: "Notre Équipe"
team_members:
label: Membres de l'équipe
type: structure
fields:
name:
label: Nom
type: text
required: true
width: 1/2
role:
label: Poste
type: text
required: true
width: 1/2
help: "Ex: CEO & Co-Founder"
photo:
label: Photo
type: files
max: 1
uploads:
template: image
# SEO
seo:
label: SEO
icon: search
sections:
meta:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,103 @@
title: Article
icon: article
status:
draft:
label: Brouillon
text: L'article n'est pas visible
unlisted:
label: Non listé
text: L'article est accessible mais pas dans la liste
listed:
label: Publié
text: L'article est visible publiquement
columns:
# Colonne principale
main:
width: 2/3
sections:
# En-tête
header:
type: fields
fields:
title:
label: Titre de l'article
type: text
required: true
intro:
label: Introduction / Chapeau
type: textarea
size: small
help: "Résumé ou accroche de l'article"
# Contenu
content:
type: fields
fields:
article_content:
label: Contenu de l'article
type: blocks
fieldsets:
heading:
label: Titre
type: heading
text:
label: Texte
type: text
quote:
label: Citation
type: quote
image:
label: Image
type: image
list:
label: Liste
type: list
video:
label: Vidéo
type: video
# Sidebar
sidebar:
width: 1/3
sections:
# Métadonnées
meta:
type: fields
fields:
date:
label: Date de publication
type: date
required: true
default: today
cover:
label: Image de couverture
type: files
max: 1
uploads:
template: image
# Recommandations
related:
type: fields
fields:
related_articles:
label: Articles recommandés
type: pages
query: site.find('blog').children.listed
max: 3
help: "Articles similaires à afficher en bas de page"
# SEO
seo:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,50 @@
title: Blog
icon: text
tabs:
# Intro
intro:
label: Introduction
icon: text
sections:
content:
type: fields
fields:
intro_title:
label: Titre
type: text
default: "NOS ARTICLES."
intro_text:
label: Texte d'introduction
type: textarea
size: small
help: "On décrypte pour vous les ressorts de la gamification, ses actualités et des cas d'étude."
articles_list:
label: Articles
type: pages
headline: Liste des articles
layout: cards
size: medium
image:
cover: true
template: article
info: "{{ page.date.toDate('d/m/Y') }}"
create: article
sortBy: date desc
# SEO
seo:
label: SEO
icon: search
sections:
meta:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,54 @@
title: Expertise
icon: wand
tabs:
# Intro
intro:
label: Introduction
icon: text
columns:
- width: 2/3
sections:
content:
type: fields
fields:
intro_title:
label: Titre principal
type: text
required: true
help: "Ex: PLAY THE REAL."
contenu:
label: Contenu
type: blocks
fieldsets:
text:
label: Texte
type: text
- width: 1/3
sections:
media:
type: fields
fields:
video:
label: Vidéo d'arrière-plan
type: files
max: 1
uploads:
template: image
# SEO
seo:
label: SEO
icon: search
sections:
meta:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,86 @@
title: Jeu
icon: play
# status:
# draft:
# label: Brouillon
# text: Le jeu n'est pas visible
# unlisted:
# label: Non listé
# text: Le jeu est accessible mais pas dans la liste
# listed:
# label: Publié
# text: Le jeu est visible publiquement
columns:
# Colonne principale
main:
width: 2/3
sections:
# Informations principales
info:
type: fields
fields:
title:
label: Nom du jeu
type: text
required: true
help: "Ex: Mozzle"
description:
label: Description
type: textarea
size: medium
help: "Un thème, 5 mots cachés... mais chacun a une lettre manquante !"
rules:
label: Règles du jeu
type: blocks
fieldsets:
- heading
- text
- list
# Sidebar
sidebar:
width: 1/3
sections:
# Visuel
visual:
type: fields
fields:
cover:
label: Image de couverture
type: files
max: 1
uploads:
template: image
badge:
label: Badge
type: select
options:
none: Aucun
new: NEW
coming_soon: Coming Soon
popular: Populaire
# Statut et liens
status:
type: fields
fields:
game_status:
label: Statut du jeu
type: select
required: true
default: available
options:
available: Disponible
coming_soon: Bientôt disponible
maintenance: En maintenance
play_link:
label: Lien pour jouer
type: url
help: "URL vers le jeu intégré ou externe"
is_embedded:
label: Jeu intégré
type: toggle
text: Le jeu s'affiche directement sur la page
default: true

View file

@ -0,0 +1,59 @@
title: Accueil
icon: home
tabs:
# Hero Section
hero:
label: Hero
icon: star
columns:
- width: 2/3
sections:
hero_content:
type: fields
fields:
hero_title:
label: Titre principal
type: text
required: true
help: "Ex: PLAY TO ENGAGE"
hero_subtitle:
label: Sous-titre
type: textarea
size: small
help: "Ex: Nous transformons les interactions en défis pertinents et gratifiants"
hero_cta_text:
label: Texte du bouton CTA
type: text
default: Explorer
hero_cta_link:
label: Lien du bouton CTA
type: pages
max: 1
- width: 1/3
sections:
media:
type: fields
fields:
video:
label: Vidéo d'arrière-plan
type: files
max: 1
uploads:
template: image
# SEO
seo:
label: SEO
icon: search
sections:
meta:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,53 @@
title: Jouer
icon: play
tabs:
# Intro
intro:
label: Introduction
icon: text
sections:
content:
type: fields
fields:
intro_title:
label: Titre
type: text
default: Jouer
intro_text:
label: Texte d'introduction
type: textarea
size: small
# Jeux
games:
label: Jeux
icon: grid
sections:
games_list:
type: pages
headline: Liste des jeux
layout: cards
size: medium
image:
cover: true
template: game
info: "{{ page.status_label }}"
create: game
# SEO
seo:
label: SEO
icon: search
sections:
meta:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,45 @@
title: Portfolio
icon: grid
tabs:
content:
label: Contenu
icon: text
sections:
# Intro
intro:
type: fields
fields:
intro_title:
label: Titre
type: text
default: Portfolio
# Projets
projects_list:
type: pages
headline: Liste des projets
layout: list
size: medium
image:
cover: true
template: project
info: "{{ page.category }}"
create: project
# SEO
seo:
label: SEO
icon: search
sections:
meta:
type: fields
fields:
meta_title:
label: Meta Title
type: text
meta_description:
label: Meta Description
type: textarea
size: small
maxlength: 160

View file

@ -0,0 +1,84 @@
title: Projet
icon: image
status:
draft:
label: Brouillon
text: Le projet n'est pas visible
unlisted:
label: Non listé
text: Le projet est accessible mais pas dans la liste
listed:
label: Publié
text: Le projet est visible publiquement
columns:
# Colonne principale
main:
width: 2/3
sections:
# Informations principales
info:
type: fields
fields:
title:
label: Nom du projet
type: text
required: true
tagline:
label: Tagline
type: text
help: "Ex: Transformez votre lecture en aventure."
description:
label: Description
type: textarea
size: medium
help: Description complète du projet
# Galerie
gallery:
type: files
headline: Galerie d'images
layout: cards
size: medium
template: image
info: "{{ file.dimensions }}"
# Sidebar
sidebar:
width: 1/3
sections:
# Métadonnées
meta:
type: fields
fields:
cover:
label: Image de couverture
type: files
max: 1
uploads:
template: image
category:
label: Catégorie
type: text
impact:
label: Impact
type: text
# Liens externes
links:
type: fields
fields:
external_links:
label: Liens externes
type: structure
fields:
link_label:
label: Nom du bouton
type: text
width: 1/2
placeholder: "Ex: App Store, Site web..."
link_url:
label: URL
type: url
width: 1/2

View file

@ -1,5 +1,103 @@
title: Site
title: World Game
sections:
pages:
type: pages
columns:
- width: 1/1
sections:
pages:
type: pages
label: Réorganisation des pages
layout: list
size: small
sortable: true
create: false
status: listed
- width: 1/3
sections:
identity:
type: fields
fields:
identity_headline:
type: headline
label: Le studio
site_title:
label: Nom du site
type: text
width: 1/2
site_tagline:
label: Tagline
type: text
width: 1/2
site_description:
label: Description SEO
type: textarea
size: small
mentions_legales:
label: Mentions légales (PDF)
type: files
max: 1
width: 1/2
- width: 1/3
sections:
contact:
type: fields
fields:
contact_headline:
type: headline
label: Contact
contact_email:
label: Email
type: email
width: 1/2
contact_phone:
label: Téléphone
type: tel
width: 1/2
contact_address:
label: Adresse
type: text
width: 1/2
placeholder: 33 rue Jean Dupont
contact_postal:
label: Code postal
type: text
width: 1/2
placeholder: 75000 Paris
- width: 1/3
sections:
social:
type: fields
fields:
social_headline:
type: headline
label: Réseaux sociaux
social_linkedin:
label: LinkedIn
type: url
width: 1/2
social_twitter:
label: Twitter / X
type: url
width: 1/2
social_instagram:
label: Instagram
type: url
width: 1/2
social_youtube:
label: YouTube
type: url
width: 1/2