Compare commits

...

7 Commits

Author SHA1 Message Date
31f40e9578 flip-flop partie cards 2026-02-02 11:55:45 +01:00
38e2390f12 cleaning file 2026-02-02 10:55:18 +01:00
fbdc97f20e removed redirect config 2026-01-26 10:46:28 +01:00
1159e619a7 partie teaaser display 2026-01-26 10:32:42 +01:00
dec9de2644 diving on partie 2026-01-26 10:23:04 +01:00
bf3c7a562b breadcrumb 2026-01-20 15:46:27 +01:00
3d3d01e653 home page 2026-01-19 16:28:42 +01:00
79 changed files with 3448 additions and 108 deletions

View File

@@ -20,6 +20,10 @@
"drupal/core-composer-scaffold": "^10.4",
"drupal/core-project-message": "^10.4",
"drupal/core-recommended": "^10.4",
"drupal/entity_block": "^2.0",
"drupal/page_manager": "^4.0@RC",
"drupal/paragraphs": "^1.20",
"drupal/redirect": "^1.12",
"drupal/upgrade_status": "^4.3",
"wikimedia/composer-merge-plugin": "^2.1"
},
@@ -104,6 +108,17 @@
"recurse": true,
"replace": false,
"merge-extra": true
},
"patches": {
"drupal/paragraphs": {
"Skip saving empty paragraphs for certain types https://www.drupal.org/project/paragraphs/issues/2877695" : "https://www.drupal.org/files/issues/2021-03-31/2877695-35.patch"
},
"drupal/page_manager": {
"https://www.drupal.org/project/page_manager/issues/3438993": "https://www.drupal.org/files/issues/2024-08-14/page-manager-3438993-MR34-24.patch"
},
"drupal/core": {
"CKEDITOR for summary https://www.drupal.org/project/drupal/issues/2671162":"https://www.drupal.org/files/issues/2025-08-23/2671162-158.patch"
}
}
}
}

