You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
1 month ago
|
<?php
|
||
|
|
||
|
/**
|
||
|
* @file
|
||
|
* Custom hooks for Islandlives site.
|
||
|
*/
|
||
|
|
||
|
use Drupal\pathauto\PathautoPatternInterface;
|
||
|
use Drupal\views\ViewExecutable;
|
||
|
|
||
|
/**
|
||
|
* Implements hook_pathauto_pattern_alter().
|
||
|
*/
|
||
|
function islandlives_pathauto_pattern_alter(PathautoPatternInterface $pattern, array $context) {
|
||
|
// Only act on the repository_items pattern.
|
||
|
if ($pattern->id() == 'repository_items') {
|
||
|
// If node has no PID...
|
||
|
$node = $context['data']['node'];
|
||
|
$pid = $node->get('field_pid')->value;
|
||
|
if ($pid == NULL) {
|
||
|
// Replace the PID with the NID in the alias.
|
||
|
$new_pattern = preg_replace('/\[node:field_pid\]/', '[node:nid]', $pattern->getPattern());
|
||
|
$pattern->setPattern($new_pattern);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Implements hook_views_pre_render().
|
||
|
*/
|
||
|
function islandlives_views_pre_render(ViewExecutable $view) {
|
||
|
$applicable_views = [
|
||
|
'content',
|
||
|
'media',
|
||
|
'manage_members',
|
||
|
'media_of',
|
||
|
];
|
||
|
if (isset($view) && (in_array($view->storage->id(), $applicable_views))) {
|
||
|
$view->element['#attached']['library'][] = 'islandlives/unpublished';
|
||
|
}
|
||
|
}
|