Custom module for Islandlives
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

<?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',
'all_scholars',
];
if (isset($view) && (in_array($view->storage->id(), $applicable_views))) {
$view->element['#attached']['library'][] = 'islandlives/unpublished';
}
}