1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?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_palpite_link",
- * admin_label = @Translation("Prog palpite link"),
- * )
- */
- class ProgPalpiteLink 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 = "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;
- }
- }
|