281
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "066db43487766081dd580faa75f8ccd7",
"content-hash": "e3713c236ff05fa58bb8c392621b49c7",
"packages": [
{
"name": "asm89/stack-cors",
@@ -3735,6 +3735,70 @@
"issues": "https://www.drupal.org/project/issues/entity"
}
},
{
"name": "drupal/entity_block",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/entity_block.git",
"reference": "2.0.0"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/entity_block-2.0.0.zip",
"reference": "2.0.0",
"shasum": "06b2cdbd4bbdd503c87185ee01ad6f2bc1e298e0"
},
"require": {
"drupal/core": "^10.3 || ^11"
},
"type": "drupal-module",
"extra": {
"drupal": {
"version": "2.0.0",
"datestamp": "1736279748",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "floretan",
"homepage": "https://www.drupal.org/user/66163"
},
{
"name": "Jaesin",
"homepage": "https://www.drupal.org/user/841054"
},
{
"name": "mglaman",
"homepage": "https://www.drupal.org/user/2416470"
},
{
"name": "rrrob",
"homepage": "https://www.drupal.org/user/273533"
},
{
"name": "shadcn",
"homepage": "https://www.drupal.org/user/571032"
},
{
"name": "smustgrave",
"homepage": "https://www.drupal.org/user/3252890"
}
],
"description": "Let site administrators place content entities as blocks.",
"homepage": "https://www.drupal.org/project/entity_block",
"support": {
"source": "https://git.drupalcode.org/project/entity_block"
}
},
{
"name": "drupal/entity_browser",
"version": "2.15.0",
@@ -3956,6 +4020,68 @@
"source": "https://git.drupalcode.org/project/entity_clone"
}
},
{
"name": "drupal/entity_reference_revisions",
"version": "1.14.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/entity_reference_revisions.git",
"reference": "8.x-1.14"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.14.zip",
"reference": "8.x-1.14",
"shasum": "cb900e41124979a46da1912ff2b502270beda632"
},
"require": {
"drupal/core": "^10.2 || ^11"
},
"conflict": {
"drush/drush": "<12.5.1"
},
"require-dev": {
"drupal/diff": "^1 || ^2"
},
"type": "drupal-module",
"extra": {
"drupal": {
"version": "8.x-1.14",
"datestamp": "1767266825",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "berdir",
"homepage": "https://www.drupal.org/user/214652"
},
{
"name": "frans",
"homepage": "https://www.drupal.org/user/514222"
},
{
"name": "jeroen.b",
"homepage": "https://www.drupal.org/user/1853532"
},
{
"name": "miro_dietiker",
"homepage": "https://www.drupal.org/user/227761"
}
],
"description": "Entity Reference Revisions",
"homepage": "https://www.drupal.org/project/entity_reference_revisions",
"support": {
"source": "https://git.drupalcode.org/project/entity_reference_revisions"
}
},
{
"name": "drupal/extlink",
"version": "2.0.5",
@@ -5412,6 +5538,77 @@
"issues": "https://www.drupal.org/project/issues/menu_position"
}
},
{
"name": "drupal/page_manager",
"version": "4.0.0-rc3",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/page_manager.git",
"reference": "8.x-4.0-rc3"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/page_manager-8.x-4.0-rc3.zip",
"reference": "8.x-4.0-rc3",
"shasum": "9c68ed3e87196e42ceeb80d53064494d7a104abc"
},
"require": {
"drupal/core": "^9.5 || ^10 || ^11",
"drupal/ctools": "^3.15 || ^4.1"
},
"type": "drupal-module",
"extra": {
"drupal": {
"version": "8.x-4.0-rc3",
"datestamp": "1721976404",
"security-coverage": {
"status": "not-covered",
"message": "RC releases are not covered by Drupal security advisories."
}
},
"branch-alias": {
"dev-8.x-4.x": "4.x-dev"
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "Tim Plunkett",
"homepage": "https://www.drupal.org/u/tim.plunkett",
"role": "Maintainer"
},
{
"name": "EclipseGc",
"homepage": "https://www.drupal.org/user/61203"
},
{
"name": "japerry",
"homepage": "https://www.drupal.org/user/45640"
},
{
"name": "joelpittet",
"homepage": "https://www.drupal.org/user/160302"
},
{
"name": "manuel.adan",
"homepage": "https://www.drupal.org/user/516420"
},
{
"name": "phenaproxima",
"homepage": "https://www.drupal.org/user/205645"
}
],
"description": "Provides a way to place blocks on a custom page.",
"homepage": "https://www.drupal.org/project/page_manager",
"support": {
"source": "https://git.drupal.org/project/page_manager.git",
"issues": "https://www.drupal.org/project/issues/page_manager",
"irc": "irc://irc.freenode.org/drupal-contribute"
}
},
{
"name": "drupal/pagerer",
"version": "3.1.1",
@@ -5456,6 +5653,87 @@
"source": "https://git.drupalcode.org/project/pagerer"
}
},
{
"name": "drupal/paragraphs",
"version": "1.20.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/paragraphs.git",
"reference": "8.x-1.20"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.20.zip",
"reference": "8.x-1.20",
"shasum": "68051cc8c025aa3f62fd44a219d158361928a4ad"
},
"require": {
"drupal/core": "^10.3 || ^11",
"drupal/entity_reference_revisions": "~1.3"
},
"require-dev": {
"drupal/block_field": "1.x-dev",
"drupal/diff": "1.x-dev",
"drupal/entity_browser": "2.x-dev",
"drupal/entity_usage": "2.x-dev",
"drupal/feeds": "^3",
"drupal/field_group": "3.x-dev",
"drupal/inline_entity_form": "3.x-dev",
"drupal/paragraphs-paragraphs_library": "*",
"drupal/replicate": "1.x-dev",
"drupal/search_api": "^1",
"drupal/search_api_db": "*"
},
"suggest": {
"drupal/entity_browser": "Recommended for an improved user experience when using the Paragraphs library module"
},
"type": "drupal-module",
"extra": {
"drupal": {
"version": "8.x-1.20",
"datestamp": "1767269542",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "berdir",
"homepage": "https://www.drupal.org/user/214652"
},
{
"name": "frans",
"homepage": "https://www.drupal.org/user/514222"
},
{
"name": "jeroen.b",
"homepage": "https://www.drupal.org/user/1853532"
},
{
"name": "jstoller",
"homepage": "https://www.drupal.org/user/99012"
},
{
"name": "miro_dietiker",
"homepage": "https://www.drupal.org/user/227761"
},
{
"name": "primsi",
"homepage": "https://www.drupal.org/user/282629"
}
],
"description": "Enables the creation of Paragraphs entities.",
"homepage": "https://www.drupal.org/project/paragraphs",
"support": {
"source": "https://git.drupalcode.org/project/paragraphs"
}
},
{
"name": "drupal/path_alias_xt",
"version": "dev-1.x",
@@ -11985,6 +12263,7 @@
"drupal/maxlength": 10,
"drupal/menu_block": 20,
"drupal/menu_position": 20,
"drupal/page_manager": 5,
"drupal/path_alias_xt": 20,
"drupal/pathologic": 15,
"drupal/profile": 5,

View File

@@ -0,0 +1,34 @@
uuid: 48a82b35-91a5-4ef6-9411-158ce663b4c3
langcode: fr
status: true
dependencies:
config:
- system.menu.contenu
module:
- menu_block
theme:
- mathallo
id: mathallo_contenu_2
theme: mathallo
region: breadcrumb
weight: 0
provider: null
plugin: 'menu_block:contenu'
settings:
id: 'menu_block:contenu'
label: Contenu
label_display: '0'
provider: menu_block
follow: false
follow_parent: child
display_empty: false
label_link: false
label_type: block
level: 1
depth: 0
expand_all_items: false
parent: 'contenu:'
render_parent: false
suggestion: contenu
hide_on_nonactive: true
visibility: { }

View File

@@ -5,10 +5,15 @@ dependencies:
config:
- field.field.node.partie.body
- field.field.node.partie.field_chapitre
- field.field.node.partie.field_en_pratique
- field.field.node.partie.field_partie
- field.field.node.partie.field_pour_aller_plus_loin
- field.field.node.partie.field_principes_reflexions
- field.field.node.partie.field_ressources
- node.type.partie
module:
- field_group
- paragraphs
- path
- text
third_party_settings:
@@ -16,6 +21,9 @@ third_party_settings:
group_tabs:
children:
- group_corps
- group_principes_reflexion_en_pra
- group_ressources
- group_pour_aller_plus_loin
label: Tabs
region: content
parent_name: ''
@@ -37,7 +45,7 @@ third_party_settings:
label: Details
region: content
parent_name: ''
weight: 4
weight: 2
format_type: details_sidebar
format_settings:
classes: ''
@@ -64,6 +72,55 @@ third_party_settings:
formatter: open
description: ''
required_fields: true
group_principes_reflexion_en_pra:
children:
- field_principes_reflexions
- field_en_pratique
label: 'Principes/reflexion | En pratique'
region: hidden
parent_name: group_tabs
weight: 21
format_type: tab
format_settings:
classes: ''
show_empty_fields: true
id: ''
label_as_html: false
formatter: closed
description: ''
required_fields: true
group_ressources:
children:
- field_ressources
label: Ressources
region: hidden
parent_name: group_tabs
weight: 22
format_type: tab
format_settings:
classes: ''
show_empty_fields: false
id: ''
label_as_html: false
formatter: closed
description: ''
required_fields: true
group_pour_aller_plus_loin:
children:
- field_pour_aller_plus_loin
label: 'Pour aller plus loin'
region: hidden
parent_name: group_tabs
weight: 23
format_type: tab
format_settings:
classes: ''
show_empty_fields: false
id: ''
label_as_html: false
formatter: closed
description: ''
required_fields: true
id: node.partie.default
targetEntityType: node
bundle: partie
@@ -89,6 +146,14 @@ content:
size: 60
placeholder: ''
third_party_settings: { }
field_en_pratique:
type: text_textarea
weight: 4
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
field_partie:
type: number
weight: 4
@@ -96,6 +161,50 @@ content:
settings:
placeholder: 'Partie numéro ...'
third_party_settings: { }
field_pour_aller_plus_loin:
type: paragraphs
weight: 9
region: content
settings:
title: Paragraph
title_plural: Paragraphs
edit_mode: open
closed_mode: summary
autocollapse: none
closed_mode_threshold: 0
add_mode: dropdown
form_display_mode: default
default_paragraph_type: ''
features:
collapse_edit_all: collapse_edit_all
duplicate: duplicate
third_party_settings: { }
field_principes_reflexions:
type: text_textarea
weight: 3
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
field_ressources:
type: paragraphs
weight: 8
region: content
settings:
title: Paragraph
title_plural: Paragraphs
edit_mode: open
closed_mode: summary
autocollapse: none
closed_mode_threshold: 0
add_mode: dropdown
form_display_mode: default
default_paragraph_type: ''
features:
collapse_edit_all: collapse_edit_all
duplicate: duplicate
third_party_settings: { }
path:
type: path
weight: 6

View File

@@ -6,7 +6,9 @@ dependencies:
- field.field.node.static.body
- node.type.static
module:
- advanced_text_formatter
- field_group
- maxlength
- path
- text
third_party_settings:
@@ -14,7 +16,6 @@ third_party_settings:
group_details:
children:
- langcode
- translation
label: Details
region: content
parent_name: ''
@@ -42,10 +43,18 @@ content:
region: content
settings:
rows: 9
summary_rows: 3
summary_rows: 10
placeholder: ''
show_summary: false
third_party_settings: { }
third_party_settings:
maxlength:
maxlength_js: null
maxlength_js_label: 'Contenu limité à @limit caractères, restant : <strong>@remaining</strong>'
maxlength_js_summary: null
maxlength_js_label_summary: 'Contenu limité à @limit caractères, restant : <strong>@remaining</strong>'
maxlength_js_enforce: false
advanced_text_formatter:
show_token_tree: 0
created:
type: datetime_timestamp
weight: 4

View File

@@ -0,0 +1,44 @@
uuid: b4dc6c17-deea-403d-a521-5059ec5f1884
langcode: fr
status: true
dependencies:
config:
- field.field.paragraph.complement.field_description
- field.field.paragraph.complement.field_liens
- field.field.paragraph.complement.field_titre
- paragraphs.paragraphs_type.complement
module:
- link
- text
id: paragraph.complement.default
targetEntityType: paragraph
bundle: complement
mode: default
content:
field_description:
type: text_textarea
weight: 1
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
field_liens:
type: link_default
weight: 2
region: content
settings:
placeholder_url: ''
placeholder_title: ''
third_party_settings: { }
field_titre:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
status: true

View File

@@ -0,0 +1,53 @@
uuid: 99161f82-e3fa-4b00-aec7-52058bcf871e
langcode: fr
status: true
dependencies:
config:
- field.field.paragraph.ressource.field_description
- field.field.paragraph.ressource.field_fichiers
- field.field.paragraph.ressource.field_liens
- field.field.paragraph.ressource.field_titre
- paragraphs.paragraphs_type.ressource
module:
- file
- link
- text
id: paragraph.ressource.default
targetEntityType: paragraph
bundle: ressource
mode: default
content:
field_description:
type: text_textarea
weight: 1
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
field_fichiers:
type: file_generic
weight: 3
region: content
settings:
progress_indicator: throbber
third_party_settings: { }
field_liens:
type: link_default
weight: 2
region: content
settings:
placeholder_url: ''
placeholder_title: ''
third_party_settings: { }
field_titre:
type: string_textfield
weight: 0
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
hidden:
created: true
status: true

View File

@@ -35,8 +35,8 @@ content:
type: entity_reference_entity_view
label: visually_hidden
settings:
view_mode: default
link: true
view_mode: teaser
link: false
third_party_settings: { }
weight: 2
region: content

View File

@@ -0,0 +1,49 @@
uuid: 522686f4-4476-44da-90b7-01c41efdb51a
langcode: fr
status: true
dependencies:
config:
- core.entity_view_mode.node.home
- field.field.node.chapitre.body
- field.field.node.chapitre.field_chapitre_num
- field.field.node.chapitre.field_parties
- node.type.chapitre
module:
- layout_builder
- text
- user
third_party_settings:
layout_builder:
enabled: false
allow_custom: false
id: node.chapitre.home
targetEntityType: node
bundle: chapitre
mode: home
content:
body:
type: text_summary_or_trimmed
label: hidden
settings:
trim_length: 600
third_party_settings: { }
weight: 1
region: content
field_chapitre_num:
type: number_integer
label: inline
settings:
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
weight: 0
region: content
links:
settings: { }
third_party_settings: { }
weight: 2
region: content
hidden:
field_parties: true
langcode: true
search_api_excerpt: true

View File

@@ -22,12 +22,12 @@ content:
settings:
trim_length: 600
third_party_settings: { }
weight: 101
weight: 0
region: content
links:
settings: { }
third_party_settings: { }
weight: 100
weight: 1
region: content
hidden:
field_chapitre_num: true

View File

@@ -5,9 +5,14 @@ dependencies:
config:
- field.field.node.partie.body
- field.field.node.partie.field_chapitre
- field.field.node.partie.field_en_pratique
- field.field.node.partie.field_partie
- field.field.node.partie.field_pour_aller_plus_loin
- field.field.node.partie.field_principes_reflexions
- field.field.node.partie.field_ressources
- node.type.partie
module:
- entity_reference_revisions
- text
- user
id: node.partie.default
@@ -22,6 +27,13 @@ content:
third_party_settings: { }
weight: 1
region: content
field_en_pratique:
type: text_default
label: above
settings: { }
third_party_settings: { }
weight: 4
region: content
field_partie:
type: number_integer
label: inline
@@ -31,6 +43,31 @@ content:
third_party_settings: { }
weight: 0
region: content
field_pour_aller_plus_loin:
type: entity_reference_revisions_entity_view
label: above
settings:
view_mode: default
link: ''
third_party_settings: { }
weight: 6
region: content
field_principes_reflexions:
type: text_default
label: above
settings: { }
third_party_settings: { }
weight: 3
region: content
field_ressources:
type: entity_reference_revisions_entity_view
label: above
settings:
view_mode: default
link: ''
third_party_settings: { }
weight: 5
region: content
links:
settings: { }
third_party_settings: { }

View File

@@ -6,7 +6,11 @@ dependencies:
- core.entity_view_mode.node.teaser
- field.field.node.partie.body
- field.field.node.partie.field_chapitre
- field.field.node.partie.field_en_pratique
- field.field.node.partie.field_partie
- field.field.node.partie.field_pour_aller_plus_loin
- field.field.node.partie.field_principes_reflexions
- field.field.node.partie.field_ressources
- node.type.partie
module:
- text
@@ -22,15 +26,27 @@ content:
settings:
trim_length: 600
third_party_settings: { }
weight: 101
weight: 1
region: content
field_partie:
type: number_integer
label: inline
settings:
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
weight: 0
region: content
links:
settings: { }
third_party_settings: { }
weight: 100
weight: 2
region: content
hidden:
field_chapitre: true
field_partie: true
field_en_pratique: true
field_pour_aller_plus_loin: true
field_principes_reflexions: true
field_ressources: true
langcode: true
search_api_excerpt: true

View File

@@ -0,0 +1,39 @@
uuid: c87053aa-10df-4e5b-98f8-0b0a76f06a16
langcode: fr
status: true
dependencies:
config:
- core.entity_view_mode.node.home
- field.field.node.static.body
- node.type.static
module:
- layout_builder
- text
- user
third_party_settings:
layout_builder:
enabled: false
allow_custom: false
_core:
default_config_hash: 9mgezio6-8HiMYhQHSfouZjKyY4BFKR71Yh4kbSmAYU
id: node.static.home
targetEntityType: node
bundle: static
mode: home
content:
body:
type: text_summary_or_trimmed
label: hidden
settings:
trim_length: 600
third_party_settings: { }
weight: 0
region: content
links:
settings: { }
third_party_settings: { }
weight: 1
region: content
hidden:
langcode: true
search_api_excerpt: true

View File

@@ -0,0 +1,39 @@
uuid: dc86777a-d572-4e87-b4f1-0413cccb1a02
langcode: fr
status: true
dependencies:
config:
- core.entity_view_mode.node.teaser
- field.field.node.static.body
- node.type.static
module:
- layout_builder
- text
- user
third_party_settings:
layout_builder:
enabled: false
allow_custom: false
_core:
default_config_hash: 9mgezio6-8HiMYhQHSfouZjKyY4BFKR71Yh4kbSmAYU
id: node.static.teaser
targetEntityType: node
bundle: static
mode: teaser
content:
body:
type: text_summary_or_trimmed
label: hidden
settings:
trim_length: 100
third_party_settings: { }
weight: 0
region: content
links:
settings: { }
third_party_settings: { }
weight: 1
region: content
hidden:
langcode: true
search_api_excerpt: true

View File

@@ -0,0 +1,46 @@
uuid: 9362cdb6-96d2-4276-9025-469bd825b2e9
langcode: fr
status: true
dependencies:
config:
- field.field.paragraph.complement.field_description
- field.field.paragraph.complement.field_liens
- field.field.paragraph.complement.field_titre
- paragraphs.paragraphs_type.complement
module:
- link
- text
id: paragraph.complement.default
targetEntityType: paragraph
bundle: complement
mode: default
content:
field_description:
type: text_default
label: visually_hidden
settings: { }
third_party_settings: { }
weight: 1
region: content
field_liens:
type: link
label: visually_hidden
settings:
trim_length: 80
url_only: false
url_plain: false
rel: ''
target: ''
third_party_settings: { }
weight: 2
region: content
field_titre:
type: string
label: visually_hidden
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
hidden:
search_api_excerpt: true

View File

@@ -0,0 +1,56 @@
uuid: 517bb578-dd35-493c-9bd3-9f4081ca1ee1
langcode: fr
status: true
dependencies:
config:
- field.field.paragraph.ressource.field_description
- field.field.paragraph.ressource.field_fichiers
- field.field.paragraph.ressource.field_liens
- field.field.paragraph.ressource.field_titre
- paragraphs.paragraphs_type.ressource
module:
- file
- link
- text
id: paragraph.ressource.default
targetEntityType: paragraph
bundle: ressource
mode: default
content:
field_description:
type: text_default
label: visually_hidden
settings: { }
third_party_settings: { }
weight: 1
region: content
field_fichiers:
type: file_default
label: visually_hidden
settings:
use_description_as_link_text: true
third_party_settings: { }
weight: 3
region: content
field_liens:
type: link
label: visually_hidden
settings:
trim_length: 80
url_only: false
url_plain: false
rel: ''
target: ''
third_party_settings: { }
weight: 2
region: content
field_titre:
type: string
label: visually_hidden
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
hidden:
search_api_excerpt: true

View File

@@ -0,0 +1,13 @@
uuid: a7558c64-a75d-42d5-a75e-68c909b019fd
langcode: fr
status: false
dependencies:
module:
- block_content
_core:
default_config_hash: Q7yUUYeRLByl-MCGveKKF_KhAtNICLCMJuKWfugCvso
id: block_content.full
label: Complet
description: ''
targetEntityType: block_content
cache: true

View File

@@ -0,0 +1,11 @@
uuid: 5c23d4c6-8032-4d42-a111-6e2d1a31fc37
langcode: fr
status: true
dependencies:
module:
- node
id: node.home
label: home
description: ''
targetEntityType: node
cache: true

View File

@@ -0,0 +1,13 @@
uuid: 74f4d612-52d4-4c83-9ae2-b3fb78a6a82b
langcode: en
status: true
dependencies:
module:
- paragraphs
_core:
default_config_hash: h3BeHVei4Lnyqbkao3YiF4KqoY-DhRvUNfEgKG8Rgjg
id: paragraph.preview
label: Preview
description: ''
targetEntityType: paragraph
cache: true

View File

@@ -11,6 +11,7 @@ module:
better_exposed_filters: 0
block: 0
block_class: 0
block_content: 0
breakpoint: 0
bulkdelete: 0
cer: 0
@@ -40,8 +41,10 @@ module:
editor: 0
email_registration: 0
embed: 0
entity_block: 0
entity_browser: 0
entity_browser_enhanced: 0
entity_reference_revisions: 0
field: 0
field_group: 0
field_ui: 0
@@ -54,6 +57,8 @@ module:
image: 0
inline_entity_form: 0
language: 0
layout_builder: 0
layout_discovery: 0
link: 0
link_attributes: 0
linkit: 0
@@ -68,6 +73,8 @@ module:
node: 0
options: 0
page_cache: 0
page_manager: 0
page_manager_ui: 0
pagerer: 0
path: 0
path_alias: 0
@@ -100,6 +107,7 @@ module:
pathauto: 1
content_translation: 10
views: 10
paragraphs: 11
figli_starter_kit: 1000
theme:
seven: 0

View File

@@ -16,6 +16,13 @@ settings:
- heading
- bold
- italic
- bulletedList
- numberedList
- link
- blockQuote
- indent
- outdent
- showBlocks
plugins:
ckeditor5_heading:
enabled_headings:
@@ -24,5 +31,10 @@ settings:
- heading4
- heading5
- heading6
ckeditor5_list:
properties:
reversed: true
startIndex: true
multiBlock: true
image_upload:
status: false

View File

@@ -4,6 +4,7 @@ status: true
dependencies:
config:
- field.storage.node.body
- filter.format.wysiwyg
- node.type.partie
module:
- text
@@ -20,5 +21,6 @@ default_value_callback: ''
settings:
display_summary: true
required_summary: false
allowed_formats: { }
allowed_formats:
- wysiwyg
field_type: text_with_summary

View File

@@ -0,0 +1,24 @@
uuid: 85e6c3b8-1f71-458e-be84-da6fa1a10109
langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_en_pratique
- filter.format.wysiwyg
- node.type.partie
module:
- text
id: node.partie.field_en_pratique
field_name: field_en_pratique
entity_type: node
bundle: partie
label: 'En pratique'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
allowed_formats:
- wysiwyg
field_type: text_long

View File

@@ -0,0 +1,34 @@
uuid: 5ceb2a40-e781-4210-aa2a-ed5ee78e7be3
langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_pour_aller_plus_loin
- node.type.partie
- paragraphs.paragraphs_type.complement
module:
- entity_reference_revisions
id: node.partie.field_pour_aller_plus_loin
field_name: field_pour_aller_plus_loin
entity_type: node
bundle: partie
label: 'Pour aller plus loin'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:paragraph'
handler_settings:
target_bundles:
complement: complement
negate: 0
target_bundles_drag_drop:
complement:
weight: 3
enabled: true
ressource:
weight: 4
enabled: false
field_type: entity_reference_revisions

View File

@@ -0,0 +1,24 @@
uuid: b31a74e7-2cb4-4264-b699-02fa68e4e5f5
langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_principes_reflexions
- filter.format.wysiwyg
- node.type.partie
module:
- text
id: node.partie.field_principes_reflexions
field_name: field_principes_reflexions
entity_type: node
bundle: partie
label: Principes/réflexions
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
allowed_formats:
- wysiwyg
field_type: text_long

View File

@@ -0,0 +1,31 @@
uuid: 0848b835-508b-4057-8908-1474ec9adebb
langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_ressources
- node.type.partie
- paragraphs.paragraphs_type.ressource
module:
- entity_reference_revisions
id: node.partie.field_ressources
field_name: field_ressources
entity_type: node
bundle: partie
label: Ressources
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:paragraph'
handler_settings:
target_bundles:
ressource: ressource
negate: 0
target_bundles_drag_drop:
ressource:
weight: 2
enabled: true
field_type: entity_reference_revisions

View File

@@ -4,6 +4,7 @@ status: true
dependencies:
config:
- field.storage.node.body
- filter.format.wysiwyg
- node.type.static
module:
- text
@@ -22,5 +23,6 @@ default_value_callback: ''
settings:
display_summary: true
required_summary: false
allowed_formats: { }
allowed_formats:
- wysiwyg
field_type: text_with_summary

View File

@@ -0,0 +1,24 @@
uuid: caeb8f4d-c0ce-40a2-bf86-5106bd03ddd2
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_description
- filter.format.wysiwyg
- paragraphs.paragraphs_type.complement
module:
- text
id: paragraph.complement.field_description
field_name: field_description
entity_type: paragraph
bundle: complement
label: Description
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
allowed_formats:
- wysiwyg
field_type: text_long

View File

@@ -0,0 +1,23 @@
uuid: c1bc3397-0345-4589-89fd-4eb7b378c1a2
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_liens
- paragraphs.paragraphs_type.complement
module:
- link
id: paragraph.complement.field_liens
field_name: field_liens
entity_type: paragraph
bundle: complement
label: Liens
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
title: 2
link_type: 17
field_type: link

View File

@@ -0,0 +1,19 @@
uuid: 0167ac61-8aba-4756-aa75-add9b2c85393
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_titre
- paragraphs.paragraphs_type.complement
id: paragraph.complement.field_titre
field_name: field_titre
entity_type: paragraph
bundle: complement
label: Titre
description: ''
required: true
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View File

@@ -0,0 +1,24 @@
uuid: fb67ed86-dbd6-41bf-a938-1d511d4279f1
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_description
- filter.format.wysiwyg
- paragraphs.paragraphs_type.ressource
module:
- text
id: paragraph.ressource.field_description
field_name: field_description
entity_type: paragraph
bundle: ressource
label: Description
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
allowed_formats:
- wysiwyg
field_type: text_long

View File

@@ -0,0 +1,27 @@
uuid: c52e412c-2557-4629-999e-f1ca9f200401
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_fichiers
- paragraphs.paragraphs_type.ressource
module:
- file
id: paragraph.ressource.field_fichiers
field_name: field_fichiers
entity_type: paragraph
bundle: ressource
label: Fichiers
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:file'
handler_settings: { }
file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'pdf doc docx odt png gif jpg jpeg webp'
max_filesize: ''
description_field: true
field_type: file

View File

@@ -0,0 +1,23 @@
uuid: 3be96020-116c-4080-bc45-898cde346c0c
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_liens
- paragraphs.paragraphs_type.ressource
module:
- link
id: paragraph.ressource.field_liens
field_name: field_liens
entity_type: paragraph
bundle: ressource
label: Liens
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
title: 2
link_type: 17
field_type: link

View File

@@ -0,0 +1,19 @@
uuid: f13e87b6-d3c2-4b2d-9511-ca254e9e4cef
langcode: fr
status: true
dependencies:
config:
- field.storage.paragraph.field_titre
- paragraphs.paragraphs_type.ressource
id: paragraph.ressource.field_titre
field_name: field_titre
entity_type: paragraph
bundle: ressource
label: Titre
description: ''
required: true
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View File

@@ -0,0 +1,21 @@
uuid: a17026db-c6b5-4a6d-9eb2-dc648d8faaba
langcode: en
status: true
dependencies:
module:
- block_content
- text
_core:
default_config_hash: eS0snV_L3dx9shtWRTzm5eblwOJ7qKWC9IE-4GMTDFc
id: block_content.body
field_name: body
entity_type: block_content
type: text_with_summary
settings: { }
module: text
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: true
custom_storage: false

View File

@@ -0,0 +1,19 @@
uuid: 4fc2fdfa-cd64-461e-853b-d57090a2533d
langcode: fr
status: true
dependencies:
module:
- node
- text
id: node.field_en_pratique
field_name: field_en_pratique
entity_type: node
type: text_long
settings: { }
module: text
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,21 @@
uuid: ffd71593-a1d0-4799-b189-d66c76698f6b
langcode: fr
status: true
dependencies:
module:
- entity_reference_revisions
- node
- paragraphs
id: node.field_pour_aller_plus_loin
field_name: field_pour_aller_plus_loin
entity_type: node
type: entity_reference_revisions
settings:
target_type: paragraph
module: entity_reference_revisions
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,19 @@
uuid: d8e465bc-2e05-47ad-8796-0280f295b80f
langcode: fr
status: true
dependencies:
module:
- node
- text
id: node.field_principes_reflexions
field_name: field_principes_reflexions
entity_type: node
type: text_long
settings: { }
module: text
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,21 @@
uuid: 1ffea0c3-8e9b-4b62-b161-0ddd4c0ef3e0
langcode: fr
status: true
dependencies:
module:
- entity_reference_revisions
- node
- paragraphs
id: node.field_ressources
field_name: field_ressources
entity_type: node
type: entity_reference_revisions
settings:
target_type: paragraph
module: entity_reference_revisions
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,19 @@
uuid: 774dc5de-6138-477e-b7a5-223b9b0d8e37
langcode: fr
status: true
dependencies:
module:
- paragraphs
- text
id: paragraph.field_description
field_name: field_description
entity_type: paragraph
type: text_long
settings: { }
module: text
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,23 @@
uuid: 86e1055b-1a21-4939-936b-ba41b08bfc96
langcode: fr
status: true
dependencies:
module:
- file
- paragraphs
id: paragraph.field_fichiers
field_name: field_fichiers
entity_type: paragraph
type: file
settings:
target_type: file
display_field: true
display_default: true
uri_scheme: public
module: file
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,19 @@
uuid: 204c108b-48af-4df0-9373-0affb42f6a57
langcode: fr
status: true
dependencies:
module:
- link
- paragraphs
id: paragraph.field_liens
field_name: field_liens
entity_type: paragraph
type: link
settings: { }
module: link
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,21 @@
uuid: ecf7e8b1-c677-4b36-9285-f2fe35453f34
langcode: fr
status: true
dependencies:
module:
- paragraphs
id: paragraph.field_titre
field_name: field_titre
entity_type: paragraph
type: string
settings:
max_length: 255
case_sensitive: false
is_ascii: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -4,6 +4,8 @@ status: true
dependencies:
module:
- editor
- linkit
- pathologic
_core:
default_config_hash: a0dSxrd1nnzeSvKpvFmtoLpxDd3Nj6E7dQN-MZUi20g
name: wysiwyg
@@ -61,6 +63,17 @@ filters:
status: true
weight: -47
settings: { }
filter_pathologic:
id: filter_pathologic
provider: pathologic
status: false
weight: 50
settings:
settings_source: global
local_settings:
protocol_style: full
local_paths: ''
keep_language_prefix: true
filter_url:
id: filter_url
provider: filter
@@ -68,3 +81,10 @@ filters:
weight: -45
settings:
filter_url_length: 72
linkit:
id: linkit
provider: linkit
status: false
weight: 0
settings:
title: true

View File

@@ -0,0 +1,12 @@
uuid: fb91329a-cf33-4771-8563-a03002a85f56
langcode: fr
status: true
dependencies: { }
id: home
label: home
description: ''
use_admin_theme: false
path: /home
access_logic: and
access_conditions: { }
parameters: { }

View File

@@ -0,0 +1,18 @@
uuid: f03ff0d8-0f57-4d38-a451-4a98af9a8ff9
langcode: fr
status: true
dependencies: { }
_core:
default_config_hash: RCVWP-yHwxSNiQORMIabDgHMEVqOMW58w80BQgRFJ4k
id: node_view
label: 'Node view'
description: 'When enabled, this overrides the default Drupal behavior for displaying nodes at <em>/node/{node}</em>. If you add variants, you may use selection criteria such as node type or language or user access to provide different views of nodes. If no variant is selected, the default Drupal node view will be used. This page only affects nodes viewed as pages, it will not affect nodes viewed in lists or at other locations.'
use_admin_theme: false
path: '/node/{node}'
access_logic: and
access_conditions: { }
parameters:
node:
machine_name: node
label: Nœud
type: 'entity:node'

View File

@@ -0,0 +1,59 @@
uuid: 963f9420-969f-470d-9456-3fc481f7661f
langcode: fr
status: true
dependencies:
config:
- page_manager.page.home
- views.view.chapitres
module:
- entity_block
- layout_discovery
- views
id: home-layout_builder-0
label: 'Layout Builder'
weight: 0
variant: layout_builder
variant_settings:
id: layout_builder
label: null
weight: 0
uuid: 3a14630d-426d-4294-bdca-f76a37ffced7
sections:
-
layout_id: layout_onecol
layout_settings:
label: main
context_mapping: { }
components:
e318efd7-86c6-4a38-a53e-825027ccd254:
uuid: e318efd7-86c6-4a38-a53e-825027ccd254
region: content
configuration:
id: 'entity_block:node'
label: 'Présentation (Contenu)'
label_display: '0'
provider: entity_block
view_mode: home
context_mapping: { }
entity: '1'
weight: 0
additional: { }
3f8348bb-e1d8-485a-9914-dcdf777d9b73:
uuid: 3f8348bb-e1d8-485a-9914-dcdf777d9b73
region: content
configuration:
id: 'views_block:chapitres-block_1'
label: ''
label_display: '0'
provider: views
context_mapping: { }
views_label: ''
items_per_page: none
exposed: { }
weight: 1
additional: { }
third_party_settings: { }
page: home
selection_criteria: { }
selection_logic: and
static_context: { }

View File

@@ -0,0 +1,11 @@
uuid: 97617c3c-f9fc-4008-adaa-f319af9616be
langcode: fr
status: true
dependencies: { }
id: complement
label: Complément
icon_uuid: null
icon_default: null
description: ''
save_empty: false
behavior_plugins: { }

View File

@@ -0,0 +1,11 @@
uuid: 926dd7c1-625e-4eac-afc8-81698ba0119d
langcode: fr
status: true
dependencies: { }
id: ressource
label: Ressource
icon_uuid: null
icon_default: null
description: ''
save_empty: false
behavior_plugins: { }

View File

@@ -0,0 +1,3 @@
_core:
default_config_hash: 7eR0sk71Eol86r_A7BMqn5_46wzenh5J1O5vZRCGKv8
show_unpublished: true

View File

@@ -1,10 +0,0 @@
_core:
default_config_hash: R7HmKRbuDsDQNpqEWt7wWcf0ygaE3u-NQQr-w_LhHJk
auto_redirect: true
default_status_code: 301
passthrough_querystring: true
warning: false
ignore_admin_path: false
access_check: false
route_normalizer_enabled: true
langcode: fr

View File

@@ -8,7 +8,7 @@ slogan: ''
page:
403: ''
404: ''
front: /node/1
front: /home
admin_compact_mode: false
weight_select_max: 100
default_langcode: fr

View File

@@ -0,0 +1,553 @@
uuid: b28999fa-6d0e-47b7-9646-9a4fe6965d95
langcode: fr
status: true
dependencies:
module:
- block_content
- user
_core:
default_config_hash: HfvTcWhiVuvxchoh4DjIkXhKkj9ow2TGgHkLHSvRLq8
id: block_content
label: 'Blocs de contenu'
module: views
description: 'Trouver et gérer les blocs de contenu.'
tag: default
base_table: block_content_field_data
base_field: id
display:
default:
id: default
display_title: 'Par défaut'
display_plugin: default
position: 0
display_options:
title: 'Blocs de contenu'
fields:
info:
id: info
table: block_content_field_data
field: info
relationship: none
group_type: group
admin_label: ''
entity_type: null
entity_field: info
plugin_id: field
label: 'Description du bloc'
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
type:
id: type
table: block_content_field_data
field: type
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
entity_field: type
plugin_id: field
label: 'Type de bloc'
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: target_id
type: entity_reference_label
settings:
link: false
group_column: target_id
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
changed:
id: changed
table: block_content_field_data
field: changed
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
entity_field: changed
plugin_id: field
label: 'Mis à jour'
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
type: timestamp
settings:
date_format: short
custom_date_format: ''
timezone: ''
tooltip:
date_format: long
custom_date_format: ''
time_diff:
enabled: false
future_format: '@interval hence'
past_format: '@interval ago'
granularity: 2
refresh: 60
operations:
id: operations
table: block_content
field: operations
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
plugin_id: entity_operations
label: Actions
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
destination: true
pager:
type: mini
options:
offset: 0
pagination_heading_level: h4
items_per_page: 50
total_pages: null
id: 0
tags:
next: 'Suivant '
previous: ' Précédent'
expose:
items_per_page: false
items_per_page_label: 'Éléments par page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- Tout -'
offset: false
offset_label: Décalage
exposed_form:
type: basic
options:
submit_button: Appliquer
reset_button: true
reset_button_label: Réinitialiser
exposed_sorts_label: 'Trier par'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
access:
type: perm
options:
perm: 'access block library'
cache:
type: tag
options: { }
empty:
area_text_custom:
id: area_text_custom
table: views
field: area_text_custom
relationship: none
group_type: group
admin_label: ''
plugin_id: text_custom
empty: true
content: "Il n'y a pas de bloc de contenu disponible."
tokenize: false
block_content_listing_empty:
id: block_content_listing_empty
table: block_content
field: block_content_listing_empty
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
plugin_id: block_content_listing_empty
label: ''
empty: true
sorts: { }
arguments: { }
filters:
info:
id: info
table: block_content_field_data
field: info
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
entity_field: info
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: info_op
label: 'Description du bloc'
description: ''
use_operator: false
operator: info_op
operator_limit_selection: false
operator_list: { }
identifier: info
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
type:
id: type
table: block_content_field_data
field: type
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
entity_field: type
plugin_id: bundle
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: type_op
label: 'Type de bloc'
description: ''
use_operator: false
operator: type_op
operator_limit_selection: false
operator_list: { }
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
reusable:
id: reusable
table: block_content_field_data
field: reusable
relationship: none
group_type: group
admin_label: ''
entity_type: block_content
entity_field: reusable
plugin_id: boolean
operator: '='
value: '1'
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
operator_limit_selection: false
operator_list: { }
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
columns:
info: info
type: type
changed: changed
operations: operations
default: changed
info:
info:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
type:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
changed:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
operations:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
override: true
sticky: false
summary: ''
empty_table: true
caption: ''
description: ''
row:
type: fields
query:
type: views_query
options:
query_comment: ''
disable_sql_rewrite: false
distinct: false
replica: false
query_tags: { }
relationships: { }
header: { }
footer: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }
page_1:
id: page_1
display_title: Page
display_plugin: page
position: 1
display_options:
display_extenders: { }
path: admin/content/block
menu:
type: tab
title: Blocs
description: 'Créer et modifier les blocs de contenu.'
weight: 0
menu_name: admin
parent: system.admin_content
context: '0'
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }

