function bootstrap_site_alert_preprocess_views_view_fields in Bootstrap Site Alert 8.2
Implements template_preprocess_views_view_fields().
File
- ./
bootstrap_site_alert.module, line 74 - The bootstrap_site_alert module file.
Code
function bootstrap_site_alert_preprocess_views_view_fields(&$vars) {
/** @var \Drupal\views\ViewExecutable $view */
$view = $vars['view'];
if ($view
->id() === 'bootstrap_site_alert') {
$fields = $vars['fields'];
// Remove twig debug from fields.
if (\Drupal::service('twig')
->isDebug()) {
foreach ($fields as &$field) {
if (isset($field->content) && $field->content instanceof Markup) {
$output = preg_replace('/<!--(.|\\s)*?-->\\s*|\\r|\\n/', '', $field->content);
$field->content = Markup::create($output);
}
}
}
// Remove referenced variable.
unset($field);
// Should we show on admin pages?
$show_admin = $fields['field_bs_alert_no_admin']->content
->__toString() ? !\Drupal::service('router.admin_context')
->isAdminRoute() : TRUE;
// Checks if we should exclude on the current page.
$page_match = TRUE;
$page_match_enabled = $fields['field_bs_alert_exclude']->content
->__toString();
$path_check = mb_strtolower($fields['field_bs_alert_only_paths']->content);
if ($page_match_enabled && !empty($path_check)) {
$paths = mb_strtolower(Html::decodeEntities($fields['field_bs_alert_only_paths']->content
->__toString()));
$paths = str_replace('<br />', '', $paths);
// Adjust for the front page.
$paths = str_replace('<front>', \Drupal::config('system.site')
->get('page.front'), $paths);
// Adjust for aliases, etc.
$path = \Drupal::service('path.current')
->getPath();
if (!\Drupal::service('path.matcher')
->isFrontPage()) {
$path = \Drupal::service('path_alias.manager')
->getAliasByPath($path);
}
$page_match = \Drupal::service('path.matcher')
->matchPath($path, $paths);
}
if ($show_admin && $page_match) {
$severity = $fields['field_bs_alert_severity']->content;
if (empty($severity)) {
return;
}
$level = $severity
->__toString();
// Render via template.
$config = \Drupal::config('bootstrap_site_alert.config');
$version = $config
->get('bootstrap_site_alert_version');
$vars['output'] = [
'#theme' => 'bs_site_alert_' . ($version == '5' ? '5' : '4'),
'#message' => $fields['field_site_alert']->content
->__toString(),
'#level' => $level,
'#close' => $fields['field_bs_alert_dismiss']->content
->__toString(),
];
}
}
}