fixed duplicated events nodes in views
This commit is contained in:
parent
2f49bb4a3c
commit
62981265f7
@ -9,6 +9,7 @@ dependencies:
|
||||
- field.field.node.evenement.field_fichier
|
||||
- field.field.node.evenement.field_image
|
||||
- field.field.node.evenement.field_intro
|
||||
- field.field.node.evenement.field_last_date_only
|
||||
- field.field.node.evenement.field_lien
|
||||
- field.field.node.evenement.field_memo
|
||||
- field.field.node.evenement.field_organisateur
|
||||
@ -42,7 +43,7 @@ third_party_settings:
|
||||
label: Tabs
|
||||
region: content
|
||||
parent_name: ''
|
||||
weight: 20
|
||||
weight: 1
|
||||
format_type: tabs
|
||||
format_settings:
|
||||
classes: ''
|
||||
@ -77,7 +78,7 @@ third_party_settings:
|
||||
label: Details
|
||||
region: content
|
||||
parent_name: ''
|
||||
weight: 20
|
||||
weight: 2
|
||||
format_type: details_sidebar
|
||||
format_settings:
|
||||
classes: ''
|
||||
@ -318,7 +319,7 @@ content:
|
||||
third_party_settings: { }
|
||||
title:
|
||||
type: string_textfield
|
||||
weight: -5
|
||||
weight: 0
|
||||
region: content
|
||||
settings:
|
||||
size: 60
|
||||
@ -326,6 +327,7 @@ content:
|
||||
third_party_settings: { }
|
||||
hidden:
|
||||
created: true
|
||||
field_last_date_only: true
|
||||
langcode: true
|
||||
path: true
|
||||
sticky: true
|
||||
|
@ -10,6 +10,7 @@ dependencies:
|
||||
- field.field.node.evenement.field_fichier
|
||||
- field.field.node.evenement.field_image
|
||||
- field.field.node.evenement.field_intro
|
||||
- field.field.node.evenement.field_last_date_only
|
||||
- field.field.node.evenement.field_lien
|
||||
- field.field.node.evenement.field_memo
|
||||
- field.field.node.evenement.field_organisateur
|
||||
@ -78,6 +79,7 @@ hidden:
|
||||
field_fichier: true
|
||||
field_image: true
|
||||
field_intro: true
|
||||
field_last_date_only: true
|
||||
field_lien: true
|
||||
field_memo: true
|
||||
field_organisateur: true
|
||||
|
@ -9,6 +9,7 @@ dependencies:
|
||||
- field.field.node.evenement.field_fichier
|
||||
- field.field.node.evenement.field_image
|
||||
- field.field.node.evenement.field_intro
|
||||
- field.field.node.evenement.field_last_date_only
|
||||
- field.field.node.evenement.field_lien
|
||||
- field.field.node.evenement.field_memo
|
||||
- field.field.node.evenement.field_organisateur
|
||||
@ -39,7 +40,16 @@ content:
|
||||
label: hidden
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 101
|
||||
weight: 1
|
||||
region: content
|
||||
computed_date_unique:
|
||||
type: datetime_default
|
||||
label: hidden
|
||||
settings:
|
||||
timezone_override: ''
|
||||
format_type: medium
|
||||
third_party_settings: { }
|
||||
weight: -5
|
||||
region: content
|
||||
field_date:
|
||||
type: datetime_default
|
||||
@ -48,7 +58,7 @@ content:
|
||||
timezone_override: ''
|
||||
format_type: medium
|
||||
third_party_settings: { }
|
||||
weight: 109
|
||||
weight: 7
|
||||
region: content
|
||||
field_evenements_lies:
|
||||
type: entity_reference_label
|
||||
@ -56,7 +66,7 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 115
|
||||
weight: 13
|
||||
region: content
|
||||
field_fichier:
|
||||
type: file_default
|
||||
@ -64,7 +74,7 @@ content:
|
||||
settings:
|
||||
use_description_as_link_text: true
|
||||
third_party_settings: { }
|
||||
weight: 110
|
||||
weight: 8
|
||||
region: content
|
||||
field_image:
|
||||
type: image
|
||||
@ -75,14 +85,14 @@ content:
|
||||
image_loading:
|
||||
attribute: lazy
|
||||
third_party_settings: { }
|
||||
weight: 111
|
||||
weight: 9
|
||||
region: content
|
||||
field_intro:
|
||||
type: text_default
|
||||
label: above
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 102
|
||||
weight: 2
|
||||
region: content
|
||||
field_lien:
|
||||
type: link
|
||||
@ -94,21 +104,21 @@ content:
|
||||
rel: ''
|
||||
target: ''
|
||||
third_party_settings: { }
|
||||
weight: 113
|
||||
weight: 11
|
||||
region: content
|
||||
field_memo:
|
||||
type: basic_string
|
||||
label: above
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 118
|
||||
weight: 16
|
||||
region: content
|
||||
field_organisateur:
|
||||
type: text_default
|
||||
label: above
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 108
|
||||
weight: 6
|
||||
region: content
|
||||
field_partenaires:
|
||||
type: entity_reference_revisions_entity_view
|
||||
@ -117,7 +127,7 @@ content:
|
||||
view_mode: default
|
||||
link: ''
|
||||
third_party_settings: { }
|
||||
weight: 112
|
||||
weight: 10
|
||||
region: content
|
||||
field_programme:
|
||||
type: entity_reference_label
|
||||
@ -125,7 +135,7 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 104
|
||||
weight: 4
|
||||
region: content
|
||||
field_projet:
|
||||
type: entity_reference_label
|
||||
@ -133,7 +143,7 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 116
|
||||
weight: 14
|
||||
region: content
|
||||
field_promu_en_page_programme:
|
||||
type: boolean
|
||||
@ -143,7 +153,7 @@ content:
|
||||
format_custom_false: ''
|
||||
format_custom_true: ''
|
||||
third_party_settings: { }
|
||||
weight: 119
|
||||
weight: 17
|
||||
region: content
|
||||
field_ressources_liees:
|
||||
type: entity_reference_label
|
||||
@ -151,7 +161,7 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 114
|
||||
weight: 12
|
||||
region: content
|
||||
field_sous_titre:
|
||||
type: string
|
||||
@ -159,7 +169,7 @@ content:
|
||||
settings:
|
||||
link_to_entity: false
|
||||
third_party_settings: { }
|
||||
weight: 107
|
||||
weight: 5
|
||||
region: content
|
||||
field_theme:
|
||||
type: entity_reference_label
|
||||
@ -167,7 +177,7 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 117
|
||||
weight: 15
|
||||
region: content
|
||||
field_type_evenement:
|
||||
type: entity_reference_label
|
||||
@ -175,13 +185,14 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 103
|
||||
weight: 3
|
||||
region: content
|
||||
links:
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 100
|
||||
weight: 0
|
||||
region: content
|
||||
hidden:
|
||||
field_last_date_only: true
|
||||
langcode: true
|
||||
search_api_excerpt: true
|
||||
|
@ -10,6 +10,7 @@ dependencies:
|
||||
- field.field.node.evenement.field_fichier
|
||||
- field.field.node.evenement.field_image
|
||||
- field.field.node.evenement.field_intro
|
||||
- field.field.node.evenement.field_last_date_only
|
||||
- field.field.node.evenement.field_lien
|
||||
- field.field.node.evenement.field_memo
|
||||
- field.field.node.evenement.field_organisateur
|
||||
@ -69,6 +70,7 @@ hidden:
|
||||
field_evenements_lies: true
|
||||
field_fichier: true
|
||||
field_intro: true
|
||||
field_last_date_only: true
|
||||
field_lien: true
|
||||
field_memo: true
|
||||
field_organisateur: true
|
||||
|
@ -121,6 +121,7 @@ module:
|
||||
phpass: 0
|
||||
popsu_link_block: 0
|
||||
popsu_programme: 0
|
||||
popsu_uniqdate: 0
|
||||
redirect: 0
|
||||
redis: 0
|
||||
responsive_image: 0
|
||||
|
@ -0,0 +1,21 @@
|
||||
uuid: 16f921b2-5e9e-4230-98c2-c8d5cf0fe09a
|
||||
langcode: fr
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.node.field_last_date_only
|
||||
- node.type.evenement
|
||||
module:
|
||||
- datetime
|
||||
id: node.evenement.field_last_date_only
|
||||
field_name: field_last_date_only
|
||||
entity_type: node
|
||||
bundle: evenement
|
||||
label: 'last date only'
|
||||
description: ''
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings: { }
|
||||
field_type: datetime
|
20
config/sync/field.storage.node.field_last_date_only.yml
Normal file
20
config/sync/field.storage.node.field_last_date_only.yml
Normal file
@ -0,0 +1,20 @@
|
||||
uuid: f29abaf8-e11e-4a19-8e1b-1b5487159376
|
||||
langcode: fr
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- datetime
|
||||
- node
|
||||
id: node.field_last_date_only
|
||||
field_name: field_last_date_only
|
||||
entity_type: node
|
||||
type: datetime
|
||||
settings:
|
||||
datetime_type: datetime
|
||||
module: datetime
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
@ -1,5 +1,5 @@
|
||||
uuid: 6524248b-fa9a-428b-9186-2c00c3d8b7b0
|
||||
langcode: en
|
||||
langcode: fr
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
|
@ -1,5 +1,5 @@
|
||||
uuid: b72de79a-02bf-424d-9bf3-03ffbda0f29a
|
||||
langcode: en
|
||||
langcode: fr
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
|
@ -153,6 +153,16 @@ display:
|
||||
force_chronological: false
|
||||
add_classes: false
|
||||
time_wrapper: false
|
||||
localize: false
|
||||
parts:
|
||||
start: start
|
||||
end: end
|
||||
duration: '0'
|
||||
duration:
|
||||
separator: ' | '
|
||||
unit: ''
|
||||
decimals: 2
|
||||
suffix: h
|
||||
group_column: value
|
||||
group_columns: { }
|
||||
group_rows: true
|
||||
@ -442,10 +452,10 @@ display:
|
||||
options: { }
|
||||
empty: { }
|
||||
sorts:
|
||||
field_date_value:
|
||||
id: field_date_value
|
||||
table: node__field_date
|
||||
field: field_date_value
|
||||
field_last_date_only_value:
|
||||
id: field_last_date_only_value
|
||||
table: node__field_last_date_only
|
||||
field: field_last_date_only_value
|
||||
relationship: none
|
||||
group_type: group
|
||||
admin_label: ''
|
||||
@ -453,23 +463,7 @@ display:
|
||||
order: DESC
|
||||
expose:
|
||||
label: ''
|
||||
field_identifier: field_date_value
|
||||
exposed: false
|
||||
granularity: second
|
||||
created:
|
||||
id: created
|
||||
table: node_field_data
|
||||
field: created
|
||||
relationship: none
|
||||
group_type: group
|
||||
admin_label: ''
|
||||
entity_type: node
|
||||
entity_field: created
|
||||
plugin_id: date
|
||||
order: DESC
|
||||
expose:
|
||||
label: ''
|
||||
field_identifier: created
|
||||
field_identifier: ''
|
||||
exposed: false
|
||||
granularity: second
|
||||
arguments:
|
||||
@ -519,13 +513,15 @@ display:
|
||||
options:
|
||||
query_comment: ''
|
||||
disable_sql_rewrite: false
|
||||
distinct: false
|
||||
distinct: true
|
||||
replica: false
|
||||
query_tags: { }
|
||||
relationships: { }
|
||||
group_by: false
|
||||
header: { }
|
||||
footer: { }
|
||||
display_extenders: { }
|
||||
display_extenders:
|
||||
views_ef_fieldset: { }
|
||||
cache_metadata:
|
||||
max-age: -1
|
||||
contexts:
|
||||
|
@ -0,0 +1,6 @@
|
||||
name: Popsu Uniqdate
|
||||
type: module
|
||||
description: misc plugins for popsu's programmes.
|
||||
core_version_requirement: ^8.8 || ^9 || ^10
|
||||
package: Popsu
|
||||
dependencies:
|
73
web/modules/custom/popsu_uniqdate/popsu_uniqdate.module
Normal file
73
web/modules/custom/popsu_uniqdate/popsu_uniqdate.module
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
use Drupal\node\Entity\Node;
|
||||
|
||||
// use Drupal\Core\Entity\EntityTypeInterface;
|
||||
// use Drupal\Core\Field\BaseFieldDefinition;
|
||||
// use Drupal\Core\Field\FieldStorageDefinitionInterface;
|
||||
|
||||
// https://www.drupal.org/project/drupal/issues/2916266#comment-12301574
|
||||
|
||||
function popsu_uniqdate_entity_presave(Drupal\Core\Entity\EntityInterface $entity) {
|
||||
if ($entity->getEntityTypeId() === 'node' && $entity->bundle() === 'evenement') {
|
||||
if ($entity->hasField('field_date') && !$entity->get('field_date')->isEmpty()) {
|
||||
// $first_term = $entity->get('field_tags')->first()->target_id;
|
||||
$dates = $entity->get('field_date')->getValue();
|
||||
asort($dates);
|
||||
$last_date = array_pop($dates);
|
||||
$entity->set('field_last_date_only', $last_date);
|
||||
}
|
||||
else {
|
||||
$entity->set('field_last_date_only', NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Implement hook_entity_bundle_field_info().
|
||||
// *
|
||||
// * @param EntityTypeInterface $entity_type
|
||||
// * @param $bundle
|
||||
// * @param array $base_field_definitions
|
||||
// * @return array
|
||||
// */
|
||||
// function popsu_uniqdate_entity_bundle_field_info(EntityTypeInterface $entity_type, $bundle, array $base_field_definitions) {
|
||||
// if ($entity_type->id() == 'node' && $bundle == 'evenement') {
|
||||
// $fields['computed_date_unique'] = BaseFieldDefinition::create('datetime')
|
||||
// ->setName('computed_date_unique')
|
||||
// ->setLabel(t('Computed Date Unique'))
|
||||
// ->setDescription(t('Computed Date Unique.'))
|
||||
// // // The Entity Type this field belongs to.
|
||||
// ->setTargetEntityTypeId($entity_type->id())
|
||||
// // // The Entity Type bundle this field belongs to.
|
||||
// ->setTargetBundle($bundle)
|
||||
// // ->setSetting('target_type', 'node')
|
||||
// ->setCardinality(1)
|
||||
// ->setComputed(TRUE)
|
||||
// ->setRevisionable(FALSE)
|
||||
// ->setTranslatable(FALSE)
|
||||
// ->setDisplayConfigurable('view', TRUE)
|
||||
// ->setDisplayOptions('view', [
|
||||
// 'label' => 'hidden',
|
||||
// 'weight' => -5,
|
||||
// ])
|
||||
// ->setClass(\Drupal\popsu_uniqdate\Plugin\Field\FieldType\ComputedUniqDate::class);
|
||||
|
||||
// return $fields;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /**
|
||||
// * Implements hook_views_data_alter().
|
||||
// */
|
||||
// function popsu_uniqdate_views_data_alter(array &$data) {
|
||||
// if (isset($data['node'])) {
|
||||
// // Add the Computed Date Unique field to Views.
|
||||
// $data['node']['computed_date_unique'] = [
|
||||
// 'title' => t('Computed Date Unique'),
|
||||
// 'field' => [
|
||||
// 'id' => 'views_computed_date_unique',
|
||||
// ],
|
||||
// ];
|
||||
// }
|
||||
// }
|
Loading…
x
Reference in New Issue
Block a user