2 Commits

87 changed files with 1482 additions and 8084 deletions

View File

@ -13,20 +13,18 @@ module.exports = merge(baseConfig, {
{
test: /\.css$/,
use: [
// process.env.NODE_ENV !== 'production'
// ? 'vue-style-loader'
// : MiniCssExtractPlugin.loader,
MiniCssExtractPlugin.loader,
process.env.NODE_ENV !== 'production'
? 'vue-style-loader'
: MiniCssExtractPlugin.loader,
// 'vue-style-loader',
'css-loader'
]
}, {
test: /\.scss$/,
use: [
// process.env.NODE_ENV !== 'production'
// ? 'vue-style-loader'
// : MiniCssExtractPlugin.loader,
MiniCssExtractPlugin.loader,
process.env.NODE_ENV !== 'production'
? 'vue-style-loader'
: MiniCssExtractPlugin.loader,
// 'vue-style-loader',
'css-loader',
'sass-loader'

571
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +0,0 @@
uuid: d16db992-5c92-4832-a386-69b50313a3e9
langcode: en
status: true
dependencies:
config:
- system.menu.header
module:
- menu_block
theme:
- materiotheme
id: header
theme: materiotheme
region: header_right
weight: -1
provider: null
plugin: 'menu_block:header'
settings:
id: 'menu_block:header'
label: Header
provider: menu_block
label_display: '0'
level: 1
depth: 0
expand: 0
parent: 'header:'
suggestion: header
visibility: { }

View File

@ -9,7 +9,7 @@ dependencies:
id: languageswitcher
theme: materiotheme
region: header_right
weight: 0
weight: -1
provider: null
plugin: 'language_block:language_interface'
settings:

View File

@ -8,7 +8,7 @@ id: node.materiau.title
field_name: title
entity_type: node
bundle: materiau
label: Name
label: Title
description: ''
required: true
translatable: false

View File

@ -32,6 +32,7 @@ third_party_settings:
- group_contents
- group_media
- group_taxonomy
- group_internal
parent_name: ''
weight: 0
format_type: tabs
@ -92,12 +93,12 @@ third_party_settings:
group_internal:
children:
- langcode
- field_date
- translation
- field_workflow
- field_migration
- field_memo
parent_name: ''
weight: 1
parent_name: group_htabs
weight: 13
format_type: tab
format_settings:
id: ''
@ -122,7 +123,7 @@ content:
third_party_settings: { }
region: content
field_date:
weight: 3
weight: 26
settings: { }
third_party_settings: { }
type: daterange_default

View File

@ -8,14 +8,11 @@ dependencies:
- field.field.taxonomy_term.showroom.field_public_address
- field.field.taxonomy_term.showroom.field_public_email
- field.field.taxonomy_term.showroom.field_public_phone
- field.field.taxonomy_term.showroom.field_visuels
- field.field.taxonomy_term.showroom.field_workflow
- image.style.thumbnail
- taxonomy.vocabulary.showroom
module:
- address
- field_group
- image
- telephone
- text
- workflow
@ -25,7 +22,7 @@ third_party_settings:
children:
- group_contents
- group_info
- group_media
- group_internal
parent_name: ''
weight: 1
format_type: tabs
@ -58,8 +55,8 @@ third_party_settings:
- translation
- field_workflow
- field_migration
parent_name: ''
weight: 2
parent_name: group_tabs
weight: 22
format_type: tab
format_settings:
id: ''
@ -83,20 +80,6 @@ third_party_settings:
required_fields: true
label: Contents
region: content
group_media:
children:
- field_visuels
parent_name: group_tabs
weight: 22
format_type: tab
format_settings:
id: ''
classes: ''
description: ''
formatter: closed
required_fields: true
label: media
region: content
id: taxonomy_term.showroom.default
targetEntityType: taxonomy_term
bundle: showroom
@ -126,7 +109,8 @@ content:
region: content
field_public_address:
weight: 5
settings: { }
settings:
default_country: null
third_party_settings: { }
type: address_default
region: content
@ -145,14 +129,6 @@ content:
third_party_settings: { }
type: telephone_default
region: content
field_visuels:
weight: 22
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
type: image_image
region: content
field_workflow:
weight: 6
settings: { }

View File

@ -15,20 +15,29 @@ dependencies:
- field.field.node.article.field_video
- field.field.node.article.field_visuel
- field.field.node.article.field_workflow
- image.style.card_medium
- node.type.article
module:
- datetime_range
- image
- link
- text
- user
- video_embed_field
id: node.article.default
targetEntityType: node
bundle: article
mode: default
content:
field_date:
weight: 2
body:
label: hidden
type: text_default
weight: 0
settings: { }
third_party_settings: { }
region: content
field_date:
weight: 6
label: above
settings:
separator: '-'
format_type: medium
@ -36,34 +45,78 @@ content:
third_party_settings: { }
type: daterange_default
region: content
field_visuel:
weight: 1
label: hidden
field_linked_materials:
weight: 7
label: above
settings:
image_style: card_medium
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_source:
weight: 1
label: above
settings:
trim_length: 80
url_only: false
url_plain: false
rel: ''
target: ''
third_party_settings: { }
type: link
region: content
field_tags:
weight: 5
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_thesaurus:
weight: 4
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_video:
weight: 3
label: above
settings:
responsive: true
width: 854
height: 480
autoplay: true
third_party_settings: { }
type: video_embed_field_video
region: content
field_visuel:
weight: 2
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
type: image
region: content
links:
weight: 8
region: content
settings: { }
third_party_settings: { }
title:
label: hidden
type: string
weight: 0
weight: -5
region: content
settings:
link_to_entity: false
third_party_settings: { }
hidden:
body: true
field_linked_materials: true
field_memo: true
field_migration: true
field_showroom: true
field_source: true
field_tags: true
field_thesaurus: true
field_video: true
field_workflow: true
langcode: true
links: true
search_api_excerpt: true

View File

@ -30,14 +30,14 @@ content:
body:
label: hidden
type: text_summary_or_trimmed
weight: 1
weight: 0
settings:
trim_length: 200
third_party_settings: { }
region: content
field_visuel:
type: image_delta_formatter
weight: 2
weight: 1
region: content
label: hidden
settings:
@ -46,10 +46,15 @@ content:
image_link: content
deltas_reversed: 0
third_party_settings: { }
links:
weight: 2
region: content
settings: { }
third_party_settings: { }
title:
label: hidden
type: string
weight: 0
weight: -5
region: content
settings:
link_to_entity: false
@ -66,5 +71,3 @@ hidden:
field_video: true
field_workflow: true
langcode: true
links: true
search_api_excerpt: true

View File

@ -10,105 +10,8 @@ dependencies:
- field.field.node.frontpage.field_what_is_materio
- node.type.frontpage
module:
- field_group
- text
- user
third_party_settings:
field_group:
group_intro:
children:
- title
- field_what_is_materio
parent_name: ''
weight: 0
format_type: html_element
format_settings:
element: section
show_label: false
label_element: h3
label_element_classes: ''
attributes: ''
effect: none
speed: fast
id: ''
classes: home-intro
label: intro
region: content
group_database:
children:
- field_a_database
- computed_materials_reference
parent_name: ''
weight: 1
format_type: html_element
format_settings:
element: section
show_label: false
label_element: h3
label_element_classes: ''
attributes: ''
effect: none
speed: fast
id: ''
classes: home-database
label: database
region: content
group_showrooms:
children:
- field_showrooms
- computed_showrooms_reference
parent_name: ''
weight: 2
format_type: html_element
format_settings:
element: section
show_label: false
label_element: h3
label_element_classes: ''
attributes: ''
effect: none
speed: fast
id: ''
classes: home-showrooms
label: showrooms
region: content
group_blabla:
children:
- field_blabla
- computed_articles_reference
parent_name: ''
weight: 3
format_type: html_element
format_settings:
element: section
show_label: false
label_element: h3
label_element_classes: ''
attributes: ''
effect: none
speed: fast
id: ''
classes: home-blabla
label: blabla
region: content
group_pricing:
children:
- field_pricing
parent_name: ''
weight: 4
format_type: html_element
format_settings:
element: section
show_label: false
label_element: h3
label_element_classes: ''
attributes: ''
effect: none
speed: fast
id: ''
classes: home-pricing
label: pricing
region: content
id: node.frontpage.default
targetEntityType: node
bundle: frontpage
@ -116,10 +19,10 @@ mode: default
content:
computed_articles_reference:
label: hidden
weight: 5
weight: 7
region: content
settings:
view_mode: card_medium
view_mode: teaser
link: false
third_party_settings: { }
type: entity_reference_entity_view
@ -127,17 +30,17 @@ content:
weight: 3
region: content
settings:
view_mode: card_medium
view_mode: teaser
link: false
third_party_settings: { }
type: entity_reference_entity_view
label: hidden
computed_showrooms_reference:
label: hidden
weight: 4
weight: 5
region: content
settings:
view_mode: home
view_mode: default
link: false
third_party_settings: { }
type: entity_reference_entity_view
@ -149,28 +52,28 @@ content:
type: text_default
region: content
field_blabla:
weight: 4
weight: 6
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_pricing:
weight: 5
weight: 8
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_showrooms:
weight: 3
weight: 4
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_what_is_materio:
weight: 2
weight: 1
label: above
settings: { }
third_party_settings: { }
@ -178,7 +81,7 @@ content:
region: content
title:
type: string
weight: 1
weight: 0
region: content
label: hidden
settings:
@ -187,4 +90,3 @@ content:
hidden:
langcode: true
links: true
search_api_excerpt: true

View File

@ -1,211 +0,0 @@
uuid: cc2be770-7536-4bce-a840-86a37e5e7198
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.card_big
- field.field.node.materiau.body
- field.field.node.materiau.field_attachments
- field.field.node.materiau.field_distributor
- field.field.node.materiau.field_famille
- field.field.node.materiau.field_index
- field.field.node.materiau.field_linked_articles
- field.field.node.materiau.field_linked_materials
- field.field.node.materiau.field_localisation_old
- field.field.node.materiau.field_manufacturer
- field.field.node.materiau.field_materiau_images
- field.field.node.materiau.field_memo
- field.field.node.materiau.field_migration
- field.field.node.materiau.field_reference
- field.field.node.materiau.field_samples
- field.field.node.materiau.field_short_description
- field.field.node.materiau.field_tags
- field.field.node.materiau.field_thesaurus
- field.field.node.materiau.field_video
- field.field.node.materiau.field_workflow
- node.type.materiau
module:
- computed_field
- file
- image
- materio_samples
- options
- text
- user
- video_embed_field
id: node.materiau.card_big
targetEntityType: node
bundle: materiau
mode: card_big
content:
body:
label: hidden
type: text_default
weight: 101
settings: { }
third_party_settings: { }
region: content
field_attachments:
weight: 109
label: above
settings:
use_description_as_link_text: true
third_party_settings: { }
type: file_default
region: content
field_distributor:
weight: 108
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_famille:
weight: 113
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
field_index:
weight: 114
label: above
settings:
cache_unit: -1
cache_duration: 1
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
type: computed_integer
region: content
field_linked_articles:
weight: 120
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_linked_materials:
weight: 110
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_localisation_old:
weight: 119
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_manufacturer:
weight: 107
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_materiau_images:
weight: 105
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
type: image
region: content
field_memo:
weight: 112
label: above
settings: { }
third_party_settings: { }
type: basic_string
region: content
field_migration:
weight: 117
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
field_reference:
weight: 115
label: above
settings:
sanitized: true
cache_unit: -1
cache_duration: 1
third_party_settings: { }
type: computed_string
region: content
field_samples:
weight: 118
label: above
settings: { }
third_party_settings: { }
type: materio_samples_default_formatter
region: content
field_short_description:
weight: 102
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_tags:
weight: 104
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_thesaurus:
weight: 103
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_video:
weight: 106
label: above
settings:
responsive: true
width: 854
height: 480
autoplay: true
third_party_settings: { }
type: video_embed_field_video
region: content
field_workflow:
weight: 116
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
links:
weight: 100
region: content
settings: { }
third_party_settings: { }
title:
label: hidden
type: string
weight: -5
region: content
settings:
link_to_entity: false
third_party_settings: { }
hidden:
langcode: true
search_api_excerpt: true

View File

@ -1,211 +0,0 @@
uuid: 1092f6d4-d300-4863-ad65-dfcf5acb7b92
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.card_full
- field.field.node.materiau.body
- field.field.node.materiau.field_attachments
- field.field.node.materiau.field_distributor
- field.field.node.materiau.field_famille
- field.field.node.materiau.field_index
- field.field.node.materiau.field_linked_articles
- field.field.node.materiau.field_linked_materials
- field.field.node.materiau.field_localisation_old
- field.field.node.materiau.field_manufacturer
- field.field.node.materiau.field_materiau_images
- field.field.node.materiau.field_memo
- field.field.node.materiau.field_migration
- field.field.node.materiau.field_reference
- field.field.node.materiau.field_samples
- field.field.node.materiau.field_short_description
- field.field.node.materiau.field_tags
- field.field.node.materiau.field_thesaurus
- field.field.node.materiau.field_video
- field.field.node.materiau.field_workflow
- node.type.materiau
module:
- computed_field
- file
- image
- materio_samples
- options
- text
- user
- video_embed_field
id: node.materiau.card_full
targetEntityType: node
bundle: materiau
mode: card_full
content:
body:
label: hidden
type: text_default
weight: 101
settings: { }
third_party_settings: { }
region: content
field_attachments:
weight: 109
label: above
settings:
use_description_as_link_text: true
third_party_settings: { }
type: file_default
region: content
field_distributor:
weight: 108
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_famille:
weight: 113
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
field_index:
weight: 114
label: above
settings:
cache_unit: -1
cache_duration: 1
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
type: computed_integer
region: content
field_linked_articles:
weight: 120
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_linked_materials:
weight: 110
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_localisation_old:
weight: 119
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_manufacturer:
weight: 107
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_materiau_images:
weight: 105
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
type: image
region: content
field_memo:
weight: 112
label: above
settings: { }
third_party_settings: { }
type: basic_string
region: content
field_migration:
weight: 117
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
field_reference:
weight: 115
label: above
settings:
sanitized: true
cache_unit: -1
cache_duration: 1
third_party_settings: { }
type: computed_string
region: content
field_samples:
weight: 118
label: above
settings: { }
third_party_settings: { }
type: materio_samples_default_formatter
region: content
field_short_description:
weight: 102
label: above
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
field_tags:
weight: 104
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_thesaurus:
weight: 103
label: above
settings:
link: true
third_party_settings: { }
type: entity_reference_label
region: content
field_video:
weight: 106
label: above
settings:
responsive: true
width: 854
height: 480
autoplay: true
third_party_settings: { }
type: video_embed_field_video
region: content
field_workflow:
weight: 116
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
links:
weight: 100
region: content
settings: { }
third_party_settings: { }
title:
label: hidden
type: string
weight: -5
region: content
settings:
link_to_entity: false
third_party_settings: { }
hidden:
langcode: true
search_api_excerpt: true

View File

@ -1,90 +0,0 @@
uuid: b2406930-5d1a-4926-a849-4379a595b5d0
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.card_medium
- field.field.node.materiau.body
- field.field.node.materiau.field_attachments
- field.field.node.materiau.field_distributor
- field.field.node.materiau.field_famille
- field.field.node.materiau.field_index
- field.field.node.materiau.field_linked_articles
- field.field.node.materiau.field_linked_materials
- field.field.node.materiau.field_localisation_old
- field.field.node.materiau.field_manufacturer
- field.field.node.materiau.field_materiau_images
- field.field.node.materiau.field_memo
- field.field.node.materiau.field_migration
- field.field.node.materiau.field_reference
- field.field.node.materiau.field_samples
- field.field.node.materiau.field_short_description
- field.field.node.materiau.field_tags
- field.field.node.materiau.field_thesaurus
- field.field.node.materiau.field_video
- field.field.node.materiau.field_workflow
- image.style.card_medium
- node.type.materiau
module:
- image_delta_formatter
- options
- user
id: node.materiau.card_medium
targetEntityType: node
bundle: materiau
mode: card_medium
content:
field_famille:
type: list_default
weight: 0
region: content
label: hidden
settings: { }
third_party_settings: { }
field_materiau_images:
type: image_delta_formatter
weight: 2
region: content
label: hidden
settings:
deltas: '0'
image_style: card_medium
image_link: ''
deltas_reversed: 0
third_party_settings: { }
field_short_description:
type: string
weight: 1
region: content
label: hidden
settings:
link_to_entity: false
third_party_settings: { }
title:
type: string
weight: 3
region: content
label: hidden
settings:
link_to_entity: false
third_party_settings: { }
hidden:
body: true
field_attachments: true
field_distributor: true
field_index: true
field_linked_articles: true
field_linked_materials: true
field_localisation_old: true
field_manufacturer: true
field_memo: true
field_migration: true
field_reference: true
field_samples: true
field_tags: true
field_thesaurus: true
field_video: true
field_workflow: true
langcode: true
links: true
search_api_excerpt: true

View File

@ -1,90 +0,0 @@
uuid: 67321572-ce60-4640-8385-da325147ec2d
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.card_small
- field.field.node.materiau.body
- field.field.node.materiau.field_attachments
- field.field.node.materiau.field_distributor
- field.field.node.materiau.field_famille
- field.field.node.materiau.field_index
- field.field.node.materiau.field_linked_articles
- field.field.node.materiau.field_linked_materials
- field.field.node.materiau.field_localisation_old
- field.field.node.materiau.field_manufacturer
- field.field.node.materiau.field_materiau_images
- field.field.node.materiau.field_memo
- field.field.node.materiau.field_migration
- field.field.node.materiau.field_reference
- field.field.node.materiau.field_samples
- field.field.node.materiau.field_short_description
- field.field.node.materiau.field_tags
- field.field.node.materiau.field_thesaurus
- field.field.node.materiau.field_video
- field.field.node.materiau.field_workflow
- image.style.card_small
- node.type.materiau
module:
- image_delta_formatter
- options
- user
id: node.materiau.card_small
targetEntityType: node
bundle: materiau
mode: card_small
content:
field_famille:
weight: 2
label: hidden
settings: { }
third_party_settings: { }
type: list_default
region: content
field_materiau_images:
weight: 3
label: hidden
settings:
deltas: '0'
image_style: card_small
image_link: content
deltas_reversed: 0
third_party_settings: { }
type: image_delta_formatter
region: content
field_short_description:
weight: 1
label: hidden
settings:
link_to_entity: false
third_party_settings: { }
type: string
region: content
title:
label: hidden
type: string
weight: 0
region: content
settings:
link_to_entity: false
third_party_settings: { }
hidden:
body: true
field_attachments: true
field_distributor: true
field_index: true
field_linked_articles: true
field_linked_materials: true
field_localisation_old: true
field_manufacturer: true
field_memo: true
field_migration: true
field_reference: true
field_samples: true
field_tags: true
field_thesaurus: true
field_video: true
field_workflow: true
langcode: true
links: true
search_api_excerpt: true

View File

@ -197,14 +197,5 @@ content:
region: content
settings: { }
third_party_settings: { }
title:
label: hidden
type: string
weight: -5
region: content
settings:
link_to_entity: false
third_party_settings: { }
hidden:
langcode: true
search_api_excerpt: true

View File

@ -23,7 +23,7 @@ dependencies:
- field.field.node.materiau.field_thesaurus
- field.field.node.materiau.field_video
- field.field.node.materiau.field_workflow
- image.style.card_small
- image.style.card_medium
- node.type.materiau
module:
- image_delta_formatter
@ -35,28 +35,20 @@ mode: teaser
content:
field_materiau_images:
type: image_delta_formatter
weight: 2
weight: 1
region: content
label: hidden
settings:
deltas: '0'
image_style: card_small
image_style: card_medium
image_link: ''
deltas_reversed: 0
third_party_settings: { }
field_short_description:
type: string
weight: 1
region: content
label: above
settings:
link_to_entity: false
third_party_settings: { }
title:
type: string
weight: 0
region: content
label: above
label: hidden
settings:
link_to_entity: false
third_party_settings: { }
@ -76,10 +68,10 @@ hidden:
field_migration: true
field_reference: true
field_samples: true
field_short_description: true
field_tags: true
field_thesaurus: true
field_video: true
field_workflow: true
langcode: true
links: true
search_api_excerpt: true

View File

@ -8,12 +8,10 @@ dependencies:
- field.field.taxonomy_term.showroom.field_public_address
- field.field.taxonomy_term.showroom.field_public_email
- field.field.taxonomy_term.showroom.field_public_phone
- field.field.taxonomy_term.showroom.field_visuels
- field.field.taxonomy_term.showroom.field_workflow
- taxonomy.vocabulary.showroom
module:
- address
- image
- telephone_formatter
- text
id: taxonomy_term.showroom.default
@ -52,18 +50,8 @@ content:
third_party_settings: { }
type: telephone_formatter
region: content
field_visuels:
weight: 4
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
type: image
region: content
hidden:
field_memo: true
field_migration: true
field_workflow: true
langcode: true
search_api_excerpt: true

View File

@ -1,64 +0,0 @@
uuid: 9b2818fb-e53c-4ae4-80c0-89649b9845d6
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.taxonomy_term.home
- field.field.taxonomy_term.showroom.field_memo
- field.field.taxonomy_term.showroom.field_migration
- field.field.taxonomy_term.showroom.field_public_address
- field.field.taxonomy_term.showroom.field_public_email
- field.field.taxonomy_term.showroom.field_public_phone
- field.field.taxonomy_term.showroom.field_visuels
- field.field.taxonomy_term.showroom.field_workflow
- image.style.home_showroom
- taxonomy.vocabulary.showroom
module:
- address
- image
- telephone_formatter
id: taxonomy_term.showroom.home
targetEntityType: taxonomy_term
bundle: showroom
mode: home
content:
field_public_address:
type: address_default
weight: 1
region: content
label: hidden
settings: { }
third_party_settings: { }
field_public_email:
type: email_mailto
weight: 3
region: content
label: hidden
settings: { }
third_party_settings: { }
field_public_phone:
type: telephone_formatter
weight: 2
region: content
label: hidden
settings:
format: 1
link: true
default_country: null
third_party_settings: { }
field_visuels:
weight: 0
label: hidden
settings:
image_style: home_showroom
image_link: ''
third_party_settings: { }
type: image
region: content
hidden:
description: true
field_memo: true
field_migration: true
field_workflow: true
langcode: true
search_api_excerpt: true

View File

@ -1,10 +0,0 @@
uuid: cab3c14f-2849-4436-9867-27de743a799b
langcode: en
status: true
dependencies:
module:
- node
id: node.card_big
label: card-big
targetEntityType: node
cache: true

View File

@ -1,10 +0,0 @@
uuid: 2b71b232-6d76-4a9c-916e-f28e51feda32
langcode: en
status: true
dependencies:
module:
- node
id: node.card_full
label: card-full
targetEntityType: node
cache: true

View File

@ -1,10 +0,0 @@
uuid: 0cc55609-bd6d-4e43-8c7b-afd637b04a2e
langcode: en
status: true
dependencies:
module:
- node
id: node.card_medium
label: card-medium
targetEntityType: node
cache: true

View File

@ -1,10 +0,0 @@
uuid: cfb0ddfc-2b42-4de5-9ecc-ff1eb5abd962
langcode: en
status: true
dependencies:
module:
- node
id: node.card_small
label: card-small
targetEntityType: node
cache: true

View File

@ -1,10 +0,0 @@
uuid: c8f0acee-3e1b-4406-a536-cd4e3b9501da
langcode: en
status: true
dependencies:
module:
- taxonomy
id: taxonomy_term.home
label: home
targetEntityType: taxonomy_term
cache: true

View File

@ -90,7 +90,6 @@ module:
mailgun: 0
maillog: 0
mailsystem: 0
materio_decoupled: 0
materio_home: 0
materio_jsonapi: 0
materio_migrate: 0

View File

@ -11,7 +11,7 @@ id: node.materiau.field_famille
field_name: field_famille
entity_type: node
bundle: materiau
label: Family
label: Famille
description: ''
required: true
translatable: false

View File

@ -16,10 +16,12 @@ translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: views
handler: 'default:node'
handler_settings:
view:
view_name: entity_references
display_name: entity_reference_1
arguments: { }
target_bundles:
materiau: materiau
sort:
field: _none
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

View File

@ -1,38 +0,0 @@
uuid: eaaaf871-5745-4395-84f7-3713639a2940
langcode: en
status: true
dependencies:
config:
- field.storage.taxonomy_term.field_visuels
- taxonomy.vocabulary.showroom
module:
- image
id: taxonomy_term.showroom.field_visuels
field_name: field_visuels
entity_type: taxonomy_term
bundle: showroom
label: Visuels
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'png gif jpg jpeg'
max_filesize: ''
max_resolution: ''
min_resolution: ''
alt_field: true
alt_field_required: false
title_field: true
title_field_required: false
default_image:
uuid: ''
alt: ''
title: ''
width: null
height: null
handler: 'default:file'
handler_settings: { }
field_type: image

View File

@ -1,30 +0,0 @@
uuid: 5041a549-2a8e-4994-b00a-fb3761fa6491
langcode: en
status: true
dependencies:
module:
- file
- image
- taxonomy
id: taxonomy_term.field_visuels
field_name: field_visuels
entity_type: taxonomy_term
type: image
settings:
uri_scheme: public
default_image:
uuid: ''
alt: ''
title: ''
width: null
height: null
target_type: file
display_field: false
display_default: false
module: image
locked: false
cardinality: 5
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@ -1,15 +0,0 @@
uuid: ed3fc572-5f86-4c90-b356-473f5350d2af
langcode: en
status: true
dependencies: { }
name: card_big
label: 'card-big (430x240)'
effects:
84451f7d-4b5d-41ae-ac3e-bf75aebad1e7:
uuid: 84451f7d-4b5d-41ae-ac3e-bf75aebad1e7
id: image_scale_and_crop
weight: 1
data:
width: 430
height: 340
anchor: center-center

View File

@ -1,15 +0,0 @@
uuid: fa3fff88-3b7d-43cf-9bc9-df5588735554
langcode: en
status: true
dependencies: { }
name: card_full
label: 'card-full (425x610)'
effects:
31bf30ba-8cec-4232-8675-41b41765e52e:
uuid: 31bf30ba-8cec-4232-8675-41b41765e52e
id: image_scale_and_crop
weight: 1
data:
width: 425
height: 610
anchor: center-center

View File

@ -3,7 +3,7 @@ langcode: en
status: true
dependencies: { }
name: card_medium
label: 'card-medium (210x295)'
label: card-medium
effects:
34e936a0-1fee-4327-9553-b4f48bde14e6:
uuid: 34e936a0-1fee-4327-9553-b4f48bde14e6

View File

@ -1,15 +0,0 @@
uuid: 7b14e7ed-c822-49e2-9dfe-2bd07f535cb0
langcode: en
status: true
dependencies: { }
name: card_small
label: 'card-small (100x140)'
effects:
b36b5a37-6235-40e1-aef1-54fe4244ace6:
uuid: b36b5a37-6235-40e1-aef1-54fe4244ace6
id: image_scale_and_crop
weight: 1
data:
width: 100
height: 140
anchor: center-center

View File

@ -1,15 +0,0 @@
uuid: 156ca012-5278-4c4c-805b-78819a5aa9bd
langcode: en
status: true
dependencies: { }
name: home_showroom
label: 'home-showroom (800x534)'
effects:
87ca0333-c2de-4d98-91e1-d65b0263a31e:
uuid: 87ca0333-c2de-4d98-91e1-d65b0263a31e
id: image_scale_and_crop
weight: 1
data:
width: 800
height: 450
anchor: center-center

View File

@ -15,4 +15,4 @@ id: node.materiau
target_entity_type_id: node
target_bundle: materiau
default_langcode: site_default
language_alterable: false
language_alterable: true

View File

@ -13,5 +13,5 @@ type: materiau
description: ''
help: ''
new_revision: false
preview_mode: 0
preview_mode: 1
display_submitted: false

View File

@ -1,17 +0,0 @@
uuid: 3838a066-6532-40df-8bc0-28848bedab7d
langcode: en
status: false
dependencies:
module:
- serialization
- user
id: entity.entity_view_display
plugin_id: 'entity:entity_view_display'
granularity: resource
configuration:
methods:
- GET
formats:
- json
authentication:
- cookie

View File

@ -1,18 +0,0 @@
uuid: 6c0bad4c-4cb1-4203-ab2f-f0e35207286f
langcode: en
status: false
dependencies:
module:
- node
- serialization
- user
id: entity.node_type
plugin_id: 'entity:node_type'
granularity: resource
configuration:
methods:
- GET
formats:
- json
authentication:
- cookie

View File

@ -250,6 +250,7 @@ processor_settings:
solr_date_range:
weights:
preprocess_index: 0
term_delta: { }
tracker_settings:
default:
indexing_order: fifo

View File

@ -1,8 +0,0 @@
uuid: b00f8fd5-4940-4760-abeb-39cdb74ec895
langcode: und
status: true
dependencies: { }
id: header
label: Header
description: ''
locked: false

File diff suppressed because it is too large Load Diff

View File

@ -8,10 +8,8 @@ dependencies:
- field.storage.taxonomy_term.field_public_address
- field.storage.taxonomy_term.field_public_email
- field.storage.taxonomy_term.field_synonyms
- field.storage.taxonomy_term.field_visuels
- field.storage.taxonomy_term.field_website
- field.storage.taxonomy_term.field_workflow
- image.style.medium
- taxonomy.vocabulary.company
- taxonomy.vocabulary.showroom
- taxonomy.vocabulary.tags
@ -21,7 +19,6 @@ dependencies:
module:
- address
- content_lock
- image
- link
- options
- pagerer
@ -101,11 +98,12 @@ display:
description: ''
columns:
views_bulk_operations_bulk_form: views_bulk_operations_bulk_form
field_visuels: name
tid: name
name: name
operations: name
field_public_address: field_public_address
field_public_email: field_public_email
field_website: field_website
translation_count: translation_count
langcode_1: langcode_1
is_locked: is_locked
@ -119,11 +117,6 @@ display:
separator: ''
empty_column: false
responsive: ''
field_visuels:
align: ''
separator: ''
empty_column: false
responsive: ''
tid:
sortable: false
default_sort_order: asc
@ -150,6 +143,18 @@ display:
separator: ''
empty_column: false
responsive: ''
field_public_email:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
field_website:
align: ''
separator: ''
empty_column: false
responsive: ''
translation_count:
sortable: false
default_sort_order: asc
@ -193,8 +198,6 @@ display:
empty_column: false
responsive: ''
field_memo:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
@ -1230,7 +1233,7 @@ display:
group_items: { }
plugin_id: string
sorts: { }
title: Taxonomy
title: Tags
header:
result:
id: result
@ -3126,70 +3129,6 @@ display:
entity_type: taxonomy_term
entity_field: name
plugin_id: term_name
field_visuels:
id: field_visuels
table: taxonomy_term__field_visuels
field: field_visuels
relationship: none
group_type: group
admin_label: ''
label: Visuels
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: image
settings:
image_style: medium
image_link: ''
group_column: ''
group_columns: { }
group_rows: true
delta_limit: 1
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
plugin_id: field
operations:
id: operations
table: taxonomy_term_data
@ -3729,7 +3668,6 @@ display:
- 'config:field.storage.taxonomy_term.field_memo'
- 'config:field.storage.taxonomy_term.field_migration'
- 'config:field.storage.taxonomy_term.field_public_address'
- 'config:field.storage.taxonomy_term.field_visuels'
- 'config:field.storage.taxonomy_term.field_workflow'
page_3:
display_plugin: page
@ -3827,7 +3765,6 @@ display:
fields: false
filters: false
filter_groups: false
title: false
row:
type: fields
options: { }
@ -4640,7 +4577,6 @@ display:
weight: 0
context: '0'
menu_name: main
title: Thesaurus
cache_metadata:
max-age: 0
contexts:
@ -4747,7 +4683,6 @@ display:
fields: false
filters: false
filter_groups: false
title: false
row:
type: fields
options: { }
@ -5560,7 +5495,6 @@ display:
weight: 0
context: '0'
menu_name: main
title: Tags
cache_metadata:
max-age: 0
contexts:

View File

@ -1,809 +0,0 @@
uuid: e116ba1e-828b-40a6-80e1-b7b2e9b4d37b
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.node.teaser
- field.storage.node.body
- field.storage.node.field_date
- field.storage.node.field_visuel
- image.style.card_medium
- node.type.article
- system.menu.header
module:
- datetime_range
- image
- node
- rest
- serialization
- smart_trim
- taxonomy
- user
- workflow
id: blabla
label: Blabla
module: views
description: ''
tag: ''
base_table: node_field_data
base_field: nid
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'access content'
cache:
type: tag
options: { }
query:
type: views_query
options:
disable_sql_rewrite: false
distinct: false
replica: false
query_comment: ''
query_tags: { }
exposed_form:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
pager:
type: mini
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
tags:
previous:
next:
style:
type: default
row:
type: 'entity:node'
options:
view_mode: teaser
fields:
title:
id: title
table: node_field_data
field: title
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
ellipsis: false
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: false
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: false
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
entity_type: node
entity_field: title
plugin_id: field
body:
id: body
table: node__body
field: body
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: smart_trim
settings:
trim_length: 100
trim_type: chars
trim_suffix: ...
wrap_output: false
wrap_class: trimmed
more_link: false
more_text: More
more_class: more-link
summary_handler: full
trim_options:
text: true
trim_zero: false
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
plugin_id: field
uuid:
id: uuid
table: node
field: uuid
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: false
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
entity_type: node
entity_field: uuid
plugin_id: field
field_visuel:
id: field_visuel
table: node__field_visuel
field: field_visuel
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: image
settings:
image_style: card_medium
image_link: ''
group_column: ''
group_columns: { }
group_rows: true
delta_limit: 1
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
plugin_id: field
term_node_tid:
id: term_node_tid
table: node_field_data
field: term_node_tid
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
type: separator
separator: ', '
link_to_taxonomy: false
limit: false
vids:
company: '0'
showroom: '0'
tags: '0'
thesaurus: '0'
entity_type: node
plugin_id: taxonomy_index_tid
field_date:
id: field_date
table: node__field_date
field: field_date
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: daterange_default
settings:
timezone_override: ''
format_type: html_date
separator: '-'
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
plugin_id: field
view_node:
id: view_node
table: node
field: view_node
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
text: view
output_url_as_text: true
absolute: false
entity_type: node
plugin_id: entity_link
created:
id: created
table: node_field_data
field: created
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: timestamp
settings:
date_format: html_date
custom_date_format: ''
timezone: ''
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
entity_type: node
entity_field: created
plugin_id: field
filters:
type:
id: type
table: node_field_data
field: type
value:
article: article
entity_type: node
entity_field: type
plugin_id: bundle
langcode:
id: langcode
table: node_field_data
field: langcode
relationship: none
group_type: group
admin_label: ''
operator: in
value:
'***LANGUAGE_language_interface***': '***LANGUAGE_language_interface***'
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
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: { }
entity_type: node
entity_field: langcode
plugin_id: language
field_workflow_value:
id: field_workflow_value
table: node__field_workflow
field: field_workflow_value
relationship: none
group_type: group
admin_label: ''
operator: or
value:
workflow_visible: workflow_visible
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
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: { }
reduce_duplicates: false
plugin_id: workflow_state
sorts:
created:
id: created
table: node_field_data
field: created
relationship: none
group_type: group
admin_label: ''
order: DESC
exposed: false
expose:
label: ''
granularity: minute
entity_type: node
entity_field: created
plugin_id: date
title: Blabla
header: { }
footer: { }
empty: { }
relationships: { }
arguments: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.body'
- 'config:field.storage.node.field_date'
- 'config:field.storage.node.field_visuel'
page_1:
display_plugin: page
id: page_1
display_title: Page
position: 1
display_options:
display_extenders:
views_ef_fieldset: { }
path: blabla
menu:
type: normal
title: Blabla
description: ''
expanded: false
parent: ''
weight: 0
context: '0'
menu_name: header
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.body'
- 'config:field.storage.node.field_date'
- 'config:field.storage.node.field_visuel'
rest_export_1:
display_plugin: rest_export
id: rest_export_1
display_title: 'REST export'
position: 2
display_options:
display_extenders:
views_ef_fieldset: { }
path: blabla_rest
style:
type: serializer
options:
formats:
json: json
defaults:
style: false
row: false
row:
type: data_field
options:
field_options:
title:
alias: ''
raw_output: false
pager:
type: mini
options:
items_per_page: 20
offset: 0
id: 0
total_pages: null
tags:
previous:
next:
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
rendering_language: '***LANGUAGE_entity_translation***'
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- request_format
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.body'
- 'config:field.storage.node.field_date'
- 'config:field.storage.node.field_visuel'

View File

@ -1,417 +0,0 @@
uuid: 3555fe38-1079-44a4-b09f-9573151b3080
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_materiau_images
- field.storage.node.field_reference
- image.style.card_small
- node.type.materiau
module:
- computed_field
- entity_reference_revisions
- image
- node
- user
id: entity_references
label: 'Entity references'
module: views
description: ''
tag: ''
base_table: node_field_data
base_field: nid
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'access content'
cache:
type: tag
options: { }
query:
type: views_query
options:
disable_sql_rewrite: false
distinct: false
replica: false
query_comment: ''
query_tags: { }
exposed_form:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
pager:
type: mini
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
tags:
previous:
next:
style:
type: default
options:
grouping: { }
row_class: ''
default_row_class: true
uses_fields: false
row:
type: fields
options:
inline: { }
separator: ''
hide_empty: false
default_field_elements: true
fields:
field_materiau_images:
id: field_materiau_images
table: node__field_materiau_images
field: field_materiau_images
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: image
settings:
image_style: card_small
image_link: ''
group_column: ''
group_columns: { }
group_rows: true
delta_limit: 1
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
plugin_id: field
title:
id: title
table: node_field_data
field: title
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
ellipsis: false
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: false
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
entity_type: node
entity_field: title
plugin_id: field
field_reference:
id: field_reference
table: node__field_reference
field: field_reference
relationship: none
group_type: group
admin_label: ''
label: ''
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: false
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: computed_string
settings:
sanitized: 1
cache_unit: '-1'
cache_duration: '1'
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
plugin_id: field
filters:
status:
value: '1'
table: node_field_data
field: status
plugin_id: boolean
entity_type: node
entity_field: status
id: status
expose:
operator: ''
group: 1
sorts:
created:
id: created
table: node_field_data
field: created
order: DESC
entity_type: node
entity_field: created
plugin_id: date
relationship: none
group_type: group
admin_label: ''
exposed: false
expose:
label: ''
granularity: second
header: { }
footer: { }
empty: { }
relationships: { }
arguments: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.field_materiau_images'
- 'config:field.storage.node.field_reference'
entity_reference_1:
display_plugin: entity_reference
id: entity_reference_1
display_title: 'Entity Reference materials'
position: 1
display_options:
display_extenders:
views_ef_fieldset: { }
style:
type: entity_reference
options:
search_fields:
title: title
field_reference: field_reference
filters:
status:
id: status
table: node_field_data
field: status
relationship: none
group_type: group
admin_label: ''
operator: '='
value: '1'
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
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: { }
plugin_id: boolean
entity_type: node
entity_field: status
type:
id: type
table: node_field_data
field: type
value:
materiau: materiau
entity_type: node
entity_field: type
plugin_id: bundle
defaults:
filters: false
filter_groups: false
filter_groups:
operator: AND
groups:
1: AND
display_description: ''
row:
type: entity_reference_revisions
options:
default_field_elements: true
inline:
field_materiau_images: field_materiau_images
title: title
field_reference: field_reference
separator: '-'
hide_empty: false
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.field_materiau_images'
- 'config:field.storage.node.field_reference'

File diff suppressed because it is too large Load Diff

View File

@ -11,7 +11,7 @@ module: workflow
from_sid: workflow_creation
to_sid: workflow_imported
roles:
workflow_author: '0'
anonymous: '0'
workflow_author: workflow_author
anonymous: anonymous
admin: '0'
root: '0'

View File

@ -21,7 +21,7 @@ editors_menus.company_add:
title: 'Add Companie'
appears_on:
- view.admin_taxo.page_1
editors_menus.showroom_add:
route_name: entity.taxonomy_term.add_form
route_parameters:
@ -29,22 +29,6 @@ editors_menus.showroom_add:
title: 'Add Showroom'
appears_on:
- view.admin_taxo.page_2
editors_menus.thesaurus_add:
route_name: entity.taxonomy_term.add_form
route_parameters:
taxonomy_vocabulary: 'thesaurus'
title: 'Add Thesaurus'
appears_on:
- view.admin_taxo.page_3
editors_menus.tag_add:
route_name: entity.taxonomy_term.add_form
route_parameters:
taxonomy_vocabulary: 'tags'
title: 'Add Tag'
appears_on:
- view.admin_taxo.page_4
editors_menus.user_add:
route_name: user.admin_create

View File

@ -1,5 +0,0 @@
name: 'materio_decoupled'
type: module
description: 'helpers for progressive decoupling'
core: 8.x
package: 'Materio'

View File

@ -1,72 +0,0 @@
<?php
/**
* @file
* Contains materio_decoupled.module.
*/
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_help().
*/
function materio_decoupled_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the materio_decoupled module.
case 'help.page.materio_decoupled':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('helpers for progressive decoupling') . '</p>';
return $output;
default:
}
}
/**
* Implements hook_page_attachments().
* @param array $attachments
*/
function materio_decoupled_page_attachments(array &$attachments) {
$current_path = \Drupal::service('path.current')->getPath();
$current_language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$is_front = \Drupal::service('path.matcher')->isFrontPage();
$entity_type = null;
$entity_bundle = null;
$entity_id = null;
$entity_uuid = null;
foreach (['node', 'taxonomy_term'] as $type) {
$entity = \Drupal::routeMatch()->getParameter($type);
if($entity){
$entity_type = $type;
$entity_bundle = $entity->bundle();
$entity_id = $entity->id();
$entity_uuid = $entity->uuid();
break;
}
}
$js_str = "var drupalDecoupled = {\n
sys_path:'".$current_path."',\n
is_front:".($is_front ? 'true':'false').",\n
lang_code:'".$current_language."',\n
entity_type:'".$entity_type."',\n
entity_bundle:'".$entity_bundle."',\n
entity_id:'".$entity_id."',\n
entity_uuid:'".$entity_uuid."',\n
};";
$attachments['#attached']['html_head'][] = [
[
'#type' => 'html_tag',
'#tag' => 'script',
'#value' => $js_str,
'#weight' => -999,
'#group' => 'decoupled'
],
// A key, to make it possible to recognize this HTML element when altering.
'decoupled',
];
}

View File

@ -38,8 +38,7 @@ class ComputedArticlesReferences extends EntityReferenceFieldItemList
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->sort('created', 'DESC')
->exists('field_visuel')
->range(0,6)
->range(0,5)
->condition('type', 'article');
$nids = $query->execute();
foreach ($nids as $key => $nid) {

View File

@ -40,12 +40,10 @@ class ComputedMaterialsReferences extends EntityReferenceFieldItemList
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'materiau')
->exists('field_materiau_images')
->condition('field_materiau_images.%delta', 3)
->sort('created', 'DESC')
->range(0,200);
$results = $query->execute();
$nids = array_rand($results, 30);
$nids = array_rand($results, 20);
foreach ($nids as $key => $nid) {
$this->list[$key] = $this->createItem($key, $nid);
}

View File

@ -8,8 +8,6 @@ use Drupal\Core\Field\FieldItemList;
use Drupal\Core\TypedData\TypedDataInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\TypedData\ComputedItemListTrait;
use Drupal\workflow\Entity\WorkflowManager;
// https://www.drupal.org/node/2112677
// https://www.cornel.co/article/entity-reference-computed-field-example-drupal
@ -40,15 +38,9 @@ class ComputedShowroomsReferences extends EntityReferenceFieldItemList
$query = \Drupal::entityQuery('taxonomy_term')
->condition('status', 1)
->condition('vid', 'showroom');
// remove masqué
$tids = $query->execute();
shuffle($tids);
foreach ($tids as $key => $tid) {
$term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($tid);
$sid = WorkflowManager::getCurrentStateId($term, 'field_workflow');
if($sid != 'workflow_visible') continue;
$this->list[$key] = $this->createItem($key, $tid);
}
}

