From 22650273d2fe51eb909219a239c11d78a3d577a8 Mon Sep 17 00:00:00 2001 From: bach Date: Tue, 27 Jun 2023 16:09:13 +0200 Subject: [PATCH] #2168 palpite --- ...ger.page_variant.node-panels_variant-0.yml | 29 ++++-- ...ger.page_variant.node-panels_variant-1.yml | 2 + ...ger.page_variant.node-panels_variant-2.yml | 3 + ...ger.page_variant.node-panels_variant-4.yml | 4 + ...ger.page_variant.node-panels_variant-5.yml | 1 + .../src/Plugin/Block/ProgPalpiteLink.php | 89 +++++++++++++++++++ 6 files changed, 123 insertions(+), 5 deletions(-) create mode 100644 web/modules/custom/popsu_link_block/src/Plugin/Block/ProgPalpiteLink.php diff --git a/config/sync/page_manager.page_variant.node-panels_variant-0.yml b/config/sync/page_manager.page_variant.node-panels_variant-0.yml index 8dc558d3..4cf199d9 100644 --- a/config/sync/page_manager.page_variant.node-panels_variant-0.yml +++ b/config/sync/page_manager.page_variant.node-panels_variant-0.yml @@ -43,6 +43,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: top weight: -3 uuid: 6319006a-015c-459c-996b-79d404f7455f @@ -54,8 +55,9 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first - weight: -4 + weight: -2 uuid: 2ca2f1a3-98b4-41bf-bb67-e17fdd93f1f2 4fc90a5b-8a2d-4f21-9718-e65b9982d59a: id: 'views_block:programme_toc-block_4' @@ -65,6 +67,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -7 uuid: 4fc90a5b-8a2d-4f21-9718-e65b9982d59a @@ -76,6 +79,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: top weight: -4 uuid: eb6ccc12-1ccc-4996-9797-be755e42b297 @@ -87,6 +91,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: bottom weight: 0 uuid: 9dbcea4e-26fe-4d78-a245-b192012bd799 @@ -135,8 +140,9 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first - weight: -3 + weight: -1 uuid: 9f70ea8b-3a5f-4e48-97b0-2b3d5e5e7d03 232f18ef-a92c-451e-b917-e436b6cbc195: id: 'views_block:programme_toc-block_9' @@ -146,8 +152,9 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first - weight: -5 + weight: -3 uuid: 232f18ef-a92c-451e-b917-e436b6cbc195 b564145a-2058-4710-8204-50569d4f0bf0: id: 'views_block:programme_toc-block_13' @@ -157,8 +164,9 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first - weight: -6 + weight: -4 uuid: b564145a-2058-4710-8204-50569d4f0bf0 b84fe2f8-7c0b-4976-aa63-d8dc5ae66fc0: id: 'views_block:programme_toc-block_16' @@ -168,12 +176,13 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } arguments: nid: type: node_nid value: '[node:nid]' region: first - weight: -1 + weight: 0 uuid: b84fe2f8-7c0b-4976-aa63-d8dc5ae66fc0 532e0e26-eab4-476f-a964-fd68221d5619: id: prog_exode_urbain_link @@ -185,6 +194,16 @@ variant_settings: weight: -6 uuid: 532e0e26-eab4-476f-a964-fd68221d5619 link_title: 'Exode Urbain' + 698f5eef-78b0-44a3-851b-3adcddfcd119: + id: prog_palpite_link + label: 'Le Palmarès Palpite' + label_display: '0' + provider: popsu_link_block + context_mapping: { } + region: first + weight: -5 + uuid: 698f5eef-78b0-44a3-851b-3adcddfcd119 + link_title: 'Le Palmarès Palpite' page_title: '' layout: layout_threecol_25_50_25 layout_settings: diff --git a/config/sync/page_manager.page_variant.node-panels_variant-1.yml b/config/sync/page_manager.page_variant.node-panels_variant-1.yml index 259b8759..16e5d49d 100644 --- a/config/sync/page_manager.page_variant.node-panels_variant-1.yml +++ b/config/sync/page_manager.page_variant.node-panels_variant-1.yml @@ -95,6 +95,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -3 uuid: 8b03ade6-e854-4bb0-8a9b-34722a2854a3 @@ -157,6 +158,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -2 uuid: c4929f5b-0062-4e02-b61e-c2433a85ac26 diff --git a/config/sync/page_manager.page_variant.node-panels_variant-2.yml b/config/sync/page_manager.page_variant.node-panels_variant-2.yml index 3cba58ec..3eb41467 100644 --- a/config/sync/page_manager.page_variant.node-panels_variant-2.yml +++ b/config/sync/page_manager.page_variant.node-panels_variant-2.yml @@ -360,6 +360,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -9 uuid: a62c7914-d906-4dfa-aec5-8b58fe51046d @@ -371,6 +372,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -8 uuid: a6dd71ed-49c0-4166-b952-7f8269fc0536 @@ -382,6 +384,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -7 uuid: 92053447-9110-481c-a48d-45abe5289a1e diff --git a/config/sync/page_manager.page_variant.node-panels_variant-4.yml b/config/sync/page_manager.page_variant.node-panels_variant-4.yml index c05982f9..69f74ba3 100644 --- a/config/sync/page_manager.page_variant.node-panels_variant-4.yml +++ b/config/sync/page_manager.page_variant.node-panels_variant-4.yml @@ -234,6 +234,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -7 uuid: 7fd3954d-4223-48fd-8ed9-f719cdb706f0 @@ -245,6 +246,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -5 uuid: b12c9988-1636-44e6-8de3-9f1d07a0561e @@ -266,6 +268,7 @@ variant_settings: context_mapping: { } views_label: 'Ressources liées' items_per_page: none + exposed: { } arguments: nid: type: node_nid @@ -281,6 +284,7 @@ variant_settings: context_mapping: { } views_label: '' items_per_page: none + exposed: { } region: first weight: -6 uuid: 40dfc621-4e0d-4d06-9567-1fb89f13c22b diff --git a/config/sync/page_manager.page_variant.node-panels_variant-5.yml b/config/sync/page_manager.page_variant.node-panels_variant-5.yml index 017c7e11..f9aeb2e8 100644 --- a/config/sync/page_manager.page_variant.node-panels_variant-5.yml +++ b/config/sync/page_manager.page_variant.node-panels_variant-5.yml @@ -308,6 +308,7 @@ variant_settings: context_mapping: { } views_label: Collection items_per_page: none + exposed: { } arguments: tid: type: taxonomy diff --git a/web/modules/custom/popsu_link_block/src/Plugin/Block/ProgPalpiteLink.php b/web/modules/custom/popsu_link_block/src/Plugin/Block/ProgPalpiteLink.php new file mode 100644 index 00000000..b2665571 --- /dev/null +++ b/web/modules/custom/popsu_link_block/src/Plugin/Block/ProgPalpiteLink.php @@ -0,0 +1,89 @@ +getConfiguration(); + + $form['link_title_wrapper'] = [ + '#type' => 'container' + ]; + + $form['link_title_wrapper']['link_title'] = [ + '#type' => 'textfield', + '#title' => 'Link title', + '#default_value' => isset($config['link_title']) ? $config['link_title'] : "Ressources", + '#element_validate' => array('token_element_validate'), + '#token_types' => array('node'), + ]; + + $form['link_title_wrapper']['token_tree'] = array( + '#theme' => 'token_tree_link', + '#token_types' => array('node'), + '#show_restricted' => TRUE, + '#global_types' => FALSE, + '#weight' => 90, + ); + + return $form; + } + + public function blockSubmit($form, FormStateInterface $form_state) + { + parent::blockSubmit($form, $form_state); + $values = $form_state->getValues(); + $link_title = $values['link_title_wrapper']['link_title']; + $this->configuration['link_title'] = $link_title; + } + + + /** + * {@inheritdoc} + */ + public function build() { + // $config = $this->getConfiguration(); + $build = []; + $node = \Drupal::routeMatch()->getParameter('node'); + if ($node instanceof \Drupal\node\Entity\Node) { + // check if programme + if($node->bundle() == 'programme'){ + // if yes get id + // todo set the hardcoded nid number as a parameter somewhere + $nid = $node->id() == 6 ? $node->id() : false; + } + + if($nid){ + $title = "Le Palmarès Palpite"; + $url = Url::fromRoute('entity.node.canonical'); + // todo make the the hardcoded target nid as a parameter somewhere (recorded on the node ?) + $url->setRouteParameter("node", 912); + $url->setOption('attributes', array("class"=>array('prog-palpite-link'))); + $build['prog_palpite_link'] = array( + '#title' => $title, + '#type' => 'link', + '#url' => $url + ); + } + } + return $build; + } + +}