'mkbh_block_front_byens_rum_right', 'mkbh_block_front_byens_rum_right' => 'mkbh_block_front_byens_rum_left', ]; if (!$cache || !isset($cache->data['layout'])) { $previousLayout = variable_get('mkbh_blocks_mkbh_front_cover_byens_rum_layout', 'mkbh_block_front_byens_rum_right'); $layout = $layoutsTransitions[$previousLayout]; variable_set('mkbh_blocks_mkbh_front_cover_byens_rum_layout', $layout); cache_set('mkbh_blocks_mkbh_front_cover_byens_rum_settings', ['layout' => $layout], 'cache_page', strtotime('now +1 day')); } $cache = cache_get('mkbh_blocks_mkbh_front_cover_byens_rum_settings', 'cache_page'); $blockSettings = $cache->data; $vars['theme_hook_suggestions'] = [$blockSettings['layout']]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); //@TODO $excludeDisplayed = FALSE ?? $stickyNodes = $fetcher->fetchRecentArticles('article', [5, 6], NODE_STICKY, 2); $otherNodes = $fetcher->fetchRecentArticles('article', [5, 6], NODE_NOT_STICKY, 4); $stickyRegions = [ 'top_left' => [ '#theme' => 'mkbh_article_display__view_mode_large', '#main_image_view_mode' => 'homepage_large_image', '#show_color' => TRUE, '#trim_length' => 512, ], 'top_right' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#ignore_write_photo' => TRUE, '#show_color' => TRUE, '#trim_length' => 512, ], ]; $otherRegions = [ 'bottom_left' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#ignore_write_photo' => TRUE, '#show_color' => TRUE, '#trim_length' => 512, ], 'bottom_right' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'horizontal', '#main_image_view_mode' => 'homepage_medium_image', '#ignore_write_photo' => TRUE, '#show_color' => TRUE, '#trim_length' => 512, ], 'small_left' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_color' => TRUE, '#trim_length' => 512, ], 'small_right' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_color' => TRUE, '#trim_length' => 512, ], ]; if ($blockSettings['layout'] == 'mkbh_block_front_byens_rum_right') { // switch orientation for bottom medium blocks $otherRegions['bottom_left']['#orientation'] = 'horizontal'; $otherRegions['bottom_right']['#orientation'] = 'vertical'; } $items = []; foreach ($stickyRegions as $region => $build) { if (is_array($stickyNodes) && !empty($stickyNodes)) { $build['#node'] = array_shift($stickyNodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); $items[$region] = $build; } } foreach ($otherRegions as $region => $build) { if (is_array($otherNodes) && !empty($otherNodes)) { $build['#node'] = array_shift($otherNodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); $items[$region] = $build; } } $vars['items'] = $items; } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_byens_rum_small(&$vars) { $vars['content'] = []; $regions = [ 'column_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#ignore_write_photo' => TRUE, '#show_color' => TRUE, '#trim_length' => 1024, ], 'column_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#ignore_write_photo' => TRUE, '#show_color' => TRUE, '#trim_length' => 1024, ], 'column_3' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#ignore_write_photo' => TRUE, '#show_color' => TRUE, '#trim_length' => 1024, ], 'column_4_1' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#show_color' => TRUE, ], 'column_4_2' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#show_color' => TRUE, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); //@TODO $excludeDisplayed = FALSE ?????? $nodes = $fetcher->fetchRecentArticlesOrPhotos([5, 6], 5); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_land_laeser(&$vars) { $regions = [ 'large' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'horizontal', '#main_image_view_mode' => 'homepage_land_laeser', '#show_shares_count' => FALSE, '#show_color' => TRUE, '#trim_length' => 1024, ], 'medium' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#show_color' => TRUE, '#trim_length' => 1024, ], ]; $fetcher = new \Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = $fetcher->fetchRecentArticlesLangLaeser('article', [], 2); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_bliv_static(&$vars) { $fields = [ 'mkbh_bliv_static_column_1', 'mkbh_bliv_static_column_2', 'mkbh_bliv_static_column_3', 'mkbh_bliv_static_column_4', ]; $default_settings = variable_get('mkbh_bliv_static_settings', []); $default_settings = [ 'mkbh_bliv_static_column_1' => ['value' => '
Bliv medlem
'], 'mkbh_bliv_static_column_2' => ['value' => 'Magasinet KBH er drevet af drømme om et bedre København
Bliv medlem eller støt os med et engangsbeløb
'], 'mkbh_bliv_static_column_3' => ['value' => 'LÆS MERE OM MEDLEMSSKAB
'], 'mkbh_bliv_static_column_4' => ['value' => '73920
'], ]; $items = []; foreach ($fields as $index => $field) { $items[$field] = [ '#markup' => empty($default_settings[$field]['value']) ? '' : $default_settings[$field]['value'], '#attributes' => [ 'class' => ['flex-column', 'column', 'column-' . $index], ], ]; } $vars['items'] = $items; } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_du_skriver(&$vars) { $regions = [ 'column_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_3' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_3_1' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, ], 'column_3_2' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, ], ]; $fetcher = new \Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = $fetcher->fetchRecentYouWrite('any', 5, 0, TRUE); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_popular(&$vars) { $fields = [ 'mkbh_popular_column_1' => 'column_1', 'mkbh_popular_column_2' => 'column_2', ]; $settings = variable_get('mkbh_block_front_popular_settings', []); foreach ($fields as $setting => $variable) { $vars['content'][$variable] = []; if (!empty($settings[$setting])) { list($view, $display) = explode('#', $settings[$setting]); $vars['content'][$variable] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['content']['column_3'] = $settings['mkbh_popular_column_3']; } /** * Implements hook_process_hook(). * * @param $vars */ function mkbh_blocks_process_mkbh_block_opinion_popular(&$vars) { $fields = [ 'mkbh_popular_column_1' => 'column_1', 'mkbh_popular_column_2' => 'column_2', ]; $settings = variable_get('mkbh_block_opinion_popular_settings', []); foreach ($fields as $setting => $variable) { $vars['content'][$variable] = []; if (!empty($settings[$setting])) { list($view, $display) = explode('#', $settings[$setting]); $vars['content'][$variable] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['content']['column_3'] = !empty($settings['mkbh_popular_column_3']['value']) ? $settings['mkbh_popular_column_3']['value'] : ''; } /** * Implements hook_process_hook(). * * @param $vars */ function mkbh_blocks_process_mkbh_block_byens_liv_popular(&$vars) { $fields = [ 'mkbh_popular_column_1' => 'column_1', 'mkbh_popular_column_2' => 'column_2', ]; $settings = variable_get('mkbh_block_byens_liv_popular_settings', []); foreach ($fields as $setting => $variable) { $vars['content'][$variable] = []; if (!empty($settings[$setting])) { list($view, $display) = explode('#', $settings[$setting]); $vars['content'][$variable] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['content']['column_3'] = !empty($settings['mkbh_popular_column_3']['value']) ? $settings['mkbh_popular_column_3']['value'] : ''; } /** * Implements hook_process_hook(). * * @param $vars */ function mkbh_blocks_process_mkbh_block_byens_rum_popular(&$vars) { $fields = [ 'mkbh_popular_column_1' => 'column_1', 'mkbh_popular_column_2' => 'column_2', ]; $settings = variable_get('mkbh_block_byens_rum_popular_settings', []); foreach ($fields as $setting => $variable) { $vars['content'][$variable] = []; if (!empty($settings[$setting])) { list($view, $display) = explode('#', $settings[$setting]); $vars['content'][$variable] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['content']['column_3'] = !empty($settings['mkbh_popular_column_3']['value']) ? $settings['mkbh_popular_column_3']['value'] : ''; } /** * Implements hook_process_hook(). * * @param $vars */ function mkbh_blocks_process_mkbh_block_projekter_popular(&$vars) { $fields = [ 'mkbh_popular_column_1' => 'column_1', 'mkbh_popular_column_2' => 'column_2', ]; $settings = variable_get('mkbh_block_projekter_popular_settings', []); foreach ($fields as $setting => $variable) { $vars['content'][$variable] = []; if (!empty($settings[$setting])) { list($view, $display) = explode('#', $settings[$setting]); $vars['content'][$variable] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['content']['column_3'] = !empty($settings['mkbh_popular_column_3']['value']) ? $settings['mkbh_popular_column_3']['value'] : ''; } function mkbh_blocks_process_mkbh_block_byens_rum_seneste(&$vars) { $regionsTransitions = [ 'bottom_medium_top_right' => 'bottom_small_top_left_1', 'bottom_small_top_left_1' => 'bottom_small_bottom_left_1', 'bottom_small_bottom_left_1' => 'bottom_medium_top_right', 'bottom_medium_bottom_right' => 'bottom_small_top_left_2', 'bottom_small_top_left_2' => 'bottom_small_bottom_left_2', 'bottom_small_bottom_left_2' => 'bottom_medium_bottom_right', ]; $regionsToRandomize = [ 'row_1' => [ 'bottom_small_top_left_1', 'bottom_small_bottom_left_1', 'bottom_medium_top_right', ], 'row_2' => [ 'bottom_small_top_left_2', 'bottom_small_bottom_left_2', 'bottom_medium_bottom_right', ], ]; $allRegionsToRandomize = []; foreach ($regionsToRandomize as $rowToRandomize) { $allRegionsToRandomize = array_merge($allRegionsToRandomize, $rowToRandomize); } $wideRegions = []; foreach ($vars['items'] as $region => $build) { foreach ($regionsToRandomize as $rowDelta => $rowToRandomize) { if (in_array($region, $rowToRandomize)) { $cacheBin = 'mkbh_block_byens_rum_seneste_row_' . $rowDelta . '_settings'; $cache = cache_get($cacheBin, 'cache_page'); if (!$cache || !isset($cache->data['wide_region'])) { $variableBin = 'mkbh_block_byens_rum_seneste_row_' . $rowDelta . '_wide_region'; $previousWideRegion = variable_get($variableBin, $rowToRandomize[array_rand($rowToRandomize)]); $wideRegion = $regionsTransitions[$previousWideRegion]; variable_set($variableBin, $wideRegion); cache_set($cacheBin, ['wide_region' => $wideRegion], 'cache_page', strtotime('now +1 day')); } $cache = cache_get($cacheBin, 'cache_page'); $vars['randomized_rows'][$rowDelta] = [ 'wide_region' => $cache->data['wide_region'], 'regions' => array_intersect_key($vars['items'], array_flip($rowToRandomize)), ]; $wideRegions[] = $cache->data['wide_region']; } } } _mkbh_blocks_switch_region_view_mode($vars['items'], $wideRegions, $allRegionsToRandomize); foreach ($vars['randomized_rows'] as &$randomizedRow) { _mkbh_blocks_switch_region_view_mode($randomizedRow['regions'], $wideRegions, $allRegionsToRandomize); } } function mkbh_blocks_process_mkbh_block_byens_liv_seneste(&$vars) { $regionsTransitions = [ 'bottom_randomized_row_1_region_3' => 'bottom_randomized_row_1_region_1', 'bottom_randomized_row_1_region_1' => 'bottom_randomized_row_1_region_2', 'bottom_randomized_row_1_region_2' => 'bottom_randomized_row_1_region_3', 'bottom_randomized_row_2_region_3' => 'bottom_randomized_row_2_region_1', 'bottom_randomized_row_2_region_1' => 'bottom_randomized_row_2_region_2', 'bottom_randomized_row_2_region_2' => 'bottom_randomized_row_2_region_3', ]; $regionsToRandomize = [ 'row_1' => [ 'bottom_randomized_row_1_region_1', 'bottom_randomized_row_1_region_2', 'bottom_randomized_row_1_region_3', ], 'row_2' => [ 'bottom_randomized_row_2_region_1', 'bottom_randomized_row_2_region_2', 'bottom_randomized_row_2_region_3', ], ]; $allRegionsToRandomize = []; foreach ($regionsToRandomize as $rowToRandomize) { $allRegionsToRandomize = array_merge($allRegionsToRandomize, $rowToRandomize); } $wideRegions = []; foreach ($vars['items'] as $region => $build) { foreach ($regionsToRandomize as $rowDelta => $rowToRandomize) { if (in_array($region, $rowToRandomize)) { $cacheBin = 'mkbh_block_byens_liv_seneste_row_' . $rowDelta . '_settings'; $cache = cache_get($cacheBin, 'cache_page'); if (!$cache || !isset($cache->data['wide_region'])) { $variableBin = 'mkbh_block_byens_liv_seneste_row_' . $rowDelta . '_wide_region'; $previousWideRegion = variable_get($variableBin, $rowToRandomize[array_rand($rowToRandomize)]); $wideRegion = $regionsTransitions[$previousWideRegion]; variable_set($variableBin, $wideRegion); cache_set($cacheBin, ['wide_region' => $wideRegion], 'cache_page', strtotime('now +1 day')); } $cache = cache_get($cacheBin, 'cache_page'); $vars['randomized_rows'][$rowDelta] = [ 'wide_region' => $cache->data['wide_region'], 'regions' => array_intersect_key($vars['items'], array_flip($rowToRandomize)), ]; $wideRegions[] = $cache->data['wide_region']; } } } _mkbh_blocks_switch_region_view_mode($vars['items'], $wideRegions, $allRegionsToRandomize); foreach ($vars['randomized_rows'] as &$randomizedRow) { _mkbh_blocks_switch_region_view_mode($randomizedRow['regions'], $wideRegions, $allRegionsToRandomize); } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_film(&$vars) { $fields = ['mkbh_block_front_film_column_content']; $settings = variable_get('mkbh_block_front_film_settings', []); foreach ($fields as $settingName) { $vars['columns'][$settingName] = ''; if (!empty($settings[$settingName])) { list($view, $display) = explode('#', $settings[$settingName]); $vars['columns'][$settingName] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['columns']['mkbh_block_front_film_column_ad'] = $settings['mkbh_block_front_film_column_ad']; } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_scene(&$vars) { $fields = ['mkbh_block_front_scene_column_content']; $settings = variable_get('mkbh_block_front_scene_settings', []); foreach ($fields as $settingName) { $vars['columns'][$settingName] = ''; if (!empty($settings[$settingName])) { list($view, $display) = explode('#', $settings[$settingName]); $vars['columns'][$settingName] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['columns']['mkbh_block_front_scene_column_ad'] = $settings['mkbh_block_front_scene_column_ad']; } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_article_display__view_mode_large(&$vars) { /** @var Drupal\mkbh_blocks\Adapter\NodeArticleAdapter $adapter */ $adapter = $vars['adapter']; if (is_null($adapter)) { $vars['#access'] = FALSE; return FALSE; } if ($vars['show_breadcrumbs'] !== FALSE) { if ($vars['show_breadcrumbs'] == 'city_only') { $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(TRUE); } else { $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(); } } $vars['main_image'] = $adapter->getRenderableMainImage($vars['main_image_view_mode'], TRUE); $vars['writer_name'] = $adapter->getRenderableWriterName(TRUE, TRUE); $vars['shares_count'] = $adapter->getRenderableSharesCount(); $vars['title'] = $adapter->getRenderableFullTitle(TRUE, $vars['link_target']); $vars['body'] = $adapter->getRenderableBody(empty($vars['trim_length']) ? PHP_INT_MAX : $vars['trim_length']); $vars['color'] = $adapter->getColorHashCode(); $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $articleSubType = taxonomy_term_load($adapter->getArticleType()); $vars['node_sub_type'] = FALSE; if ($articleSubType) { $vars['node_sub_type'] = str_replace(['_', ' '], '-', drupal_strtolower($articleSubType->name)); } $vars['lang_laeser'] = null; if (isset($adapter->adapter->field_article_lang_laeser) && $adapter->adapter->field_article_lang_laeser->value() == TRUE) { $vars['lang_laeser'] = 'node-lang-laeser'; } $vars['show_read_more'] = (boolean)$vars['show_read_more']; $vars['show_post_date'] = (boolean)$vars['show_post_date']; } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_article_display__view_mode_medium(&$vars) { /** @var Drupal\mkbh_blocks\Adapter\NodeArticleAdapter $adapter */ $adapter = $vars['adapter']; if (is_null($adapter)) { $vars['#access'] = FALSE; return FALSE; } if ($vars['show_breadcrumbs'] !== FALSE) { if ($vars['show_breadcrumbs'] == 'city_only') { $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(TRUE); } else { $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(); } } $vars['main_image'] = $adapter->getRenderableMainImage($vars['main_image_view_mode'], TRUE); $vars['author_image'] = $adapter->getRenderableWriterImage(); $vars['is_author_image'] = $adapter->getIsAuthorImage(); $vars['writer_name'] = $adapter->getRenderableWriterName(TRUE, TRUE); $vars['shares_count'] = $adapter->getRenderableSharesCount(); $vars['title'] = $adapter->getRenderableFullTitle(TRUE, $vars['link_target']); $vars['body'] = $adapter->getRenderableBody(empty($vars['trim_length']) ? PHP_INT_MAX : $vars['trim_length']); $vars['color'] = $adapter->getColorHashCode(); if ($vars['ignore_write_photo'] == TRUE) { unset($vars['is_author_image']); } $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $articleSubType = taxonomy_term_load($adapter->getArticleType()); $vars['node_sub_type'] = FALSE; if ($articleSubType) { $vars['node_sub_type'] = str_replace(['_', ' '], '-', drupal_strtolower($articleSubType->name)); } $vars['lang_laeser'] = null; if (isset($adapter->adapter->field_article_lang_laeser) && $adapter->adapter->field_article_lang_laeser->value() == TRUE) { $vars['lang_laeser'] = 'node-lang-laeser'; } $vars['show_read_more'] = (boolean)$vars['show_read_more']; $vars['show_post_date'] = (boolean)$vars['show_post_date']; } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_article_display__view_mode_small(&$vars) { /** @var Drupal\mkbh_blocks\Adapter\NodeArticleAdapter $adapter */ $adapter = $vars['adapter']; if (is_null($adapter)) { $vars['#access'] = FALSE; return FALSE; } if ($vars['show_breadcrumbs'] !== FALSE) { if ($vars['show_breadcrumbs'] == 'city_only') { $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(TRUE); } else { $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(); } } $vars['shares_count'] = $adapter->getRenderableSharesCount(); $vars['title'] = $adapter->getRenderableFullTitle(TRUE, $vars['link_target']); $vars['body'] = $adapter->getRenderableBody(empty($vars['trim_length']) ? PHP_INT_MAX : $vars['trim_length']); $vars['color'] = $adapter->getColorHashCode(); $vars['writer_name'] = $adapter->getRenderableWriterName(TRUE, TRUE); $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $articleSubType = taxonomy_term_load($adapter->getArticleType()); $vars['node_sub_type'] = FALSE; if ($articleSubType) { $vars['node_sub_type'] = str_replace(['_', ' '], '-', drupal_strtolower($articleSubType->name)); } $vars['lang_laeser'] = null; if (isset($adapter->adapter->field_article_lang_laeser) && $adapter->adapter->field_article_lang_laeser->value() == TRUE) { $vars['lang_laeser'] = 'node-lang-laeser'; } $vars['show_read_more'] = (boolean)$vars['show_read_more']; $vars['show_post_date'] = (boolean)$vars['show_post_date']; } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_vision_display__view_mode_small(&$vars) { /** @var Drupal\mkbh_blocks\Adapter\NodeArticleAdapter $adapter */ $adapter = $vars['adapter']; if (is_null($adapter)) { $vars['#access'] = FALSE; return FALSE; } $vars['subtype'] = $adapter->getArticleSubType(); $vars['title'] = $adapter->getRenderableFullTitle(TRUE, array_get($vars, 'link_target')); $vars['sub_headline'] = $adapter->getRenderableDistrict(); $node = $adapter->value(); $vars['chart'] = rate_embed($node, 'vision_rate', RATE_DISABLED); $vars['body'] = $adapter->getRenderableBody(array_get($vars, 'trim_length', 75)); $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $vars['show_post_date'] = (boolean)array_get($vars, 'show_post_date', false); } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_vision_display__view_mode_large(&$vars) { /** @var Drupal\mkbh_blocks\Adapter\NodeArticleAdapter $adapter */ $adapter = $vars['adapter']; if (is_null($adapter)) { $vars['#access'] = FALSE; return FALSE; } $vars['main_image'] = $adapter->getRenderableMainImage($vars['main_image_view_mode'], TRUE); $vars['subtype'] = $adapter->getArticleSubType(); $vars['title'] = $adapter->getRenderableFullTitle(TRUE, array_get($vars, 'link_target')); $vars['sub_headline'] = $adapter->getRenderableDistrict(); $node = $adapter->value(); $vars['chart'] = rate_embed($node, 'vision_rate', RATE_DISABLED); if ($vars['show_body'] === FALSE) { $vars['body'] = ''; } else { $vars['body'] = $adapter->getRenderableBody(array_get($vars, 'trim_length', 75)); } $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $vars['show_post_date'] = (boolean)$vars['show_post_date']; } /** * Implements hook_process_hook(). */ function mkbh_blocks_preprocess_mkbh_block_node_tag_buttons(&$vars) { if (!($node = menu_get_object())) { return; } /** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */ $adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node); if ($tags = $adapter->getTags()) { $tag_buttons = array_map(function ($item) { $alias = drupal_get_path_alias('taxonomy/term/' . $item->tid); $return['link'] = l($item->name, $alias, ['attributes' => ['class' => 'btn btn-tag-buttons']]); return $return; }, $tags); $vars['tag_buttons_data'] = $tag_buttons; } } /** * Implements hook_preprocess_HOOK(). */ function mkbh_preprocess_mkbh_block_vocabulary_header(&$vars) { if (!($term = menu_get_object('taxonomy_term', 2))) { return; } if ($term->vocabulary_machine_name == 'tags') { $count = isset($GLOBALS["pager_total_items"]) ? reset($GLOBALS["pager_total_items"]) : 0; $vars = array_merge($vars, [ 'type_text' => t('emne'), 'specific_text' => $term->name, 'result_text' => t('!count artikler', ['!count' => $count]), 'image' => '' ]); } elseif ($term->vocabulary_machine_name == 'city_districts') { $count = isset($GLOBALS["pager_total_items"]) ? reset($GLOBALS["pager_total_items"]) : 0; $vars = array_merge($vars, [ 'type_text' => t('bydel'), 'specific_text' => $term->name, 'result_text' => t('!count artikler', ['!count' => $count]), 'image' => '', ]); } elseif ($term->vocabulary_machine_name == 'writer'){ $count = isset($GLOBALS["pager_total_items"]) ? reset($GLOBALS["pager_total_items"]) : 0; $vars['theme_hook_suggestions'][] = 'mkbh_block_vocabulary_header__voc_writer_page'; $field_values = field_get_items('taxonomy_term',$term, 'field_voc_writer_image'); if($field_values){ $first_image = reset($field_values); if(!empty($first_image['uri']) && ($url= file_create_url($first_image['uri']))){ $vars['writer_image_url'] = $url; } } $vars = array_merge($vars, [ 'type_text' => t('skribent'), 'specific_text' => $term->name, 'result_text' => t('!count artikler', ['!count' => $count]), 'image' => '', 'writer_info' => $term->description, ]); } } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_block_article_header(&$vars) { $node = NULL; if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); } if (is_null($node)) { $vars['#access'] = FALSE; return FALSE; } /** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */ $adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node); $nodeWrapper = entity_metadata_wrapper('node', $node); $vars['node'] = $node; $vars['main_title'] = $adapter->getRenderableMainTitle(); if (isset($adapter->adapter->field_underrubrik)) { $underrubrik = $adapter->get('field_underrubrik')->value(); if (!empty($underrubrik['value'])) { $vars['sub_title'] = $underrubrik['value']; } } if ($node->type == 'review') { unset($vars['sub_title']); $items =& $vars['review_meta_items']; $items['review_director_theatre'] = [ 'attributes' => [ 'class' => ['item-director-theatre'], ], 'data' => ['#markup' => $nodeWrapper->field_review_sub_headline->value()], ]; $premiere = $nodeWrapper->field_premiere->value(); if (!empty($premiere)) { $items['review_premiere'] = [ 'attributes' => [ 'class' => ['item-premiere'], ], 'data' => [ '#markup' => 'premiere ' . format_date($premiere, 'review_premiere'), ], ]; } $items['review_rating'] = [ 'attributes' => [ 'class' => ['item-rating'], ], 'data' => field_view_field('node', $node, 'field_review_rating', 'default'), ]; } $vars['breadcrumbs'] = $adapter->getRenderableBreadcrumbs(); $articleSubType = taxonomy_term_load($adapter->getArticleType()); $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $vars['sub_type'] = FALSE; if ($articleSubType) { $vars['sub_type'] = 'article-sub-type-' . str_replace(['_', ' '], '-', drupal_strtolower($articleSubType->name)); } $vars['lang_lesser_class'] = (isset($adapter->adapter->field_article_lang_laeser) && $adapter->adapter->field_article_lang_laeser->value() == TRUE) ? 'article-lang-lesser' : ''; $vars['debug'] = []; if (user_access('administer nodes')) { $vars['debug'][] = [ '#markup' => format_string('Google Analytics: @count total page views.', [ '@count' => (int)db_query("SELECT gacs.pageview_total FROM {google_analytics_counter_storage} gacs WHERE gacs.nid = :nid", [ ':nid' => $node->nid, ])->fetchField(), ]), ]; } } /** * Implements hook_process_hook * * @param $vars * * @return bool */ function mkbh_blocks_process_mkbh_block_article_main_photo(&$vars) { $node = NULL; if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); } if (is_null($node)) { $vars['#access'] = FALSE; return FALSE; } /** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterProxy $adapter */ $adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node); $vars['node'] = $node; $media = [ 'caption' => [], 'photographer' => [], 'media' => [], ]; $field_collection = $adapter->getRenderableMainImage('ap_main_image', FALSE, TRUE); if (!empty($field_collection)) { switch ($field_collection->field_name) { case 'field_article_main_image': $field_collection_wrapper = entity_metadata_wrapper('field_collection_item', $field_collection); $mainImageLayout = $field_collection_wrapper->field_article_mi_layout->value(); $mainImageFW = $mainImageLayout === 'full-width'; $media['caption'] = field_view_field('field_collection_item', $field_collection, 'field_article_mi_caption', 'ap_main_image'); $media['photographer'] = field_view_field('field_collection_item', $field_collection, 'field_article_mi_photographer', 'ap_main_image'); $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_article_mi_image', $mainImageFW ? 'ap_main_image_full_width' : 'ap_main_image'); if ($field_collection_wrapper->field_article_mi_type->value() == 'video') { $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_article_mi_video', 'ap_main_image'); } break; case 'field_write_main_image': $field_collection_wrapper = entity_metadata_wrapper('field_collection_item', $field_collection); $media['caption'] = field_view_field('field_collection_item', $field_collection, 'field_write_mi_caption', 'ap_main_image'); $media['photographer'] = field_view_field('field_collection_item', $field_collection, 'field_write_mi_photographer', 'ap_main_image'); $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_write_mi_image', 'ap_main_image'); if ($field_collection_wrapper->field_write_mi_type->value() == 'video') { $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_write_mi_video', 'ap_main_image'); } break; case 'field_photo_main_image': $media['caption'] = field_view_field('field_collection_item', $field_collection, 'field_photo_mi_caption', 'ap_main_image'); $media['photographer'] = field_view_field('field_collection_item', $field_collection, 'field_photo_mi_photographer', 'ap_main_image'); $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_photo_mi_image', 'ap_main_image'); break; case 'field_review_main_image': $media['caption'] = field_view_field('field_collection_item', $field_collection, 'field_review_mi_caption', 'ap_main_image'); $media['photographer'] = field_view_field('field_collection_item', $field_collection, 'field_review_mi_photographer', 'ap_main_image'); $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_review_mi_image', 'ap_main_image'); break; case 'field_project_main_image': $media['caption'] = field_view_field('field_collection_item', $field_collection, 'field_project_mi_caption', 'ap_main_image'); $media['photographer'] = field_view_field('field_collection_item', $field_collection, 'field_project_mi_photographer', 'ap_main_image'); $media['file'] = field_view_field('field_collection_item', $field_collection, 'field_project_mi_image', 'ap_main_image'); break; } } $vars['media'] = $media; $articleSubType = taxonomy_term_load($adapter->getArticleType()); $vars['node_type'] = str_replace('_', '-', $adapter->value()->type); $vars['sub_type'] = FALSE; if ($articleSubType) { $vars['sub_type'] = 'article-sub-type-' . str_replace(['_', ' '], '-', drupal_strtolower($articleSubType->name)); } $vars['lang_lesser_class'] = (isset($adapter->adapter->field_article_lang_laeser) && $adapter->adapter->field_article_lang_laeser->value() == TRUE) ? 'article-lang-lesser' : ''; } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_article_related(&$vars) { $vars['content'] = []; $regions = [ 'column_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_3' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4_1' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4_2' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4_3' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = []; if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); if (!empty($node)) { $adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node); $tags = $adapter->getTags(TRUE); if (!empty($tags)) { $nodes = $fetcher->fetchRecentArticlesOrPhotosRelated($adapter->getIdentifier(), $tags, 6); } } } $vars['is_empty'] = (boolean)empty($nodes); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_visioner(&$vars) { $vars['content'] = []; $regions = [ 'large_item' => [ '#theme' => 'mkbh_vision_display__view_mode_large', '#main_image_view_mode' => 'homepage_large', '#show_body'=>FALSE ], 'item_1' => ['#theme' => 'mkbh_vision_display__view_mode_small'], 'item_2' => ['#theme' => 'mkbh_vision_display__view_mode_small'], 'item_3' => ['#theme' => 'mkbh_vision_display__view_mode_small'], 'item_4' => ['#theme' => 'mkbh_vision_display__view_mode_small'], 'static_block' => ['#theme' => 'mkbh_block_front_visioner__static_region'], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = $fetcher->fetchRecentVision(5); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_front_visioner__static_region(&$vars) { $default_settings = variable_get('mkbh_block_front_visioner_settings', []); if (empty($default_settings)) { $vars['#access'] = FALSE; return; } $vars['title'] = (empty($default_settings['block_title']) ? '' : $default_settings['block_title']); $vars['body'] = (empty($default_settings['block_body']['value']) ? '' : $default_settings['block_body']['value']); $vars['link'] = l((empty($default_settings['link_text']) ? '' : $default_settings['link_text']), (empty($default_settings['link_href']) ? '' : $default_settings['link_href'])); } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_article_related_visioner(&$vars) { $vars['content'] = []; $regions = [ 'popular_item' => [ '#theme' => 'mkbh_vision_display__view_mode_small', '#show_sub_category' => FALSE, '#show_body' => TRUE, ], 'item_1' => [ '#theme' => 'mkbh_vision_display__view_mode_large', '#main_image_view_mode' => 'fp_vision_medium', '#trim_length' => 512, ], 'item_2' => [ '#theme' => 'mkbh_vision_display__view_mode_large', '#main_image_view_mode' => 'fp_vision_medium', '#trim_length' => 512, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = []; if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); if (!empty($node)) { $adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node); $tags = $adapter->getTags(TRUE); $popular = $fetcher->fetchPopularVision(1); if (!empty($popular)) { $popular_node = array_pop($popular); } $nodes = $fetcher->fetchRelatedVision($popular_node->nid, $tags, 2); if (!empty($popular_node)) { array_unshift($nodes, $popular_node); } } } foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_article_lang_lesser(&$vars) { $vars['content'] = []; $regions = [ 'item_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'item_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'item_3' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $excludeNodeIds = []; if ($node = menu_get_object()) { $excludeNodeIds[] = $node->nid; } $nodes = $fetcher->fetchRecentLangLesser('any', 3, $fetcher::QUERY_OFFSET, TRUE, $excludeNodeIds); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_article_sponsoreret(&$vars) { $vars['content'] = []; $regions = [ 'item_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'item_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'item_3' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $excludeNodeIds = []; if ($node = menu_get_object()) { $excludeNodeIds[] = $node->nid; } $nodes = $fetcher->fetchRecentSponsoreret('any', 3, $fetcher::QUERY_OFFSET, TRUE, $excludeNodeIds); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_pane_article_recent_articles(&$vars) { $vars['content'] = []; $current_node = NULL; if (arg(0) == 'node' && is_numeric(arg(1))) { $current_node = node_load(arg(1)); } switch ($vars['layout']) { case 'simple_4_columns': $vars['theme_hook_suggestions'][] = 'mkbh_pane_article_recent_articles__layout_simple_4_columns'; $regions = [ 'column_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_3' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = $fetcher->fetchRecentArticles($vars['bundle'], $vars['sub_types'], 'any', 4, \Drupal\mkbh_blocks\Fetcher\NodeFetcher::QUERY_OFFSET, TRUE, [$current_node->nid], FALSE); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } break; default: $regions = [ 'column_1' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_2' => [ '#theme' => 'mkbh_article_display__view_mode_medium', '#orientation' => 'vertical', '#main_image_view_mode' => 'homepage_medium_image', '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_3_1' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_3_2' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4_1' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4_2' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], 'column_4_3' => [ '#theme' => 'mkbh_article_display__view_mode_small', '#show_body' => FALSE, '#show_shares_count' => FALSE, '#trim_length' => 512, ], ]; $fetcher = new Drupal\mkbh_blocks\Fetcher\NodeFetcher(\Drupal\mkbh_unique_node\DisplayedNodes\DisplayedNodesSessionStorage::getInstance()); $nodes = $fetcher->fetchRecentArticles($vars['bundle'], $vars['sub_types'], 'any', 7, \Drupal\mkbh_blocks\Fetcher\NodeFetcher::QUERY_OFFSET, TRUE, [$current_node->nid], FALSE); foreach ($regions as $region => $build) { if (!empty($nodes)) { $build['#node'] = array_shift($nodes); $build['#adapter'] = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($build['#node']); } $vars['content'][$region] = $build; } break; } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_pane_views_group(&$vars) { $fields = [ 'views_item_1', 'views_item_2', ]; foreach ($fields as $key) { $vars['content'][$key] = []; if (!empty($vars[$key])) { list($view, $display) = explode('#', $vars[$key]); $vars['content'][$key] = [ '#markup' => mkbh_views_embed_view($view, $display), ]; } } $vars['content']['views_item_3'] = php_eval($vars['views_item_3']); } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_pane_global_stats(&$vars) { } function mkbh_blocks_process_mkbh_block_facebook_comments_box_comments_seo(&$vars) { $comments =& $vars['comments']; $cacheKey = 'mkbh_blocks_facebook_comments_seo_' . md5($vars['url']); $cache = cache_get($cacheKey, 'cache_page'); if (empty($cache) || empty($cache->data)) { $response = facebookRequestSend('GET', format_string('/?id=!url&fields=id,og_object{comments.limit(1000)}', [ '!url' => urlencode($vars['url']), ])); if (isset($response['og_object']['comments'])) { cache_set($cacheKey, $response['og_object']['comments']['data'], 'cache_page', strtotime('now +2 day')); $cache = cache_get($cacheKey, 'cache_page'); } } $fbComments = ($cache && $cache->data) ? $cache->data : NULL; if (!empty($fbComments) && is_array($fbComments)) { foreach ($fbComments as $fbComment) { $comments[$fbComment['id']] = [ 'author' => l($fbComment['from']['name'], 'https://www.facebook.com/' . $fbComment['from']['id'], [ 'external' => TRUE, 'attributes' => ['target' => '_blank'], ]), 'comment' => $fbComment['message'], 'date' => $fbComment['created_time'], ]; } } } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_new_sponsor_bar(&$vars) { $settings = variable_get('mkbh_block_new_sponsor_bar_settings', []); $vars['main_sponsors'] = _mkbh_block_new_sponsor_bar_process_textarea(array_get($settings, 'main_sponsors', '')); $vars['sponsors'] = _mkbh_block_new_sponsor_bar_process_textarea(array_get($settings, 'sponsors', '')); } /** * Implements hook_process_hook * * @param $vars */ function mkbh_blocks_process_mkbh_block_article_support_block(&$vars) { $settings = variable_get('mkbh_block_article_support_block_settings', []); $vars['heading'] = array_get($settings, 'content_heading'); $vars['body'] = array_get($settings, 'content_body'); $vars['subscript'] = array_get($settings, 'content_subscript'); if ($image = file_load(array_get($settings, 'content_image'))) { $vars['image'] = [ 'file' => $image, 'style' => array_get($settings, 'content_image_style') ]; } } /** * @param $vars */ function mkbh_blocks_process_mkbh_block_article_support_block_paywall(&$vars) { $userPlans = mkbh_paywall_user_get_plans(); $vars['show_basis_upgrade_block'] = $userPlans->contains(MKBH_DONATE_PERSONAL_BASIS_PLAN_ID) && !$userPlans->contains(MKBH_DONATE_PERSONAL_PLUS_PLAN_ID); } /** * @param $vars */ function mkbh_blocks_process_mkbh_block_article_support_block_paywall_default(&$vars) { mkbh_blocks_process_mkbh_block_article_support_block_paywall($vars); } /** * @param $vars */ function mkbh_blocks_process_mkbh_block_article_support_block_paywall_lang_laeser(&$vars) { mkbh_blocks_process_mkbh_block_article_support_block_paywall($vars); }