added exode urbain link

This commit is contained in:
Bachir Soussi Chiadmi 2023-02-10 21:26:45 +01:00
parent 2d69691ea2
commit 87e03fcaf2
4 changed files with 102 additions and 2 deletions

View File

@ -175,6 +175,16 @@ variant_settings:
region: first region: first
weight: -1 weight: -1
uuid: b84fe2f8-7c0b-4976-aa63-d8dc5ae66fc0 uuid: b84fe2f8-7c0b-4976-aa63-d8dc5ae66fc0
532e0e26-eab4-476f-a964-fd68221d5619:
id: prog_exode_urbain_link
label: 'Prog exode urbain link'
label_display: '0'
provider: popsu_link_block
context_mapping: { }
region: first
weight: -6
uuid: 532e0e26-eab4-476f-a964-fd68221d5619
link_title: 'Exode Urbain'
page_title: '' page_title: ''
layout: layout_threecol_25_50_25 layout: layout_threecol_25_50_25
layout_settings: layout_settings:

View File

@ -0,0 +1,89 @@
<?php
namespace Drupal\popsu_link_block\Plugin\Block;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\Core\Link;
// use Drupal\Core\Utility\Token;
/**
* Provides a 'ProgExodeurbainLink' block.
*
* @Block(
* id = "prog_exode_urbain_link",
* admin_label = @Translation("Prog exode urbain link"),
* )
*/
class ProgExodeurbainLink extends BlockBase {
public function blockForm($form, FormStateInterface $form_state) {
$form = parent::blockForm($form, $form_state);
$config = $this->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 = "EXODE URBAIN";
$url = Url::fromRoute('entity.node.canonical');
// todo make the the hardcoded target nid as a parameter somewhere (recorded on the node ?)
$url->setRouteParameter("node", 878);
$url->setOption('attributes', array("class"=>array('prog-exodeurbain-link')));
$build['prog_exodeurbain_link'] = array(
'#title' => $title,
'#type' => 'link',
'#url' => $url
);
}
}
return $build;
}
}

File diff suppressed because one or more lines are too long

View File

@ -439,7 +439,8 @@
left: 0; left: 0;
width: 22%; width: 22%;
padding: 1rem 1.5rem ; padding: 1rem 1.5rem ;
.prog-ressources-link{ .prog-ressources-link,
.prog-exodeurbain-link{
font-family: "duke"; font-family: "duke";
font-size: $font-large; font-size: $font-large;
cursor: pointer; cursor: pointer;