View File

@ -61,16 +61,7 @@ function computed_field_field_reference_compute($entity_type_manager, $entity, $
*/
function materio_id_form_node_materiau_edit_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
// dsm($form_id);
// ksm($form);
$node = $form_state->getFormObject()->getEntity();
// lock the family filed if already filled
if(isset($form['field_famille']) && $family = $node->field_famille->value){
// dsm($family);
$form['field_famille']['widget']['#disabled'] = true;
}
// adding reference to the form title
$ref = $node->field_reference->value;
// dsm($ref);
if($ref != ''){

View File

@ -0,0 +1,27 @@
<?php
namespace Drupal\materio_sapi\Plugin\search_api\processor\Property;
use Drupal\Core\Entity\TypedData\EntityDataDefinition;
use Drupal\search_api\Processor\ProcessorPropertyInterface;
/**
* Provides a definition for a processor property that contains an entity.
*/
class TermDeltaEntityProcessorProperty extends EntityDataDefinition implements ProcessorPropertyInterface {
/**
* {@inheritdoc}
*/
public function getProcessorId() {
return $this->definition['processor_id'];
}
/**
* {@inheritdoc}
*/
public function isHidden() {
return !empty($this->definition['hidden']);
}
}

View File

@ -0,0 +1,430 @@
<?php
namespace Drupal\materio_sapi\Plugin\search_api\processor;
use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;
use Drupal\Component\Plugin\Exception\PluginNotFoundException;
use Drupal\Core\Cache\Cache;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Entity\ContentEntityTypeInterface;
use Drupal\Core\Entity\EntityFieldManager;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\search_api\Datasource\DatasourceInterface;
use Drupal\search_api\IndexInterface;
use Drupal\search_api\Item\ItemInterface;
use Drupal\search_api\Processor\EntityProcessorProperty;
use Drupal\search_api\Processor\ProcessorPluginBase;
use Drupal\search_api\SearchApiException;
use Drupal\search_api\Utility\Utility;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Allows indexing of reverse entity references.
*
* @SearchApiProcessor(
* id = "term_delta",
* label = @Translation("Term Delta"),
* description = @Translation("Allow to boost term reference field value regarding delta."),
* stages = {
* "add_properties" = 0,
* },
* )
*/
class TermDelta extends ProcessorPluginBase {
/**
* Static cache for all entity references.
*
* @var array[][]|null
*
* @see \Drupal\search_api\Plugin\search_api\processor\ReverseEntityReferences::getEntityReferences()
*/
protected $references;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface|null
*/
protected $entityTypeManager;
/**
* The entity field manager.
*
* @var \Drupal\Core\Entity\EntityFieldManager|null
*/
protected $entityFieldManager;
/**
* The entity type bundle info.
*
* @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|null
*/
protected $entityTypeBundleInfo;
/**
* The language manager.
*
* @var \Drupal\Core\Language\LanguageManagerInterface|null
*/
protected $languageManager;
/**
* The cache.
*
* @var \Drupal\Core\Cache\CacheBackendInterface|null
*/
protected $cache;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
/** @var static $processor */
$processor = parent::create($container, $configuration, $plugin_id, $plugin_definition);
$processor->setEntityTypeManager($container->get('entity_type.manager'));
$processor->setEntityFieldManager($container->get('entity_field.manager'));
$processor->setEntityTypeBundleInfo($container->get('entity_type.bundle.info'));
$processor->setLanguageManager($container->get('language_manager'));
$processor->setCache($container->get('cache.default'));
return $processor;
}
/**
* Retrieves the entity type manager.
*
* @return \Drupal\Core\Entity\EntityTypeManagerInterface
* The entity type manager.
*/
public function getEntityTypeManager() {
return $this->entityTypeManager ?: \Drupal::entityTypeManager();
}
/**
* Sets the entity type manager.
*
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The new entity type manager.
*
* @return $this
*/
public function setEntityTypeManager(EntityTypeManagerInterface $entity_type_manager) {
$this->entityTypeManager = $entity_type_manager;
return $this;
}
/**
* Retrieves the entity field manager.
*
* @return \Drupal\Core\Entity\EntityFieldManager
* The entity field manager.
*/
public function getEntityFieldManager() {
return $this->entityFieldManager ?: \Drupal::service('entity_field.manager');
}
/**
* Sets the entity field manager.
*
* @param \Drupal\Core\Entity\EntityFieldManager $entity_field_manager
* The new entity field manager.
*
* @return $this
*/
public function setEntityFieldManager(EntityFieldManager $entity_field_manager) {
$this->entityFieldManager = $entity_field_manager;
return $this;
}
/**
* Retrieves the entity type bundle info.
*
* @return \Drupal\Core\Entity\EntityTypeBundleInfoInterface
* The entity type bundle info.
*/
public function getEntityTypeBundleInfo() {
return $this->entityTypeBundleInfo ?: \Drupal::service('entity_type.bundle.info');
}
/**
* Sets the entity type bundle info.
*
* @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $entity_type_bundle_info
* The new entity type bundle info.
*
* @return $this
*/
public function setEntityTypeBundleInfo(EntityTypeBundleInfoInterface $entity_type_bundle_info) {
$this->entityTypeBundleInfo = $entity_type_bundle_info;
return $this;
}
/**
* Retrieves the language manager.
*
* @return \Drupal\Core\Language\LanguageManagerInterface
* The language manager.
*/
public function getLanguageManager() {
return $this->languageManager ?: \Drupal::service('language_manager');
}
/**
* Sets the language manager.
*
* @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
* The new language manager.
*
* @return $this
*/
public function setLanguageManager(LanguageManagerInterface $language_manager) {
$this->languageManager = $language_manager;
return $this;
}
/**
* Retrieves the cache.
*
* @return \Drupal\Core\Cache\CacheBackendInterface
* The cache.
*/
public function getCache() {
return $this->cache ?: \Drupal::service('cache.default');
}
/**
* Sets the cache.
*
* @param \Drupal\Core\Cache\CacheBackendInterface $cache
* The new cache.
*
* @return $this
*/
public function setCache(CacheBackendInterface $cache) {
$this->cache = $cache;
return $this;
}
/**
* {@inheritdoc}
*/
public static function supportsIndex(IndexInterface $index) {
foreach ($index->getDatasources() as $datasource) {
if ($datasource->getEntityTypeId()) {
return TRUE;
}
}
return FALSE;
}
/**
* {@inheritdoc}
*/
public function getPropertyDefinitions(DatasourceInterface $datasource = NULL) {
// ksm($datasource);
$properties = [];
if (!$datasource || !$datasource->getEntityTypeId()) {
return $properties;
}
$references = $this->getEntityReferences();
// ksm($references);
// $entity_type_id = $datasource->getEntityTypeId();
// dsm($entity_type_id);
if (isset($references['taxonomy_term'])) {
foreach ($references['taxonomy_term'] as $key => $reference) {
$entity_type_id = $reference['entity_type'];
try {
$entity_type = $this->getEntityTypeManager()
->getDefinition($entity_type_id);
}
catch (PluginNotFoundException $e) {
continue;
}
// ksm($entity_type);
for ($delta=0; $delta < 5; $delta++) {
$args = [
'@delta' => $delta,
'@entity_type' => $entity_type->getLabel(),
'@property' => $reference['label'],
];
$definition = [
'label' => $this->t('@property [@delta] on @entity_type', $args),
// 'description' => $this->t("All %entity_type entities that reference this item via the %property field."),
'description' => $this->t("Term Delta [@delta] from field @property on @entity_type.", $args),
'type' => "entity:taxonomy_term",
'processor_id' => $this->getPluginId(),
// We can't really know whether this will end up being multi-valued, so
// we err on the side of caution.
'is_list' => TRUE,
];
$property = new EntityProcessorProperty($definition);
$property->setEntityTypeId('taxonomy_term');
$properties["materio_sapi_term_delta__{$entity_type_id}__{$reference['label']}__{$delta}"] = $property;
// code...
}
}
}
return $properties;
}
/**
* {@inheritdoc}
*/
public function addFieldValues(ItemInterface $item) {
// get the original indexed entity
try {
$entity = $item->getOriginalObject()->getValue();
}
catch (SearchApiException $e) {
return;
}
if (!($entity instanceof EntityInterface)) {
return;
}
// get the original
$entity_type_id = $entity->getEntityTypeId();
$entity_id = $entity->id();
$langcode = $entity->language()->getId();
$datasource_id = $item->getDatasourceId();
/** @var \Drupal\search_api\Item\FieldInterface[][][] $to_extract */
$to_extract = [];
$prefix = 'materio_sapi_term_delta__';
$prefix_length = strlen($prefix);
foreach ($item->getFields() as $field) {
$property_path = $field->getPropertyPath();
list($direct, $nested) = Utility::splitPropertyPath($property_path, FALSE);
if ($field->getDatasourceId() === $datasource_id
&& substr($direct, 0, $prefix_length) === $prefix) {
$property_name = substr($direct, $prefix_length);
$to_extract[$property_name][$nested][] = $field;
}
}
// ksm($to_extract);
$references = $this->getEntityReferences();
foreach ($to_extract as $property_name => $fields_to_extract) {
if (!isset($references[$entity_type_id][$property_name])) {
continue;
}
$property_info = $references[$entity_type_id][$property_name];
try {
$storage = $this->getEntityTypeManager()
->getStorage($property_info['entity_type']);
}
// @todo Replace with multi-catch once we depend on PHP 7.1+.
catch (InvalidPluginDefinitionException $e) {
continue;
}
catch (PluginNotFoundException $e) {
continue;
}
$entity_ids = $storage->getQuery()
->accessCheck(FALSE)
->condition($property_info['property'], $entity_id)
->execute();
$entities = $storage->loadMultiple($entity_ids);
if (!$entities) {
continue;
}
// This is a pretty hack-y work-around to make property extraction work for
// Views fields, too. In general, adding entities as field values is a
// pretty bad idea, so this might blow up in some use cases. Just do it for
// now and hope for the best.
if (isset($fields_to_extract[''])) {
foreach ($fields_to_extract[''] as $field) {
$field->setValues(array_values($entities));
}
unset($fields_to_extract['']);
}
foreach ($entities as $referencing_entity) {
$typed_data = $referencing_entity->getTypedData();
$this->getFieldsHelper()
->extractFields($typed_data, $fields_to_extract, $langcode);
}
}
}
/**
* Collects all entity references.
*
* @return array[][]
* An associative array of entity reference information keyed by the
* referenced entity type's ID and a custom identifier for the property
* (consisting of referencing entity type and property name), with values
* being associative arrays with the following keys:
* - label: The property label.
* - entity_type: The referencing entity type.
* - property: The property name.
*/
public function getEntityReferences() {
if ($this->references !== NULL) {
return $this->references;
}
// Property labels differ by language, so we need to vary the cache
// according to the current language.
$langcode = $this->getLanguageManager()->getCurrentLanguage()->getId();
$cid = "search_api:term_delta:$langcode";
$cache = $this->getCache()->get($cid);
if (isset($cache->data)) {
$this->references = $cache->data;
}
else {
$this->references = [];
$entity_types = $this->getEntityTypeManager()->getDefinitions();
$field_manager = $this->getEntityFieldManager();
$entity_type_bundle_info = $this->getEntityTypeBundleInfo();
foreach ($entity_types as $entity_type_id => $entity_type) {
if (!($entity_type instanceof ContentEntityTypeInterface)) {
continue;
}
/** @var \Drupal\Core\Field\FieldDefinitionInterface[] $properties */
$properties = $field_manager->getBaseFieldDefinitions($entity_type_id);
$bundles = $entity_type_bundle_info->getBundleInfo($entity_type_id);
foreach ($bundles as $bundle => $info) {
$properties += $field_manager->getFieldDefinitions($entity_type_id, $bundle);
}
foreach ($properties as $name => $property) {
if ($property->getType() !== 'entity_reference') {
continue;
}
$settings = $property->getSettings();
if (empty($settings['target_type'])) {
continue;
}
$this->references[$settings['target_type']]["{$entity_type_id}__$name"] = [
'label' => $property->getLabel(),
'entity_type' => $entity_type_id,
'property' => $name,
];
}
}
$tags = [
'entity_types',
'entity_bundles',
'entity_field_info',
];
$this->getCache()->set($cid, $this->references, Cache::PERMANENT, $tags);
}
return $this->references;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -28,9 +28,7 @@ import 'theme/assets/styles/main.scss'
var MaterioTheme = function(){
var _v_sitebranding_block, _v_user_block, _v_header_menu
, _v_pagetitle_block, _v_search_block
, _v_main_content;
var _v_sitebranding_block, _v_pagetitle_block, _v_user_block, _v_main_content, _v_search_block;
var _is_front = drupalSettings.path.isFront;
console.log('drupalSettings', drupalSettings);
@ -45,67 +43,13 @@ import 'theme/assets/styles/main.scss'
}
function initVues(){
initVRouter();
initVSiteBrandingBlock()
initVPagetitleBlock()
initVUserBlock()
initVHeaderMenu()
initVMainContent()
initVSearchBlock()
}
function initVRouter(){
// we need this to update the title and body classes while using history nav
router.beforeEach((to, from, next) => {
// console.log('router beforeEach to ', to);
// commit new title to store
let title = null;
switch (to.name) {
case 'home':
title = null
break;
case 'article':
title = false
break;
default:
title = to.name
}
if (title !== false) {
store.commit('Common/setPagetitle', title)
}
// remove all path related body classes
let body_classes = document.querySelector('body').classList;
let classes_to_rm = [];
for (var i = 0; i < body_classes.length; i++) {
if(body_classes[i].startsWith('path-')){
classes_to_rm.push(body_classes[i]);
}
}
document.querySelector('body').classList.remove(...classes_to_rm);
// add new path classes to body
let classes = [];
if(to.path == '/'){
classes.push('path-home');
}else{
let path_parts = to.path.replace(/^\//, '').split('/');
for (var i = 0; i < path_parts.length; i++) {
if(i == 0){
var c = "path-" + path_parts[i];
}else if (path_parts[i] !== ''){
var c = classes[i-1] +'-'+ path_parts[i];
}
classes.push(c)
}
}
document.querySelector('body').classList.add(...classes);
// trigger router
next();
})
}
function initVSiteBrandingBlock(){
_v_sitebranding_block = new Vue({
store,
@ -117,8 +61,7 @@ import 'theme/assets/styles/main.scss'
let href = event.target.getAttribute('href');
// console.log("Clicked on logo href", href);
this.$router.push(href)
// replaced by router.beforeEach
// this.$store.commit('Common/setPagetitle', null)
this.$store.commit('Common/setPagetitle', null)
}
}
})
@ -184,33 +127,6 @@ import 'theme/assets/styles/main.scss'
// console.log('initVUserBlock', _v_user_block);
}
function initVHeaderMenu(){
// console.log('initVHeaderMenu');
// adding vuejs attributes has it wont work on twig template (see menu--header.html.twig)
// not working : String contains an invalid character
// document.querySelectorAll(`#block-header a`).forEach(link => {
// console.log(link);
// link.setAttribute('@click.prevent', 'onclick')
// });
_v_header_menu = new Vue({
store,
router,
el: `#block-header`,
methods: {
onclick(event){
// console.log("Clicked on header menu link", event);
let href = event.target.getAttribute('href');
// let title = event.target.innerText;
// console.log("Clicked on header menu link : href", href);
this.$router.push(href)
// replaced by router.beforeEach
// this.$store.commit('Common/setPagetitle', title)
}
}
})
}
function initVMainContent(){
let id = "main-content"
let $main_content = document.querySelector('#'+id)
@ -220,6 +136,7 @@ import 'theme/assets/styles/main.scss'
store,
render: h => h(VMainContent, {props:{id:id, html:main_html, isfront:drupalSettings.path.isFront}})
}).$mount('#'+id)
// console.log('initTestVContent', v_test_content);
}
function initVSearchBlock(){

View File

@ -1,5 +1 @@
$transparent-bg: rgba(255,255,255, 0.95);
$color-base:#69cdcf;
$color-showrooms:#50aa3c;
$color-blabla:#9458aa;

View File

@ -8,28 +8,3 @@ a{
}
a, a:focus, a:active { outline: none; }
a:focus{ -moz-outline-style: none; }
ul{
margin:0;
padding:0;
li{
margin:0;
padding:0;
list-style: none;
}
}
h1,h2,h3,h4,h5,h6{
margin:0;
}
p a{
position: relative;
&:after{
content:'';
position: absolute;
top:1em; left:0;
width:100%;
border-bottom: 1px dotted #000;
}
}

View File

@ -33,13 +33,6 @@ aside.messages{
header[role="banner"]{
padding:0.2em 0 0 0;
%header-fs{
font-size: 0.9em;
// line-height: 1;
font-weight: 400;
}
#block-sitebranding{
h1{
margin:0;
@ -49,13 +42,12 @@ header[role="banner"]{
#block-userlogin{
position: relative;
// width:8em;
padding:0 1em;
width:8em;
overflow: visible;
h2{
@extend %header-fs;
line-height: 1.38;
margin: 0;
font-size: 1em;
font-weight: 400;
}
&>section{
background-color: #fff;
@ -125,26 +117,6 @@ header[role="banner"]{
}
}
// menu
#block-header{
margin-right: 1em;
padding-left: 1em;
border-left: 1px solid #000;
ul.menu{
margin:0;
li{
padding:0;
display: inline-block;
&:not(:first-of-type){
margin-left: 0.5em;
}
a{
@extend %header-fs;
}
}
}
}
#block-languageswitcher{
text-align: right;
h2{
@ -199,6 +171,7 @@ header[role="banner"]{
}
// header bottom
#block-pagetitle{
float: left;
@ -208,25 +181,10 @@ header[role="banner"]{
font-size: 1.512em;
text-transform: capitalize;
font-weight: 300;
body:not(.path-home) & {
padding:0.5em 1em;
}
body.path-blabla & {
color: #fff;
background-color: $color-blabla;
}
body.path-showrooms & {
color: #fff;
background-color: $color-showrooms;
}
body.path-base & {
color: #fff;
background-color: $color-base;
}
}
}
#block-materiosapisearchblock{
float:right;
display:inline-block;
@ -280,216 +238,38 @@ aside.messages{
// }
// __ _
// / _|_ _ ___ _ _| |_
// | _| '_/ _ \ ' \ _|
// |_| |_| \___/_||_\__|
// front
article.node--type-frontpage{
%front-col-field__label{
font-size: 3.5em;
line-height: 1;
}
%front-col-descritpion{
font-size: 0.9em;
line-height: 1.3;
}
%part-centered-layout{
padding:1.5em 0;
background-color: #fff;
>div:nth-child(1){
width:80%;
margin: 0 auto;
text-align: center;
.field__label{
@extend %front-col-field__label;
}
.field__item{
@extend %front-col-descritpion;
}
}
}
%part-columned-layout{
display:grid;
grid-template-columns: 300px 1fr;
grid-column-gap: 2em;
padding:2em 1em;
>div:nth-child(1){
color: #fff;
grid-column: 1;
.field__label{
@extend %front-col-field__label;
}
.field__item{
@extend %front-col-descritpion;
}
}
>div:nth-child(2){
grid-column: 2;
}
}
.node__content{
&>section{
&.home-intro{
@extend %part-centered-layout;
.field--name-field-what-is-materio,
.field--name-field-a-database,
.field--name-field-showrooms,
.field--name-field-blabla,
.field--name-field-pricing{
&:not(:nth-child(1)){
margin-top: 1em;
}
&.home-database{
background-color: $color-base;
@extend %part-columned-layout;
.field--name-field-a-database{}
.cards-list-home{
position: relative;
// max-height: (130px*1.4)*3;
max-height: 580px;
overflow-y: hidden;
ul{
width:100%;
margin:0; padding:0;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(50px, 130px));
grid-template-rows: 1fr;
grid-gap: 1em;
justify-content:start;
li{
position: relative;
list-style: none;
margin:0; padding:0;
padding-top: 140%;
.card{
position:absolute;
top:0; bottom:0;
left:0; right:0;
width: auto;
height: auto;
.field--name-field-short-description{
font-size: 0.756em;
line-height: 0.9;
}
}
}
}
}
.field__label{
font-size: 2.2em;
font-weight: bold;
}
&.home-showrooms{
background-color: $color-showrooms;
@extend %part-columned-layout;
.field--name-field-showrooms{
}
// .field--name-computed-materials-reference,
.field--name-computed-showrooms-reference,
.field--name-computed-articles-reference{
// outline: 1px green solid;
margin:0; padding:0;
width: calc(100% + #{$column_goutiere});
.field__item{
display: inline-block;
vertical-align: top;
width:210px;
margin:0 $column_goutiere $column_goutiere 0; padding:0;
p{
margin:0;
}
.field--name-computed-showrooms-reference{
position:relative;
// height:550px;
display: grid;
grid-template-rows: 1fr;
$bp: ($column_width + $column_goutiere )*7;
@media only screen and (max-width: $bp){
grid-template-columns: 1fr;
>.field__item{
grid-column: 1;
}
}
@media only screen and (min-width: $bp + 1px){
grid-template-columns: 1fr 1fr;
grid-gap: 1em;
>.field__item:nth-child(odd){
grid-column: 1;
}
>.field__item:nth-child(even){
grid-column: 2;
}
}
>.field__item{
grid-row: 1;
// position: absolute;
// top:0; left:0;
// width:100%; height:100%;
// overflow: hidden;
.taxonomy-term{
position: relative;
width:100%; height:100%;
div.visuel{
width:100%;
padding-bottom: 10em;
img{
max-width: 100%;
height: auto;
}
}
section.text{
position: absolute;
bottom:0; left:0;
width:100%;
box-sizing:border-box;
padding:1em 0;
background-color:$color-showrooms;
color: #fff;
>*{
// display: inline-block;
font-size: 0.9em;
}
h2,p{
margin:0;
}
}
}
}
}
}
&.home-blabla{
background-color: $color-blabla;
@extend %part-columned-layout;
.cards-list-home{
position: relative;
$bp: ($column_width + $column_goutiere );
overflow-y: hidden;
@media only screen and (max-width: $bp * 6){
max-height: 630px;
}
@media only screen and (min-width: ($bp * 6) + 1px){
max-height: 310px;
}
ul{
width:100%;
margin:0; padding:0;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(80px, 220px));
// grid-template-rows: 1fr;
grid-gap: 1em;
justify-content:start;
li{
position: relative;
list-style: none;
margin:0; padding:0;
padding-top: 140%;
overflow: hidden;
.card{
position:absolute;
top:0; bottom:0;
left:0; right:0;
width: auto;
height: auto;
.field--name-title{
font-size: 0.756em;
line-height: 0.9;
}
}
}
}
}
}
&.home-pricing{
@extend %part-centered-layout;
}
}
}
@ -534,17 +314,10 @@ article.node--type-frontpage{
article.card{
position: relative;
box-shadow: 0 0 5px rgba(0,0,0,0.2);
width:$column_width; height:295px;
// &.card-small{
// width:100px; height:140px;
// }
box-shadow: 0 0 5px rgba(0,0,0,0.2);
// focused
// box-shadow: 0 0 7px rgba(0,0,0,0.9);
// &.article{
// width: $column_width * 2 + $column_goutiere;
//
// }
header{
position: absolute;
bottom:0;
@ -558,7 +331,7 @@ article.card{
h1{
font-size: 1.3em;
font-weight: 700;
line-height: 0.85;
line-height: 0.8;
margin-bottom: 0.2em;
}
h4{
@ -595,125 +368,3 @@ article.card{
}
}
}
// ___ _ _ _
// | _ ) |__ _| |__| |__ _
// | _ \ / _` | '_ \ / _` |
// |___/_\__,_|_.__/_\__,_|
#blabla{
}
#main-content > article.article{
section.taxonomy{
ul{
margin:1em 0 0;
}
li{
display:inline-block;
padding:0 0.5em 0 0;
}
}
section.visuels{
width:calc(100% + #{$column_goutiere});
figure{
display: inline-block;
vertical-align: top;
width:$column_width;
margin:0 $column_goutiere 0 0;
img{
width:100%;
}
}
}
aside.linked-materials{
ul{
width:calc(100% + #{$column_goutiere});
li{
display: inline-block;
vertical-align: top;
width:$column_width;
margin:0 $column_goutiere 0 0;
}
}
h3.field__label{
font-size: 1em;
font-weight: 500;
margin: 2em 0 1em 0;
}
h1.title{
font-size: 1em;
font-weight: 400;
}
h3.ref{
font-size: 0.756em;
font-weight: 600;
}
h2.description{
font-size: 0.756em;
font-weight: 400;
}
}
nav.prevnext{
&.bottom{
margin:2em 0;
}
ul{
padding:0;
margin:0;
display: grid;
grid-template-columns: 1fr 1fr;
}
li{
padding:0;
margin:0;
list-style: none;
a{
font-size: 0.756em;
font-weight: 700;
}
&:nth-child(1){
grid-column: 1;
a:before{
content:'< ';
}
}
&:nth-child(2){
grid-column: 2;
text-align: right;
a:after{
content:' >';
}
}
}
}
}
// ___ _
// / __| |_ _____ __ ___ _ ___ ___ _ __ ___
// \__ \ ' \/ _ \ V V / '_/ _ \/ _ \ ' \(_-<
// |___/_||_\___/\_/\_/|_| \___/\___/_|_|_/__/
#showrooms{
width: calc(100% + #{$column_goutiere});
article.showroom{
width: $column_width * 2 + $column_goutiere;
display: inline-block;
vertical-align: top;
margin: 0 $column_goutiere $column_goutiere 0;
h1{
margin:0;
font-weight: 4;
}
p{ margin:0; }
figure{
margin:0;
img{
max-width: 100%;
}
}
}
}

View File

@ -11,6 +11,7 @@ libraries:
regions:
header: Header
header_left: 'Header left'
header_middle: 'Header middle'
header_right: 'Header right'
header_bottom: 'Header bottom'
content_top: 'Content Top'

View File

@ -4,7 +4,7 @@ global-css:
theme:
assets/fonts/ubuntu/ubuntu.css: {}
assets/styles/mdi/css/materialdesignicons.min.css: {}
assets/dist/main.css: {}
# assets/dist/main.css: {}
global-js:
version: VERSION

View File

@ -138,15 +138,3 @@ function materiotheme_form_user_login_form_alter(&$form, FormStateInterface $for
// // $vars['links'][$lang_code]['link']['#title'] = $lang_code;
// // }
// }
function materiotheme_theme_suggestions_taxonomy_term_alter(&$suggestions, &$vars){
// ksm($suggestions);
// ksm($vars);
$original = $vars['theme_hook_original'];
$bundle = $vars['elements']['#taxonomy_term']->bundle();
$viewmode = $vars['elements']["#view_mode"];
$suggestions[] = $original.'__'.$bundle.'__'.$viewmode;
// dsm($suggestions);
}

View File

@ -1,67 +0,0 @@
{#
/**
* @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',
]
%}
<div class="cards-list-home">
{% if label_hidden %}
<ul{{ attributes }}>
{% for item in items %}
<li{{ item.attributes }}>{{ item.content }}</li>
{% endfor %}
</ul>
{% else %}
<div{{ attributes }}>
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
{% if multiple %}
<ul>
{% endif %}
{% for item in items %}
<li{{ item.attributes }}>{{ item.content }}</li>
{% endfor %}
{% if multiple %}
</ul>
{% endif %}
</div>
{% endif %}
</div>

View File

@ -43,7 +43,7 @@
label_display == 'visually_hidden' ? 'visually-hidden',
]
%}
<div class="cards-list-home">
<div class="cards-list">
{% if label_hidden %}
<ul{{ attributes }}>
{% for item in items %}
@ -64,4 +64,4 @@
{% endif %}
</div>
{% endif %}
</div>
</div>

View File

@ -1,96 +0,0 @@
{#
/**
* @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'.
* - readmore: Flag for more state. Will be true if the teaser content of the
* node cannot hold the main body content.
* - logged_in: Flag for authenticated user status. Will be true when the
* current user is a logged-in member.
* - is_admin: Flag for admin user status. Will be true when the current user
* is an administrator.
*
* @see template_preprocess_node()
*
* @todo Remove the id attribute (or make it a class), because if that gets
* rendered twice on a page this is invalid CSS for example: two lists
* in different view modes.
*
* @ingroup themeable
*/
#}
{%
set classes = [
'node',
'node--type-' ~ node.bundle|clean_class,
node.isPromoted() ? 'node--promoted',
node.isSticky() ? 'node--sticky',
not node.isPublished() ? 'node--unpublished',
view_mode ? view_mode|clean_class,
view_mode ? 'node--view-mode-' ~ view_mode|clean_class,
'card'
]
%}
<article{{ attributes.addClass(classes) }}>
<header>
{{ label }}
{{ content.field_date }}
</header>
<section class="images">
{{ content.field_visuel }}
</section>
</article>

View File

@ -1,98 +0,0 @@
{#
/**
* @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'.
* - readmore: Flag for more state. Will be true if the teaser content of the
* node cannot hold the main body content.
* - logged_in: Flag for authenticated user status. Will be true when the
* current user is a logged-in member.
* - is_admin: Flag for admin user status. Will be true when the current user
* is an administrator.
*
* @see template_preprocess_node()
*
* @todo Remove the id attribute (or make it a class), because if that gets
* rendered twice on a page this is invalid CSS for example: two lists
* in different view modes.
*
* @ingroup themeable
*/
#}
{%
set classes = [
'node',
'node--type-' ~ node.bundle|clean_class,
node.isPromoted() ? 'node--promoted',
node.isSticky() ? 'node--sticky',
not node.isPublished() ? 'node--unpublished',
view_mode ? view_mode|clean_class,
view_mode ? 'node--view-mode-' ~ view_mode|clean_class,
'card'
]
%}
<article{{ attributes.addClass(classes) }}>
<header>
{# <h1>{{ label }}</h1> #}
<h2>{{ content.field_familly }}</h2>
<h4>{{ content.field_short_description }}</h4>
{# <span class="ref">{{ content.field_reference }}</span> #}
</header>
<section class="images">
{{ content.field_materiau_images }}
</section>
</article>

View File

@ -72,22 +72,11 @@
* @ingroup themeable
*/
#}
{%
set classes = [
'node',
'node--type-' ~ node.bundle|clean_class,
node.isPromoted() ? 'node--promoted',
node.isSticky() ? 'node--sticky',
not node.isPublished() ? 'node--unpublished',
view_mode ? view_mode|clean_class,
view_mode ? 'node--view-mode-' ~ view_mode|clean_class,
'card'
]
%}
<article{{ attributes.addClass(classes) }}>
<article{{ attributes.addClass('card') }}>
<header>
{{ content.field_short_description }}
<h1>{{ label }}</h1>
<!-- <h4>{{ content.field_description }}</h4>
<span class="ref">{{ content.field_reference }}</span> -->
</header>
<section class="images">
{{ content.field_materiau_images }}

View File

@ -1,40 +0,0 @@
{#
/**
* @file
* Theme override to display a taxonomy term.
*
* Available variables:
* - url: URL of the current term.
* - name: Name of the current term.
* - content: Items for the content of the term (fields and description).
* Use 'content' to print them all, or print a subset such as
* 'content.description'. Use the following code to exclude the
* printing of a given child element:
* @code
* {{ content|without('description') }}
* @endcode
* - attributes: HTML attributes for the wrapper.
* - page: Flag for the full page state.
* - term: The taxonomy term entity, including:
* - id: The ID of the taxonomy term.
* - bundle: Machine name of the current vocabulary.
* - view_mode: View mode, e.g. 'full', 'teaser', etc.
*
* @see template_preprocess_taxonomy_term()
*/
#}
{%
set classes = [
'taxonomy-term',
'vocabulary-' ~ term.bundle|clean_class,
]
%}
<div{{ attributes.setAttribute('id', 'taxonomy-term-' ~ term.id).addClass(classes) }}>
<div class="visuel">
{{ content.field_visuels }}
</div>
<section class="text">
<h2><a href="{{ url }}">{{ name }}</a></h2>
{{ content|without('field_visuels') }}
</section>
</div>

View File

@ -46,7 +46,12 @@
{{ page.header_left}}
{% endif %}
</div>
<div class="header-block header-right col-8">
<div class="header-block header-middle col-4">
{% if page.header_middle %}
{{ page.header_middle}}
{% endif %}
</div>
<div class="header-block header-right col-4">
{% if page.header_right %}
{{ page.header_right}}
{% endif %}

View File

@ -1,58 +0,0 @@
{#
/**
* @file
* Theme override to display a menu.
*
* Available variables:
* - menu_name: The machine name of the menu.
* - items: A nested list of menu items. Each menu item contains:
* - attributes: HTML attributes for the menu item.
* - below: The menu item child items.
* - title: The menu link title.
* - url: The menu link url, instance of \Drupal\Core\Url
* - localized_options: Menu link localized options.
* - is_expanded: TRUE if the link has visible children within the current
* menu tree.
* - is_collapsed: TRUE if the link has children within the current menu tree
* that are not currently visible.
* - in_active_trail: TRUE if the link is in the active trail.
*/
#}
{% import _self as menus %}
{#
We call a macro which calls itself to render the full tree.
@see https://twig.symfony.com/doc/1.x/tags/macro.html
#}
{{ menus.menu_links(items, attributes, 0) }}
{% macro menu_links(items, attributes, menu_level) %}
{% import _self as menus %}
{% if items %}
{% if menu_level == 0 %}
<ul{{ attributes.addClass('menu') }}>
{% else %}
<ul class="menu">
{% endif %}
{% for item in items %}
{%
set classes = [
'menu-item',
item.is_expanded ? 'menu-item--expanded',
item.is_collapsed ? 'menu-item--collapsed',
item.in_active_trail ? 'menu-item--active-trail',
]
%}
<li{{ item.attributes.addClass(classes) }}>
{# this does not work because of the '@' #}
{# we have to do it via js | not working neither #}
{#{{ link(item.title, item.url, {'@click.prevent':['onclick']}) }}#}
<a href="{{ item.url }}" @click.prevent='onclick'>{{ item.title }}</a>
{% if item.below %}
{{ menus.menu_links(item.below, attributes, menu_level + 1) }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}

View File

@ -1,50 +0,0 @@
<template>
<article class="card article">
<header>
<h1>
<a
:href="item.view_node"
@click.prevent="onclick"
v-html="item.title"
></a>
</h1>
<aside v-html="item.created"></aside>
<h4 class="body" v-html="item.body"></h4>
</header>
<section class="images">
<figure v-html="item.field_visuel"></figure>
</section>
</article>
</template>
<script>
import { JSONAPI } from 'vuejs/api/json-axios'
import router from 'vuejs/route'
let basePath = drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix;
export default {
name: "ArticleCard",
router,
props: ['item'],
data(){
return {
alias: this.item.view_node.replace(/^.?\/blabla\//g, '')
}
},
methods:{
onclick(){
console.log('clicked on article', this.alias);
this.$router.push({
name:`article`,
params: { alias:this.alias },
query: { uuid: this.item.uuid }
// meta: { uuid:this.item.uuid },
})
}
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -2,8 +2,8 @@
<article class="card">
<header>
<h1>{{ item.title }}</h1>
<h4>{{ item.field_short_description }}</h4>
<span class="ref">{{ item.field_reference }}</span>
<h4>{{ item.description }}</h4>
<span class="ref">{{ item.reference }}</span>
</header>
<section class="images" v-switcher>
<figure

View File

@ -1,37 +0,0 @@
<template>
<article class="showroom">
<header>
<h1 v-html="item.name" />
</header>
<section class="images">
<figure v-html="item.field_visuels"></figure>
</section>
<section class="content">
<address v-html="item.field_public_address" />
<div class="phone" v-html="item.field_public_phone" />
<div class="email" v-html="item.field_public_email" />
</section>
</article>
</template>
<script>
import { JSONAPI } from 'vuejs/api/json-axios'
import router from 'vuejs/route'
let basePath = drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix;
export default {
name: "Showroom",
router,
props: ['item'],
// data(){
// return {
// alias: this.item.view_node.replace(/^.?\/showroom\//g, '')
// }
// },
// methods:{}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,288 +0,0 @@
<template>
<div class="loading" v-if="!content || loading">
<span>Loading ...</span>
</div>
<article class="article" v-else>
<nav class="prevnext top">
<ul>
<li>
<a
@click.prevent="onPrev"
href="#"
v-if="prevnext.prev"
v-html="prevnext.prev.title"
/>
</li>
<li>
<a
@click.prevent="onNext"
href="#"
v-if="prevnext.next"
v-html="prevnext.next.title"
/>
</li>
</ul>
</nav>
<section class="taxonomy">
<div class="thesaurus">
<ul>
<li
v-for="term in content.field_thesaurus" v-bind:key="term.id"
>{{ term.name }}</li>
</ul>
</div>
<div class="tags">
<ul>
<li
v-for="term in content.field_tags" v-bind:key="term.id"
>{{ term.name }}</li>
</ul>
</div>
</section>
<section class="body" v-html="content.body"></section>
<section class="visuels">
<figure
v-for="visuel in content.field_visuel" v-bind:key="visuel.id"
>
<img
:src="visuel.src"
:alt="visuel.alt"
:title="visuel.title"
/>
<caption></caption>
</figure>
</section>
<aside class="linked-materials">
<h3 class="field__label">Linked Materials</h3>
<div class="card-list">
<ul class="">
<li v-for="node in content.field_linked_materials" v-bind:key="node.id">
<Card :item="node" />
</li>
</ul>
</div>
</aside>
<nav class="prevnext bottom">
<ul>
<li>
<a
@click.prevent="onPrev"
href="#"
v-if="prevnext.prev"
v-html="prevnext.prev.title"
/>
</li>
<li>
<a
@click.prevent="onNext"
href="#"
v-if="prevnext.next"
v-html="prevnext.next.title"
/>
</li>
</ul>
</nav>
</article>
</template>
<script>
import router from 'vuejs/route'
import store from 'vuejs/store'
import { JSONAPI } from 'vuejs/api/json-axios'
import qs from 'querystring'
import Card from 'vuejs/components/Content/Card'
import { mapState, mapActions } from 'vuex'
export default {
name: "Article",
router,
store,
props: ['item'],
data(){
return {
index:-1,
prevnext:{},
uuid:null,
content:null,
loading:true,
}
},
computed: {
...mapState({
items: state => state.Blabla.items
})
},
created(){
this.getArticle()
},
methods: {
...mapActions({
getItems: 'Blabla/getItems',
getItemIndex: 'Blabla/getItemIndex',
getPrevNextItems: 'Blabla/getPrevNextItems'
}),
getArticle(){
console.log(this.$route);
// get the article uuid
if(this.$route.query.uuid){
// we come from internal link with vuejs
// directly record uuid
this.uuid = this.$route.query.uuid
}else if(drupalDecoupled.entity_type == 'node' && drupalDecoupled.entity_bundle == 'article'){
// we landed in an internal page
// get the uuid from drupalDeclouped, provided by materio_decoupled.module
this.uuid = drupalDecoupled.entity_uuid
}
if(this.uuid){
this.loadArticle()
// get the prev next items
if(!this.items.length){
// if items list not yet loaded preload them
this.getItems().then(() => {
// then get the index
this.getIndex()
})
}else{
// or directly get the index
this.getIndex()
}
}else{
// if for any reason we dont have the uuid
// redirect to home
this.$route.replace('home')
}
},
getIndex(){
console.log("Article getIndex");
this.getItemIndex(this.uuid).then((index) => {
this.index = index
// console.log('article index', index, this);
this.getPrevNextItems(index).then((pn) => {
this.prevnext = pn
})
})
},
loadArticle(){
console.log('loadArticle', this.uuid)
this.loading = true;
let params = {
include:'field_linked_materials.images,field_showroom,field_tags,field_thesaurus,field_visuel,uid'
}
let q = qs.stringify(params)
JSONAPI.get(`node/article/${this.uuid}?${q}`)
.then(({ data }) => {
console.log('loadArticle data', data)
this.parseData(data)
})
.catch(( error ) => {
console.warn('Issue with loadArticle', error)
Promise.reject(error)
})
},
parseData(data){
let attrs = data.data.attributes
let relations = data.data.relationships
console.log('relations', relations);
let inc = data.included
console.log('included', inc);
this.content = {
title:attrs.title,
body: attrs.body.value
}
// parse all relationships
for (let key in relations) {
// skip loop if the property is from prototype
if (!relations.hasOwnProperty(key)) continue;
let relation_obj = relations[key]
console.log('typeof relation_obj.data', typeof relation_obj.data);
// skip relation_obj if data is not array
if(!Array.isArray(relation_obj.data)) continue
// create empty field array
this.content[key] = []
// parse relationship values using included
let field = {}
// loop through all relation items
relation_obj.data.forEach((e) => {
// get the included values for each item using id
let included = inc.find((i) => { return i.id == e.id })
// if we not found an included item skip the item
if(typeof included != 'undefined'){
// fill the item values
switch (key) {
case 'field_visuel':
field = e.meta
field.id = e.id
field.src = included.links.card_medium.href
break;
case 'field_linked_materials':
field = included.attributes
field.id = included.id
// get the linked material included images
field.images = [];
included.relationships.images.data.forEach((img) => {
// console.log('href', img.meta.imageDerivatives.links.card_medium.href);
field.images.push({
title:img.meta.title,
url:img.meta.imageDerivatives.links.card_medium.href
})
})
break;
case 'field_thesaurus':
case 'field_tags':
field = included.attributes
field.id = included.id
break;
// case 'field_showroom':
// field = included.attributes
// break
default:
}
this.content[key].push(field)
}
})
}
// update main page title
this.$store.commit('Common/setPagetitle', this.content.title)
this.loading = false;
console.log('article.content',this.content);
},
onNext(){
// console.log('clicked on next', this.prevnext.next);
let alias = this.prevnext.next.view_node.replace(/^.?\/blabla\//g, '')
this.$router.push({
name:`article`,
params: { alias:alias },
query: { uuid: this.prevnext.next.uuid }
})
},
onPrev(){
// console.log('clicked on prev', this.prevnext.next);
let alias = this.prevnext.prev.view_node.replace(/^.?\/blabla\//g, '')
this.$router.push({
name:`article`,
params: { alias:alias },
query: { uuid: this.prevnext.prev.uuid }
})
}
},
components: {
Card
},
watch: {
'$route' (to, from) {
console.log('route change')
this.getArticle()
}
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,53 +0,0 @@
<template>
<div id="blabla">
<div class="loading" v-if="!items.length">
<span>Loading ...</span>
</div>
<div class="cards-list" v-else>
<ul>
<li v-for="item in items" v-bind:key="item.uuid">
<ArticleCard :item="item"/>
</li>
</ul>
<infinite-loading @infinite="nextPage">
<div slot="no-more">No more articles</div>
</infinite-loading>
</div>
</div>
</template>
<script>
import ArticleCard from 'vuejs/components/Content/ArticleCard'
import { mapState, mapActions } from 'vuex'
export default {
name: "Blabla",
// data() {
// return {
// items:[],
// page:0
// }
// },
computed: {
...mapState({
items: state => state.Blabla.items
})
},
created(){
if(!this.items.length)
this.getItems()
},
methods: {
...mapActions({
getItems: 'Blabla/getItems',
nextPage: 'Blabla/nextPage'
})
},
components: {
ArticleCard
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,48 +0,0 @@
<template>
<div id="showrooms">
<div class="loading" v-if="!items.length">
<span>Loading ...</span>
</div>
<Showroom
v-else
v-for="item in items"
v-bind:key="item.uuid"
:item="item"
/>
</div>
</template>
<script>
import Showroom from 'vuejs/components/Content/Showroom'
import { mapState, mapActions } from 'vuex'
export default {
name: "Showrooms",
// data() {
// return {
// items:[],
// page:0
// }
// },
computed: {
...mapState({
items: state => state.Showrooms.items
})
},
created(){
if(!this.items.length)
this.getItems()
},
methods: {
...mapActions({
getItems: 'Showrooms/getItems'
})
},
components: {
Showroom
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -46,8 +46,8 @@ export default {
<style lang="css" scoped>
#user-tools{
margin-right:0.5em;
/* padding-right:0.5em; */
/* border-right:1px solid #222; */
padding-right:0.5em;
border-right:1px solid #222;
}
h4{
margin:0;

View File

@ -1,11 +1,8 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from 'vuejs/components/Pages/Home'
import Base from 'vuejs/components/Pages/Base'
import Blabla from 'vuejs/components/Pages/Blabla'
import Article from 'vuejs/components/Pages/Article'
import Showrooms from 'vuejs/components/Pages/Showrooms'
import Home from 'vuejs/components/Content/Home'
import Base from 'vuejs/components/Content/Base'
Vue.use(VueRouter)
@ -13,8 +10,8 @@ Vue.use(VueRouter)
// We could use aliases to never reload the page on language changement
// BUT beforeupdate is not triggered when push alias instead of path or name
// const languages = ['en', 'fr'];
// console.log('path aliases', (() => languages.map(l => `/${l}/base`))() );
const languages = ['en', 'fr'];
console.log('path aliases', (() => languages.map(l => `/${l}/base`))() );
let basePath = drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix;
@ -40,34 +37,6 @@ const routes = [
// }
},
// {
// name:'blabla',
// path: `${basePath}blabla`,
// component: Blabla,
// children: [
// {
// path: `${basePath}blabla/:alias`,
// component: Article
// }
// ]
// }
{
name:'blabla',
path: `${basePath}blabla`,
component: Blabla
},
{
name:'article',
path: `${basePath}blabla/:alias`,
component: Article,
// meta: { uuid:null }
},
{
name:'showrooms',
path: `${basePath}showrooms`,
component: Showrooms,
// meta: { uuid:null }
}
// {
// path: '*',
// name: 'notfound',
// components: {

View File

@ -3,8 +3,6 @@ import Vuex from 'vuex'
import Common from './modules/common'
import User from './modules/user'
import Search from './modules/search'
import Blabla from './modules/blabla'
import Showrooms from './modules/showrooms'
// https://github.com/vuejs/vuex/tree/dev/examples/shopping-cart
@ -13,8 +11,6 @@ export default new Vuex.Store({
modules: {
Common,
User,
Search,
Blabla,
Showrooms
Search
}
})

View File

@ -1,84 +0,0 @@
import { JSONAPI } from 'vuejs/api/json-axios'
import { REST } from 'vuejs/api/rest-axios'
import { MA } from 'vuejs/api/ma-axios'
import qs from 'querystring'
export default {
namespaced: true,
// initial state
state : {
contenttype:null,
items: [],
page: 0,
// infinteState will come from vue-infinite-loading plugin
// implemented in vuejs/components/Content/Base.vue
infiniteLoadingState: null
},
// getters
getters : {},
// mutations
mutations : {
setItems (state, items) {
state.items = state.items.concat(items)
},
incrementPage(state){
state.page += 1;
},
setInfiniteState(state, infiniteLoadingstate){
state.infiniteLoadingState = infiniteLoadingstate
}
},
// actions
actions : {
getItems({ dispatch, commit, state }){
// if(!state.contenttype){
// REST.get('/entity/node_type/article?_format=json', {})
// .then(({ data }) => {
// console.log('blabla REST contenttype : data', data);
// })
// .catch(( error ) => {
// console.warn('Issue with blabla contenttype', error)
// Promise.reject(error)
// })
// }
return REST.get(`/blabla_rest?_format=json&page=${state.page}`, {})
.then(({ data }) => {
console.log('blabla REST: data', data)
if(data.length){
commit('setItems',data)
// console.log('items.length', this.items.length);
if(state.infiniteLoadingState)
state.infiniteLoadingState.loaded()
}else{
if(state.infiniteLoadingState)
state.infiniteLoadingState.complete()
}
})
.catch(( error ) => {
console.warn('Issue with blabla getitems', error)
Promise.reject(error)
})
},
nextPage ({ dispatch, commit, state }, $infiniteLoadingstate) {
console.log("blabla nextPage", $infiniteLoadingstate);
commit('incrementPage')
commit('setInfiniteState', $infiniteLoadingstate)
dispatch('getItems')
},
getItemIndex({ dispatch, commit, state}, uuid) {
return state.items.findIndex((e) =>{
return e.uuid == uuid
})
},
getPrevNextItems({ dispatch, commit, state }, index) {
return {
prev:state.items[index-1],
next:state.items[index+1]
}
}
}
}

View File

@ -142,9 +142,9 @@ export default {
let item = {
uuid: uuid,
title: attrs.title,
field_short_description: attrs.field_short_description,
description: attrs.field_short_description,
body: attrs.body,
field_reference: attrs.field_reference,
reference: attrs.field_reference,
}
// get images included values

View File

@ -1,38 +0,0 @@
import { JSONAPI } from 'vuejs/api/json-axios'
import { REST } from 'vuejs/api/rest-axios'
import { MA } from 'vuejs/api/ma-axios'
import qs from 'querystring'
export default {
namespaced: true,
// initial state
state : {
items: [],
},
// getters
getters : {},
// mutations
mutations : {
setItems (state, items) {
state.items = state.items.concat(items)
}
},
// actions
actions : {
getItems({ dispatch, commit, state }){
REST.get(`/showrooms_rest?_format=json`, {})
.then(({ data }) => {
console.log('showrooms REST: data', data)
commit('setItems',data)
})
.catch(( error ) => {
console.warn('Issue with showrooms', error)
Promise.reject(error)
})
}
}
}

View File

@ -1,65 +0,0 @@
<?php
/**
* @file
* Functions to support theming in the Seven theme.
*/
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_preprocess_HOOK() for HTML document templates.
*/
// function matminimal_preprocess_html(&$variables) {
// // If on a node add or edit page, add a node-layout class.
// $path_args = explode('/', \Drupal::request()->getPathInfo());
// if ($suggestions = theme_get_suggestions($path_args, 'page', '-')) {
// foreach ($suggestions as $suggestion) {
// // dsm($suggestion);
// preg_match('/taxonomy-manage-[^-]+-add$/', $suggestion, $matches);
// // ksm($matches);
// if ($suggestion === 'page--taxonomy-term-edit' || isset($matches)) {
// $variables['attributes']['class'][] = 'node-form-layout';
// }
// }
// }
// }
// function matminimal_form_alter(&$form, FormStateInterface $form_state, $form_id){
// // dsm($form_id);
// // create a colomuned term form (not working yet)
// if(in_array($form_id, ['taxonomy_term_company_form', 'taxonomy_term_showroom_form'])){
// // ksm($form);
// $form['#theme'] = ['term_edit_form'];
// $form['#attached']['library'][] = 'seven/node-form';
//
// $form['advanced']['#type'] = 'container';
// $form['meta']['#type'] = 'container';
// $form['meta']['#access'] = TRUE;
// $form['meta']['changed']['#wrapper_attributes']['class'][] = 'container-inline';
// $form['meta']['author']['#wrapper_attributes']['class'][] = 'container-inline';
//
// $form['revision_information']['#type'] = 'container';
// $form['revision_information']['#group'] = 'meta';
// }
// }
/**
* Implements hook_form_BASE_FORM_ID_alter() for \Drupal\node\NodeForm.
*
* Changes vertical tabs to container.
*/
function matminimal_form_node_form_alter(&$form, FormStateInterface $form_state) {
$form['#theme'] = ['node_edit_form'];
$form['#attached']['library'][] = 'seven/node-form';
$form['advanced']['#type'] = 'container';
$form['meta']['#type'] = 'container';
$form['meta']['#access'] = TRUE;
$form['meta']['changed']['#wrapper_attributes']['class'][] = 'container-inline';
$form['meta']['author']['#wrapper_attributes']['class'][] = 'container-inline';
$form['revision_information']['#type'] = 'container';
$form['revision_information']['#group'] = 'meta';
}

View File

@ -1,33 +0,0 @@
{#
/**
* @file
* Theme override for a node edit form.
*
* Two column template for the node add/edit form.
*
* This template will be used when a node edit form specifies 'node_edit_form'
* as its #theme callback. Otherwise, by default, node add/edit forms will be
* themed by form.html.twig.
*
* Available variables:
* - form: The node add/edit form.
*
* @see seven_form_node_form_alter()
*/
#}
<div class="layout-node-form clearfix">
<div class="layout-region layout-region-node-main">
{{ form|without('advanced', 'footer', 'actions', 'group_internal') }}
</div>
<div class="layout-region layout-region-node-secondary">
{{ form.group_internal }}
{{ form.advanced }}
{{ form.actions }}
</div>
<div class="layout-region layout-region-node-footer">
<div class="layout-region-node-footer__content">
{{ form.footer }}
</div>
</div>
</div>