View File

@@ -0,0 +1,175 @@
uuid: 9eece6d3-6ae6-4b98-863a-489d8d76499d
langcode: fr
status: true
dependencies:
config:
- core.entity_view_mode.node.home
- node.type.chapitre
module:
- node
- user
id: chapitres
label: Chapitres
module: views
description: ''
tag: ''
base_table: node_field_data
base_field: nid
display:
default:
id: default
display_title: Default
display_plugin: default
position: 0
display_options:
title: Chapitres
fields:
title:
id: title
table: node_field_data
field: title
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: title
plugin_id: field
label: ''
exclude: false
alter:
alter_text: false
make_link: false
absolute: false
word_boundary: false
ellipsis: false
strip_tags: false
trim: false
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
pager:
type: none
options:
offset: 0
items_per_page: null
exposed_form:
type: basic
options:
submit_button: Appliquer
reset_button: false
reset_button_label: Réinitialiser
exposed_sorts_label: 'Trier par'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
access:
type: perm
options:
perm: 'access content'
cache:
type: tag
options: { }
empty: { }
sorts:
field_chapitre_num_value:
id: field_chapitre_num_value
table: node__field_chapitre_num
field: field_chapitre_num_value
relationship: none
group_type: group
admin_label: ''
plugin_id: standard
order: ASC
expose:
label: ''
field_identifier: ''
exposed: false
arguments: { }
filters:
status:
id: status
table: node_field_data
field: status
entity_type: node
entity_field: status
plugin_id: boolean
value: '1'
group: 1
expose:
operator: ''
type:
id: type
table: node_field_data
field: type
entity_type: node
entity_field: type
plugin_id: bundle
value:
chapitre: chapitre
style:
type: default
row:
type: 'entity:node'
options:
relationship: none
view_mode: home
query:
type: views_query
options:
query_comment: ''
disable_sql_rewrite: false
distinct: false
replica: false
query_tags: { }
relationships: { }
css_class: views-home-chapitres
header: { }
footer: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- 'user.node_grants:view'
- user.permissions
tags: { }
block_1:
id: block_1
display_title: Block
display_plugin: block
position: 1
display_options:
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- 'user.node_grants:view'
- user.permissions
tags: { }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -43,8 +43,9 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
function init () {
console.log('MathalloTheme init()')
initBurgerMenu();
initPartieFrontBackCardSwitch();
initBgAnime()
initVues()
// initVues()
}
function initBurgerMenu() {
@@ -56,33 +57,50 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
})
}
function initPartieFrontBackCardSwitch() {
let principes_pratique = document.getElementById('partie-principes-pratique');
let cards = principes_pratique.getElementsByClassName('field-card');
console.log('cards', cards);
for (const card of cards) {
card.addEventListener('mousemove', function (e) {
console.log(this, e);
for (const child of this.parentElement.children){
child.classList.add('back-card')
child.classList.remove('front-card');
}
this.classList.add('front-card')
this.classList.remove('back-card')
})
}
}
function initBgAnime(){
// gsap.to('body', {
// scrollTrigger: 'main[role="main"]', // start animation when ".box" enters the viewport
// backgroundPositionY: 10
// });
ScrollSmoother.create({
smooth: 1, // how long (in seconds) it takes to "catch up" to the native scroll position
effects: true, // looks for data-speed and data-lag attributes on elements
smoothTouch: 0.1, // much shorter smoothing time on touch devices (default is NO smoothing on touch devices)
wrapper: 'main[role="main"]',
content: 'main[role="main"]>.layout-content'
});
// ScrollSmoother.create({
// smooth: 1, // how long (in seconds) it takes to "catch up" to the native scroll position
// effects: true, // looks for data-speed and data-lag attributes on elements
// smoothTouch: 0.1, // much shorter smoothing time on touch devices (default is NO smoothing on touch devices)
// wrapper: 'main[role="main"]',
// content: 'main[role="main"]>.layout-content'
// });
}
function initVues(){
console.log('initVues');
// function initVues(){
// console.log('initVues');
// initVueContent();
// // initVueContent();
}
// }
function initVueContent(){
createApp(Content).mount('main[role="main"]');
// function initVueContent(){
// createApp(Content).mount('main[role="main"]');
// processEtapeLinks();
}
// // processEtapeLinks();
// }
// function onClickEtapeLink(e){

