TRUE]; $url = Url::fromRoute('entity.node.canonical', ['node' => $node->id()], $options); $system_path = $url->getInternalPath(); $vars['link_attributes'] = new Attribute(array( 'data-drupal-link-system-path' => $system_path=='' ? '' : $system_path )); } /** * Implements hook_form_alter */ function edlptheme_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) { // dpm($form_id, 'form_id'); // dpm($form, 'form'); $form['name']['#attributes']['placeholder'] = (string) $form['name']['#title']; unset($form['name']['#title']); $form['pass']['#attributes']['placeholder'] = (string) $form['pass']['#title']; unset($form['pass']['#title']); } function edlptheme_preprocess_edlp_productions(&$vars){ foreach($vars['nodes'] as &$node){ switch($node['vm']){ case "image_2_columns": $cols = 4; break; case "image_1_columns": $cols = 2; break; case "text_1_column": $cols = 2; break; }; $node['cols'] = $cols; } // dpm($vars); } function edlptheme_preprocess_node__enregistrement__index(&$vars){ $node = $vars['elements']['#node']; $options = ['absolute' => TRUE]; $url = Url::fromRoute('entity.node.canonical', ['node' => $node->id()], $options); $system_path = $url->getInternalPath(); // get the audio file url $field_son_values = $node->get('field_son')->getValue(); $son_fid = count($field_son_values) ? $field_son_values[0]['target_id'] : ""; $son_file = \Drupal\file\Entity\File::load($son_fid); $son_url = null; if($son_file){ $son_uri = $son_file->getFileUri(); $son_url = file_create_url($son_uri); } $vars['link_attributes'] = new Attribute(array( 'data-drupal-link-system-path' => $system_path=='' ? '' : $system_path, 'audio_url' => $son_url, 'nid' => $node->id(), 'class' => array('audio-link', 'ajax-link') )); // dpm($vars['link_attributes']); } function edlptheme_preprocess_node__enregistrement__player_cartel(&$vars){ // dpm($vars); // if transcript not empty $url = Url::fromRoute('entity.node.canonical', ['node'=>$vars['node']->id()], array( 'attributes' => array( 'class' => ['link-transcript', 'ajax-link'], 'viewmode'=>'transcript' ) )); $vars['link_transcript'] = array( '#title' => t("Lire le text."), '#type' => 'link', '#url' => $url, '#options'=>array( 'attributes' => array( 'data-drupal-link-system-path' => $url->getInternalPath() ) ) ); // TODO: refacorize the link generator as following : // $url = Url::fromRoute('entity.taxonomy_term.canonical', ['taxonomy_term'=>$tid]); // $url->setOptions(array( // 'attributes' => array( // 'class' => ['index-link', 'ajax-link'], // 'viewmode'=>'index', // 'tid'=>$tid, // 'data-drupal-link-system-path' => $url->getInternalPath() // ) // )); // $entree['index_link'] = Link::fromTextAndUrl('index', $url); // if article not empty $url = Url::fromRoute('entity.node.canonical', ['node'=>$vars['node']->id()], array( 'attributes' => array( 'class' => ['link-article', 'ajax-link'], 'viewmode'=>'article' ) )); $vars['link_article'] = array( '#title' => t("Lire l'article."), '#type' => 'link', '#url' => $url, '#options' => array( 'attributes'=>array( 'data-drupal-link-system-path' => $url->getInternalPath() ) ) ); // if article or transcript $vars['col_left'] = true; // if $vars['col_right'] = true; } /** * Prepares variables for image formatter templates. * * Default template: image-formatter.html.twig. * * @param array $variables * An associative array containing: * - item: An ImageItem object. * - item_attributes: An optional associative array of html attributes to be * placed in the img tag. * - image_style: An optional image style. * - url: An optional \Drupal\Core\Url object. */ function edlptheme_preprocess_image_formatter(&$vars){ if(isset($vars['url'])){ $system_path = $vars['url']->getInternalPath(); $vars['link_attributes'] = new Attribute(array( 'data-drupal-link-system-path' => $system_path=='' ? '' : $system_path, 'class' => array('ajax-link') )); // dpm($vars); } }