setStorageClass(NodeStorage::class); } } /** * Implements hook_node_links_alter(). */ function opdavies_blog_node_links_alter(array &$links, NodeInterface $node): void { if (!method_exists($node, 'getExternalLink')) { return; } if ($link = $node->getExternalLink()) { $links['node']['#links']['node-readmore']['url'] = Url::fromUri($link['uri']); $links['node']['#links']['node-readmore']['title'] = t('Read more about @title (on @domain)', [ '@domain' => $link['title'], '@title' => $node->label(), ]); } } /** * Implements hook_preprocess_HOOK(). */ function opdavies_blog_preprocess_block(array &$variables): void { // Add the 'markup' class to blocks. if (in_array($variables['plugin_id'], ['views_block:featured_blog_posts-block_1'])) { $variables['attributes']['class'][] = 'markup'; } } /** * Implements hook_preprocess_HOOK(). */ function opdavies_blog_preprocess_node(array &$variables): void { if (!method_exists($variables['node'], 'getExternalLink')) { return; } if ($link = $variables['node']->getExternalLink()) { $variables['url'] = $link['uri']; } }