107 lines
2.9 KiB
Plaintext
107 lines
2.9 KiB
Plaintext
<?php
|
|
/*
|
|
* @files
|
|
* Theme Template Funtions
|
|
*/
|
|
|
|
use Drupal\Core\Template\Attribute;
|
|
|
|
|
|
/* implements template_preprocess_views_view_unformatted() */
|
|
|
|
function popsu_preprocess_views_view_unformatted(&$variables) {
|
|
|
|
$view = $variables['view'];
|
|
if($view->id() == "programmes"){
|
|
$rows = $variables['rows'];
|
|
foreach ($rows as $id => $row) {
|
|
|
|
$variables['rows'][$id]['attributes'] = new Attribute();
|
|
$c = $variables['rows'][$id]['content']["#row"]->nid;
|
|
$variables['rows'][$id]['attributes']->addClass("popsu-node-".$c);
|
|
//kint($variables['rows'][$id]['content']["#row"]->nid);
|
|
}
|
|
|
|
|
|
}else{
|
|
if ($view->current_display == "block_1") {
|
|
$rows = $variables['rows'];
|
|
foreach ($rows as $id => $row) {
|
|
$variables['rows'][$id]['attributes'] = new Attribute();
|
|
$c = $variables['rows'][$id]['content']["#row"]->nid;
|
|
$variables['rows'][$id]['attributes']->addClass("popsu-node-".$c);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
$rows = $variables['rows'];
|
|
$style = $view->style_plugin;
|
|
$options = $style->options;
|
|
$variables['default_row_class'] = !empty($options['default_row_class']);
|
|
*/
|
|
/*
|
|
foreach ($rows as $id => $row) {
|
|
$variables['rows'][$id] = array();
|
|
$variables['rows'][$id]['content'] = $row;
|
|
$variables['rows'][$id]['attributes'] = new Attribute();
|
|
if ($row_class = $view->style_plugin
|
|
->getRowClass($id)) {
|
|
$variables['rows'][$id]['attributes']
|
|
->addClass($row_class);
|
|
}
|
|
}
|
|
*/
|
|
};
|
|
|
|
|
|
/**
|
|
* Implements hook_preprocess_block().
|
|
*/
|
|
// function popsu_preprocess_block(&$variables) {
|
|
// $t="t";
|
|
// }
|
|
|
|
function popsu_preprocess_views_view_field(&$variables){
|
|
// check if link to entoty option is true
|
|
$settings = $variables['field']->options['settings'];
|
|
if ($settings['link_to_entity']) {
|
|
// get the entity and build the classes
|
|
$entity = $variables['row']->_entity;
|
|
// build new classes
|
|
$new_classes = array(
|
|
$entity->getEntityTypeId(),
|
|
$entity->getEntityTypeId().'-'.$entity->bundle(),
|
|
$entity->getEntityTypeId().'-'.$entity->bundle().'-'.$entity->id()
|
|
);
|
|
|
|
// get the entity link and url
|
|
$link = $entity->toLink();
|
|
$url = $entity->toLink()->getUrl();
|
|
|
|
// set the active_class option to the url
|
|
$url->setOption('set_active_class', true);
|
|
|
|
// add new classes to the url (without overwriting existing once)
|
|
$options = $url->getOptions();
|
|
if($attributes = $options['attributes']){
|
|
if($classes = $attributes['class']){
|
|
$attributes['class'] += $new_classes;
|
|
}else{
|
|
$attributes['class'] = $new_classes;
|
|
}
|
|
}else{
|
|
$attributes = array(
|
|
"class" => $new_classes
|
|
);
|
|
}
|
|
$url->setOption('attributes', $attributes);
|
|
|
|
// update the url of the link
|
|
$link->setUrl($url);
|
|
|
|
// overwrite the output
|
|
$variables['output'] = $link->toRenderable();
|
|
}
|
|
} |