View File

@@ -1,5 +1,6 @@
@import "partials/colors";
@import "partials/fonts";
@import "partials/mixins";
a, a:visited{
text-decoration: none;
@@ -15,6 +16,15 @@ body{
$header_height: 50px;
// _ _
// | | | |
// | | __ _ _ _ ___ _ _| |_
// | | / _` | | | |/ _ \| | | | __|
// | |___| (_| | |_| | (_) | |_| | |_
// \_____/\__,_|\__, |\___/ \__,_|\__|
// __/ |
// |___/
div.layout-container{
// display: flex;
// flex-direction: column;
@@ -29,8 +39,16 @@ div.layout-container{
width: 100vw;
height: $header_height;
}
nav[role="breadcrumb"]{
// flex: 1 1 auto;
position: fixed;
z-index: 90;
top:$header_height + 30px;
left: 15px;
}
main[role="main"]{
// flex: 1 1 auto;
padding:5em 0;
overflow-y: scroll;
}
footer[role="contentinfo"]{
@@ -44,7 +62,14 @@ div.layout-container{
// _ _ _
// | | | | | |
// | |_| | ___ __ _ __| | ___ _ __
// | _ |/ _ \/ _` |/ _` |/ _ \ '__|
// | | | | __/ (_| | (_| | __/ |
// \_| |_/\___|\__,_|\__,_|\___|_|
header[role="banner"]{
background-color: #fff;
box-shadow: 0 -5px 15px #000;
@@ -71,6 +96,10 @@ header[role="banner"]{
font-size: 2em;
text-transform:uppercase;
font-weight: 500;
&:hover{
color: $rose;
}
}
}
@@ -82,12 +111,20 @@ header[role="banner"]{
>div#burger-btn{
position:relative;
transition-duration: 0.5s;
transition-property: transform;
top: 8.5px;
&, &::before, &::after{
// position: absolute;
width:20px; height:3px;
background-color: $bleu_site;
}
&:hover{
&, &::before, &::after{
background-color: $rose;
}
}
top: 8.5px;
&::before, &::after{
content: "";
position: absolute;
@@ -100,8 +137,6 @@ header[role="banner"]{
&::after{
bottom: 6px;
}
transition-duration: 0.5s;
&[opened]{
transform: rotate(90deg);
}
@@ -117,10 +152,10 @@ header[role="banner"]{
width:100vw;
height: 0;
overflow: hidden;
transition-duration: 0.5s;
&[opened]{
height: calc(100vh - $header_height);
}
transition-duration: 0.5s;
&>nav{
padding-top: 10px;
background-color: #fff;
@@ -131,32 +166,18 @@ header[role="banner"]{
nav#block-mathallo-contenu{
padding: 1em;
ul,li{
padding: 0;
margin:0;
list-style: none;
}
@include menu-contenus;
li{
padding:0 0 1em 0;
&:first-child{
padding:0.25em 0 1em;
}
}
label{
color:$bleu_site;
font-weight: 600;
display: block;
font-size: 0.756em;
padding:0 0 0.25em 0;
}
a{
font-size: 1.13em;
}
&>ul{ // chapitres
display: flex;
flex-direction: row;
gap: 2em;
>li{
>li{
>ul{ // parties
margin:0.75em 0 0;
padding:0 0 0 1em;
@@ -165,7 +186,7 @@ header[role="banner"]{
}
}
}
}
}
}
nav#block-mathallo-navigationprincipale{
@@ -175,12 +196,12 @@ header[role="banner"]{
justify-content: flex-end;
list-style: none;
li{
&:not(:last-child){
}
margin-right: 1em;
background-color: $bleu_site;
color: #fff;
padding:0.5em 1em;
&:not(:last-child){
}
}
}
}
@@ -189,25 +210,212 @@ header[role="banner"]{
}
} // end of header[role="banner"]{
main[role="main"]{
div.layout-content{
padding:5em 0;
article{
background-color: #fff;
padding:2em;
box-shadow: 0 0 10px rgba(0,0,0,0.25);
max-width: 50em;
margin: 5em auto 0;
h2{
@include titre_h2;
margin:0;
}
// ______ _ _
// | ___ \ | | | |
// | |_/ /_ __ ___ __ _ __| | ___ _ __ _ _ _ __ ___ | |__
// | ___ \ '__/ _ \/ _` |/ _` |/ __| '__| | | | '_ ` _ \| '_ \
// | |_/ / | | __/ (_| | (_| | (__| | | |_| | | | | | | |_) |
// \____/|_| \___|\__,_|\__,_|\___|_| \__,_|_| |_| |_|_.__/
nav[role="breadcrumb"]{
background-color: #fff;
box-shadow: 0 0 10px rgba(0,0,0,0.25);
padding:0em;
ul{
margin:0;
padding-left: 0.5em;
li{
list-style: none;
}
}
#block-mathallo-contenu-2{
padding: 0.5em 1em;
@include menu-contenus;
li:not(.in-active-trail){
display: none;
}
ul,li{
display: flex;
flex-direction: row;
align-items: baseline;
gap: 1em;
}
a{
font-size: 1em;
}
&>ul>li>ul>li{
padding-left: 1em;
border-left: 2px solid $bleu_site;
}
}
}
// ___ ___ _
// | \/ | (_)
// | . . | __ _ _ _ __
// | |\/| |/ _` | | '_ \
// | | | | (_| | | | | |
// \_| |_/\__,_|_|_| |_|
main[role="main"]{
div.layout-content{
article{
@include card;
h2{
@include titre_h2;
margin:0;
a:hover{
color: $rose;
}
}
div.field-chapitre-num,
div.field-partie-num{
background-color: $bleu_site;
color: #fff;
display: inline-flex;
gap: 0.5em;
padding: 0.5em 1em;
// transform: translateY(-3em);
position: absolute;
top:-1em;
&>*{
font-weight: 600;
}
}
}
article.node-type-chapitre{
}
// Page Chapitres
section.parties{
display: flex;
gap: 2em;
padding:1em;
}
// Page Partie
section.field-card{
@include card;
h3{
@include titre_h3;
}
&.field-en-pratique{
div.field-label{
text-align: right;
}
}
&.field-ressources,
&.field-plus-loin{
.field-label{
@include titre_h3;
padding-bottom: 1em;
}
div.paragraph{
padding-bottom: 1em;
}
p{
margin: 0 0.25em;
}
}
&.field-ressources{
div.paragraph--type--ressource{
.field_titre{
background-color: $bleu_site;
color: #fff;
border-radius: 2em;
display: inline-block;
padding: 0.5em 1em;
&>div{
@include titre_h4;
color:#fff;
}
}
}
}
&.field-plus-loin{
div.paragraph--type--complement{
.field_titre{
@include titre_h4;
color: $bleu_site;
}
}
}
}
div#partie-principes-pratique{
position: relative;
display: flex;
gap: 0px;
section.field-card{
@mixin front-card{
z-index: 2;
background-color: #fff;
}
@mixin back-card{
z-index: 1;
background-color: #eee;
}
&.field-principes-reflexion{
@include front-card();
}
&.field-en-pratique{
margin-left: -50%;
margin-top: 7em;
@include back-card();
}
&.field-principes-reflexion,
&.field-en-pratique{
transition: background-color 0.25s ease-out;
&.back-card{
@include back-card();
}
&.front-card{
@include front-card();
}
}
}
}
// HOME
div.views-home-chapitres{
display: flex;
gap: 2em;
padding:1em;
>.views-row{
max-width: 700px;
article.node-type-chapitre{
h2{
@include titre_h3;
}
}
}
}
}
}
// ______ _
// | ___| | |
// | |_ ___ ___ | |_ ___ _ __
// | _/ _ \ / _ \| __/ _ \ '__|
// | || (_) | (_) | || __/ |
// \_| \___/ \___/ \__\___|_|
footer[role="contentinfo"]{
background-color: #fff;
box-shadow: 0 5px 15px #000;

View File

@@ -1,2 +1,3 @@
$bleu_site: #1642bc;
$bleu_typo: #0b1e52;
$rose: #f661e2

View File

@@ -14,6 +14,16 @@ body{
font-size: 3em;
font-weight: 400;
color: $bleu_typo;
line-height: 1;
}
@mixin titre_h3{
@include titre_h2();
font-size: 2em;
}
@mixin titre_h4{
@include titre_h2();
font-size: 1.323em;
}

View File

@@ -0,0 +1,31 @@
@mixin menu-contenus{
ul,li{
padding: 0;
margin:0;
list-style: none;
}
label{
color:$bleu_site;
font-weight: 600;
display: block;
font-size: 0.756em;
padding:0 0 0.25em 0;
&:has(+ a:hover){
color: $rose;
}
}
a{
font-size: 1.13em;
}
}
@mixin card{
position: relative;
background-color: #fff;
padding:2em;
box-shadow: 0 0 10px rgba(0,0,0,0.25);
max-width: 50em;
margin: 5em auto 0;
}

View File

@@ -30,14 +30,15 @@ function mathallo_preprocess_page(&$variables) {
}
function mathallo_preprocess_region(&$variables) {
if (isset($variables["attributes"]['class'])) {
if (!isset($variables["attributes"]['class'])) {
$variables["attributes"]['class'] = [];
}
$variables["attributes"]['class'][] = "wrapper";
}
function mathallo_preprocess_block__mathallo_contenu(&$variables) {
// function mathallo_preprocess_block__mathallo_contenu(&$variables) {
function mathallo_preprocess_block__menu_block__contenu(&$variables) {
foreach ($variables['content']['#items'] as $key => $item) {
parse_menu_item($variables['content']['#items'], $key);
}
@@ -47,14 +48,20 @@ function parse_menu_item(&$items, $key){
if ($items[$key]['url']->getRouteName() === "entity.node.canonical") {
$nid = $items[$key]['url']->getRouteParameters()['node'];
$node = \Drupal\node\Entity\Node::load($nid);
// create prefix (label) for chapitres
if ($node->getType() === "chapitre") {
$chapitre = $node->get('field_chapitre_num')->getValue()[0]['value'];
$items[$key]['prefix'] = "Chapitre {$chapitre}";
}
// create prefix (label) for parties
if ($node->getType() === "partie") {
$partie = $node->get('field_partie')->getValue()[0]['value'];
$items[$key]['prefix'] = "Partie {$partie}";
}
// add active attribute
if ($items[$key]['in_active_trail']){
$items[$key]['attributes']->offsetSet('class', 'in-active-trail');
}
}
if (count($items[$key]['below']) > 0) {
foreach ($items[$key]['below'] as $key_b => $item_b) {
@@ -67,7 +74,11 @@ function parse_menu_item(&$items, $key){
* Implements hook_preprocess_HOOK() for node.html.twig.
*/
function mathallo_preprocess_node(&$variables) {
$node_type = $variables['node']->getType();
if (!isset($variables["attributes"]['class'])) {
$variables["attributes"]['class'] = [];
}
$variables["attributes"]['class'][] = "node-type-{$node_type}";
}
@@ -75,17 +86,17 @@ function mathallo_preprocess_contanier(&$variables) {
}
/**
* Implements hook_preprocess_HOOK() for node.html.twig.
*/
function mathallo_preprocess_field(&$variables) {
if (!isset($variables["title_attributes"]['class'])) {
$variables["title_attributes"]['class'] = [];
}
$variables['title_attributes']['class'][] = 'field-label';
// function A(){
// $attr = 6;
// B($attr);
// print($attr);
// }
// function B($attr){
// $attr = 3;
// print($attr);
// }
// A();
if (!isset($variables["attributes"]['class'])) {
$variables["attributes"]['class'] = [];
}
$variables['attributes']['class'][] = $variables['field_name'];
}

View File

@@ -0,0 +1,81 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
*
* @see template_preprocess_node()
*
* @ingroup themeable
*/
#}
<article{{ attributes }}>
<div class="field-chapitre-num">
{{ content.field_chapitre_num }}
</div>
{{ title_prefix }}
{% if label and not page %}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
<div{{ content_attributes }}>
{{ content|without('field_chapitre_num') }}
</div>
</article>

View File

@@ -0,0 +1,32 @@
{#
/**
* @file
* Default theme implementation to display a block.
*
* Available variables:
* - plugin_id: The ID of the block implementation.
* - label: The configured label of the block if visible.
* - configuration: A list of the block's configuration values.
* - label: The configured label for the block.
* - label_display: The display settings for the label.
* - provider: The module or other provider that provided this block plugin.
* - Block plugin specific settings will also be stored here.
* - in_preview: Whether the plugin is being rendered in preview mode.
* - content: The content of this block.
* - attributes: array of HTML attributes populated by modules, intended to
* be added to the main container tag of this template.
* - id: A valid HTML ID and guaranteed unique.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
*
* @see template_preprocess_block()
*
* @ingroup themeable
*/
#}
{{ content }}

View File

@@ -0,0 +1,40 @@
{#
/**
* @file
* Default theme implementation to display a block.
*
* Available variables:
* - plugin_id: The ID of the block implementation.
* - label: The configured label of the block if visible.
* - configuration: A list of the block's configuration values.
* - label: The configured label for the block.
* - label_display: The display settings for the label.
* - provider: The module or other provider that provided this block plugin.
* - Block plugin specific settings will also be stored here.
* - in_preview: Whether the plugin is being rendered in preview mode.
* - content: The content of this block.
* - attributes: array of HTML attributes populated by modules, intended to
* be added to the main container tag of this template.
* - id: A valid HTML ID and guaranteed unique.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
*
* @see template_preprocess_block()
*
* @ingroup themeable
*/
#}
<div{{ attributes }}>
{{ title_prefix }}
{% if label %}
<h2{{ title_attributes }}>{{ label }}</h2>
{% endif %}
{{ title_suffix }}
{% block content %}
{{ content }}
{% endblock %}
</div>

View File

@@ -0,0 +1,64 @@
{#
/**
* @file
* Default theme implementation for a field.
*
* To override output, copy the "field.html.twig" from the templates directory
* to your theme's directory and customize it, just like customizing other
* Drupal templates such as page.html.twig or node.html.twig.
*
* Instead of overriding the theming for all fields, you can also just override
* theming for a subset of fields using
* @link themeable Theme hook suggestions. @endlink For example,
* here are some theme hook suggestions that can be used for a field_foo field
* on an article node type:
* - field--node--field-foo--article.html.twig
* - field--node--field-foo.html.twig
* - field--node--article.html.twig
* - field--field-foo.html.twig
* - field--text-with-summary.html.twig
* - field.html.twig
*
* Available variables:
* - attributes: HTML attributes for the containing element.
* - label_hidden: Whether to show the field label or not.
* - title_attributes: HTML attributes for the title.
* - label: The label for the field.
* - multiple: TRUE if a field can contain multiple items.
* - items: List of all the field items. Each item contains:
* - attributes: List of HTML attributes for each item.
* - content: The field item's content.
* - entity_type: The entity type to which the field belongs.
* - field_name: The name of the field.
* - field_type: The type of the field.
* - label_display: The display settings for the label.
*
* @see template_preprocess_field()
*
* @ingroup themeable
*/
#}
{%
set title_classes = [
label_display == 'visually_hidden' ? 'visually-hidden',
]
%}
{% if label_hidden %}
{% if multiple %}
<div{{ attributes }}>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
</div>
{% else %}
{% for item in items %}
<div{{ attributes }}>{{ item.content }}</div>
{% endfor %}
{% endif %}
{% else %}
<label>{{ label }}</label>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
{% endif %}

View File

@@ -0,0 +1,64 @@
{#
/**
* @file
* Default theme implementation for a field.
*
* To override output, copy the "field.html.twig" from the templates directory
* to your theme's directory and customize it, just like customizing other
* Drupal templates such as page.html.twig or node.html.twig.
*
* Instead of overriding the theming for all fields, you can also just override
* theming for a subset of fields using
* @link themeable Theme hook suggestions. @endlink For example,
* here are some theme hook suggestions that can be used for a field_foo field
* on an article node type:
* - field--node--field-foo--article.html.twig
* - field--node--field-foo.html.twig
* - field--node--article.html.twig
* - field--field-foo.html.twig
* - field--text-with-summary.html.twig
* - field.html.twig
*
* Available variables:
* - attributes: HTML attributes for the containing element.
* - label_hidden: Whether to show the field label or not.
* - title_attributes: HTML attributes for the title.
* - label: The label for the field.
* - multiple: TRUE if a field can contain multiple items.
* - items: List of all the field items. Each item contains:
* - attributes: List of HTML attributes for each item.
* - content: The field item's content.
* - entity_type: The entity type to which the field belongs.
* - field_name: The name of the field.
* - field_type: The type of the field.
* - label_display: The display settings for the label.
*
* @see template_preprocess_field()
*
* @ingroup themeable
*/
#}
{%
set title_classes = [
label_display == 'visually_hidden' ? 'visually-hidden',
]
%}
{% if label_hidden %}
{% if multiple %}
<div{{ attributes }}>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
</div>
{% else %}
{% for item in items %}
<div{{ attributes }}>{{ item.content }}</div>
{% endfor %}
{% endif %}
{% else %}
<label>{{ label }}</label>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
{% endif %}

View File

@@ -0,0 +1,45 @@
{#
/**
* @file
* Default theme implementation for a field.
*
* To override output, copy the "field.html.twig" from the templates directory
* to your theme's directory and customize it, just like customizing other
* Drupal templates such as page.html.twig or node.html.twig.
*
* Instead of overriding the theming for all fields, you can also just override
* theming for a subset of fields using
* @link themeable Theme hook suggestions. @endlink For example,
* here are some theme hook suggestions that can be used for a field_foo field
* on an article node type:
* - field--node--field-foo--article.html.twig
* - field--node--field-foo.html.twig
* - field--node--article.html.twig
* - field--field-foo.html.twig
* - field--text-with-summary.html.twig
* - field.html.twig
*
* Available variables:
* - attributes: HTML attributes for the containing element.
* - label_hidden: Whether to show the field label or not.
* - title_attributes: HTML attributes for the title.
* - label: The label for the field.
* - multiple: TRUE if a field can contain multiple items.
* - items: List of all the field items. Each item contains:
* - attributes: List of HTML attributes for each item.
* - content: The field item's content.
* - entity_type: The entity type to which the field belongs.
* - field_name: The name of the field.
* - field_type: The type of the field.
* - label_display: The display settings for the label.
*
* @see template_preprocess_field()
*
* @ingroup themeable
*/
#}
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}

View File

@@ -0,0 +1,74 @@
{#
/**
* @file
* Default theme implementation for a field.
*
* To override output, copy the "field.html.twig" from the templates directory
* to your theme's directory and customize it, just like customizing other
* Drupal templates such as page.html.twig or node.html.twig.
*
* Instead of overriding the theming for all fields, you can also just override
* theming for a subset of fields using
* @link themeable Theme hook suggestions. @endlink For example,
* here are some theme hook suggestions that can be used for a field_foo field
* on an article node type:
* - field--node--field-foo--article.html.twig
* - field--node--field-foo.html.twig
* - field--node--article.html.twig
* - field--field-foo.html.twig
* - field--text-with-summary.html.twig
* - field.html.twig
*
* Available variables:
* - attributes: HTML attributes for the containing element.
* - label_hidden: Whether to show the field label or not.
* - title_attributes: HTML attributes for the title.
* - label: The label for the field.
* - multiple: TRUE if a field can contain multiple items.
* - items: List of all the field items. Each item contains:
* - attributes: List of HTML attributes for each item.
* - content: The field item's content.
* - entity_type: The entity type to which the field belongs.
* - field_name: The name of the field.
* - field_type: The type of the field.
* - label_display: The display settings for the label.
*
* @see template_preprocess_field()
*
* @ingroup themeable
*/
#}
{%
set title_classes = [
label_display == 'visually_hidden' ? 'visually-hidden',
]
%}
{% if label_hidden %}
{% if multiple %}
<div{{ attributes }}>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
</div>
{% else %}
{% for item in items %}
<div{{ attributes }}>{{ item.content }}</div>
{% endfor %}
{% endif %}
{% else %}
<div{{ attributes }}>
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
{% if multiple %}
<div>
{% endif %}
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
{% if multiple %}
</div>
{% endif %}
</div>
{% endif %}

View File

@@ -0,0 +1,14 @@
{#
/**
* @file
* Default theme implementation to display a one-column layout.
*
* Available variables:
* - in_preview: Whether the plugin is being rendered in preview mode.
* - content: The content for this layout.
* - attributes: HTML attributes for the layout <div>.
*
* @ingroup themeable
*/
#}
{{ content.content }}

View File

@@ -38,10 +38,12 @@
{% endif %}
{% for item in items %}
<li{{ item.attributes }}>
{% if item.prefix %}
<label class="link-prefix">{{ item.prefix }}</label>
{% endif %}
{{ link(item.title, item.url) }}
<div class="wrapper">
{% if item.prefix %}
<label class="link-prefix">{{ item.prefix }}</label>
{% endif %}
{{ link(item.title, item.url) }}
</div>
{% if item.below %}
{{ menus.menu_links(item.below, attributes, menu_level + 1) }}
{% endif %}

View File

@@ -0,0 +1,85 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
*
* @see template_preprocess_node()
*
* @ingroup themeable
*/
#}
<article{{ attributes }}>
<div class="field-chapitre-num">
{{ content.field_chapitre_num }}
</div>
{{ title_prefix }}
{# {% if label and not page %} #}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{# {% endif %} #}
{{ title_suffix }}
<div{{ content_attributes }}>
{{ content|without('field_chapitre_num','field_parties') }}
</div>
</article>
<section class="parties">
{{ content.field_parties }}
<section>

View File

@@ -0,0 +1,102 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
*
* @see template_preprocess_node()
*
* @ingroup themeable
*/
#}
<article{{ attributes }}>
<div class="field-partie-num">
{{ content.field_partie }}
</div>
{{ title_prefix }}
{% if label and not page %}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
<div{{ content_attributes }}>
{{ content|without('field_partie','field_principes_reflexions','field_en_pratique','field_ressources','field_pour_aller_plus_loin') }}
</div>
</article>
{% if content.field_principes_reflexions or content.field_en_pratique %}
<div id="partie-principes-pratique">
{% if content.field_principes_reflexions %}
<section class="field-card field-principes-reflexion">{{ content.field_principes_reflexions }}</section>
{% endif %}
{% if content.field_en_pratique %}
<section class="field-card field-en-pratique">{{ content.field_en_pratique }}</section>
{% endif %}
</div>
{% endif %}
{% if content.field_ressources %}
<section class="field-card field-ressources">{{ content.field_ressources }}</section>
{% endif %}
{% if content.field_pour_aller_plus_loin %}
<section class="field-card field-plus-loin">{{ content.field_pour_aller_plus_loin }}</section>
{% endif %}

View File

@@ -0,0 +1,82 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
*
* @see template_preprocess_node()
*
* @ingroup themeable
*/
#}
<article{{ attributes }}>
<div class="field-partie-num">
{{ content.field_partie }}
</div>
{{ title_prefix }}
{% if label and not page %}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
<div{{ content_attributes }}>
{{ content|without('field_partie') }}
</div>
</article>

View File

@@ -0,0 +1,89 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
*
* @see template_preprocess_node()
*
* @ingroup themeable
*/
#}
<article{{ attributes }}>
{{ title_prefix }}
{% if label and not page %}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
{% if display_submitted %}
<footer>
{{ author_picture }}
<div{{ author_attributes }}>
{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
{{ metadata }}
</div>
</footer>
{% endif %}
<div{{ content_attributes }}>
{{ content }}
</div>
</article>

View File

@@ -60,8 +60,10 @@
{{ page.primary_menu }}
{{ page.secondary_menu }}
<nav role="breadcrumb">
{{ page.breadcrumb }}
</nav>
{{ page.highlighted }}
{{ page.help }}

View File

@@ -0,0 +1,21 @@
{#
/**
* @file
* Default theme implementation to display a region.
*
* Available variables:
* - content: The content for this region, typically blocks.
* - attributes: HTML attributes for the region <div>.
* - region: The name of the region variable as defined in the theme's
* .info.yml file.
*
* @see template_preprocess_region()
*
* @ingroup themeable
*/
#}
{% if content %}
<div{{ attributes }}>
{{ content }}
</div>
{% endif %}

View File

@@ -0,0 +1,71 @@
{#
/**
* @file
* Default theme implementation for main view template.
*
* Available variables:
* - attributes: Remaining HTML attributes for the element.
* - css_name: A CSS-safe version of the view name.
* - css_class: The user-specified classes names, if any.
* - header: The optional header.
* - footer: The optional footer.
* - rows: The results of the view query, if any.
* - empty: The content to display if there are no rows.
* - pager: The optional pager next/prev links to display.
* - exposed: Exposed widget form/info to display.
* - feed_icons: Optional feed icons to display.
* - more: An optional link to the next page of results.
* - title: Title of the view, only used when displaying in the admin preview.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the view title.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the view title.
* - attachment_before: An optional attachment view to be displayed before the
* view content.
* - attachment_after: An optional attachment view to be displayed after the
* view content.
* - dom_id: Unique id for every view being printed to give unique class for
* JavaScript.
*
* @see template_preprocess_views_view()
*
* @ingroup themeable
*/
#}
{%
set classes = [
dom_id ? 'js-view-dom-id-' ~ dom_id,
]
%}
<div{{ attributes.addClass(classes) }}>
{{ title_prefix }}
{{ title }}
{{ title_suffix }}
{% if header %}
<header>
{{ header }}
</header>
{% endif %}
{{ exposed }}
{{ attachment_before }}
{% if rows -%}
{{ rows }}
{% elseif empty -%}
{{ empty }}
{% endif %}
{{ pager }}
{{ attachment_after }}
{{ more }}
{% if footer %}
<footer>
{{ footer }}
</footer>
{% endif %}
{{ feed_icons }}
</div>