getArticleType());
$vars['node_type'] = str_replace('_', '-', $adapter->value()->type);
if ($node->type == 'projekt') {
$build[] = [
'#theme' => 'mkbh_block_inline_project_information',
'#node' => $node,
];
}
$body_content = field_view_field('node', $node, 'body', 'default');
$build[] = $body_content;
if ($node->type == 'projekt') {
$build[] = [
'#theme' => 'mkbh_block_inline_project_bottom_section',
'#node' => $node,
];
}
if ($node->type == 'vision') {
$build[] = [
'#theme' => 'mkbh_block_inline_vision_rate_widget',
'#node' => $node,
];
}
// sponsored articles
if ($articleSubType && $articleSubType->tid == 7) {
$build[] = [
'#theme' => 'mkbh_block_inline_sponsored_bottom_section',
'#node' => $vars['node'],
];
}
// The block must be not empty
if (!empty($node->field_article_tags['und'])) {
$tag_buttons = mkbh_article_page_tag_buttons();
//position content after
$tag_buttons['#weight'] = isset($body_content['#weight']) ? $body_content['#weight'] : 0;
$build[] = $tag_buttons;
}
if (in_array($node->type, ['article', 'vision']) && $inArticleSupportBlock = module_invoke('mkbh_blocks', 'block_view', 'mkbh_block_article_support_block')) {
$blockContent = $inArticleSupportBlock['content'];
$build[] = [
'#markup' => trim(
render($blockContent)
),
];
}
$vars['content'] = [
'#markup' => _mkbh_article_page_tokens_replace(
render($build), ['node' => $node]
),
];
$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['paywall'] = mkbh_paywall_is_user_has_access($node) ? 'paywall-has-access' : 'paywall-denied';
if ($vars['paywall'] === 'paywall-denied') {
drupal_page_is_cacheable(false);
}
}
/**
* Returns renderable tag buttons
*
* @return array
*/
function mkbh_article_page_tag_buttons() {
//Insert Tag Buttons before support block.
$buttonBlock = module_invoke('mkbh_blocks', 'block_view', 'mkbh_block_node_tag_buttons');
if (!empty($buttonBlock['content'])) {
return [
'#type' => 'container',
'#attributes' => array(
'class' => array(
'custom-block',
'custom-block-tag-buttons-container',
),
),
'subject' => [
'#type' => 'html_tag',
'#tag' => 'h2',
'#value' => $buttonBlock['subject']
],
'content' => $buttonBlock['content']
];
}
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_photo_series_content(&$vars)
{
$node = $vars['node'];
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterProxy $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node);
$nodeWrapper = $adapter->adapter;
$photoFieldCollectionItems = $nodeWrapper->field_photo_images->value();
$build['body_before_photos'] = field_view_field('node', $node, 'body_before_photos', 'default');
$build['body_before_photos']['#attributes']['class'] = ['asd'];
if (!empty($photoFieldCollectionItems)) {
$build['photos'] = [
'#theme' => 'mkbh_photo_series_photos',
'#node' => $node,
'#photo_field_collection_items' => $photoFieldCollectionItems,
];
}
$build['body'] = field_view_field('node', $node, 'body', 'default');
$build['body_before_photos']['#weight'] = 0;
$build['photos']['#weight'] = 1;
$build['body']['#weight'] = 2;
$vars['content'] = [
'#markup' => _mkbh_article_page_tokens_replace(render($build), ['node' => $node]),
];
$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_article_page_preprocess_mkbh_article_content_sidebar(&$vars)
{
$classes =& $vars['sidebar_classes'];
$classes = [];
$items =& $vars['items'];
$staticItems =& $vars['static_items'];
$node = $vars['node'];
$nodeWrapper = entity_metadata_wrapper('node', $node);
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterProxy $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node);
if ($node->type == 'photo_series') {
$photoSeriesPhotosCount = (int)$adapter->adapter->field_photo_images->count();
$classes['photo_series_size'] = $photoSeriesPhotosCount >= 2 ? 'photo-series-long' : 'photo-series-short';
}
$file = isset($nodeWrapper->field_article_writer_photo) ? $nodeWrapper->field_article_writer_photo->value() : NULL;
if (!empty($file)) {
$items['writer_photo'] = [
'attributes' => [
'class' => ['item-writer-photo'],
],
'data' => [
'#markup' => theme('image_style', ['style_name' => '480x480', 'path' => $file['uri']]),
],
];
}
if ($node->type == 'vision') {
$visionSubType = $nodeWrapper->field_vision_sub_type->value();
if ($visionSubType == 'læservision') {
$items['vision_sub_type_læservision'] = [
'attributes' => [
'class' => [
'item-vision-sub-type',
'item-vision-sub-type-læservision',
'active',
],
],
'data' => [
'#markup' => 'LÆSERVISION',
],
];
} elseif ($visionSubType == 'tegnestuevision') {
$items['vision_sub_type_tegnestuevision'] = [
'attributes' => [
'class' => [
'item-vision-sub-type',
'item-vision-sub-type-tegnestuevision',
'active',
],
],
'data' => [
'#markup' => 'TEGNESTUEVISION',
],
];
}
}
$authorName = $adapter->getRenderableWriterName(FALSE);
$authorNamePlain = trim(strip_tags(render($authorName)));
if (!empty($authorNamePlain)) {
// Add SEO specific markup
$authorName['#prefix'] = '';
$authorName['#suffix'] = '';
$page_keywords = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'author',
'content' => $authorNamePlain,
)
);
$rendered_author_name = render($authorName);
if (!empty($nodeWrapper->field_node_writer_ref) && ($term = $nodeWrapper->field_node_writer_ref->value())) {
$rendered_author_name = l($rendered_author_name, 'taxonomy/term/' . $term->tid,['html'=>TRUE]);
}
drupal_add_html_head($page_keywords, 'meta_tag_author');
$items['author'] = [
'attributes' => [
'class' => ['item-author'],
'itemprop' => "author",
'itemscope' => '',
'itemtype' => 'http://schema.org/Person'
],
'data' => [
'#children' => $rendered_author_name,
],
];
}
$infoAboutWrite = $adapter->getRenderableInfoAboutWrite(FALSE);
if (!empty($infoAboutWrite['#markup'])) {
$items['info_about_write'] = [
'attributes' => [
'class' => ['item-info-about-write'],
],
'data' => [
'#markup' => render($infoAboutWrite),
],
];
}
$post_date_month = [
'#prefix' => '
',
'#suffix' => '
',
'#markup' => format_date($node->created, 'month_only'),
];
$post_date_year = [
'#prefix' => '',
'#suffix' => '
',
'#markup' => date('Y', $node->created),
];
$items['post-date'] = [
'attributes' => [
'class' => ['item-post-date'],
],
'data' => [
[
'#prefix' => '',
'#suffix' => '
',
'#markup' => date('d', $node->created),
],
[
'#prefix' => '',
'#suffix' => '
',
'#markup' => render($post_date_month) . render($post_date_year),
],
],
];
$items['social_widget'] = [
'attributes' => [
'class' => ['item-social-widget'],
],
'data' => [
'#theme' => 'mkbh_social_share_share_widget',
'#node' => $node,
],
];
if (isset($nodeWrapper->field_related_projects)) {
$relatedProjects = [];
foreach ($nodeWrapper->field_related_projects as $relatedProject) {
$relatedProjects[$relatedProject->getIdentifier()] = l($relatedProject->value()->title, 'node/' . $relatedProject->getIdentifier());
}
if (!empty($relatedProjects)) {
$items['related_projects'] = [
'attributes' => [
'class' => ['item-related-projects'],
],
'data' => [
'#theme' => 'item_list',
'#title' => 'Artiklen er relateret til projektet',
'#items' => $relatedProjects,
],
];
}
}
if ($node->type == 'photo_series') {
$staticItems['photo_series_cta_email_modal'] = [
'attributes' => [
'class' => ['item-photo-series-cta-email-modal'],
],
'data' => [
'#theme' => 'mkbh_token_mkbh_inline_photo_series_cta_email_modal',
],
];
}
if ($node->type == 'projekt') {
$items = array_intersect_key($items, ['social_widget' => 1]);
}
$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().
*/
function mkbh_article_page_process_mkbh_photo_series_photos(&$vars)
{
$photos =& $vars['photos'];
if (!empty($vars['photo_field_collection_items']) && !empty($vars['node'])) {
foreach ($vars['photo_field_collection_items'] as $photoFieldCollectionItem) {
$wrapper = entity_metadata_wrapper('field_collection_item', $photoFieldCollectionItem);
if ($wrapper->value()) {
$photos[$wrapper->getIdentifier()] = [
'photo' => field_view_field('field_collection_item', $photoFieldCollectionItem, 'field_photo_i_image', 'default'),
'photo_file' => $wrapper->field_photo_i_image->value(),
'caption' => field_view_field('field_collection_item', $photoFieldCollectionItem, 'field_photo_i_caption', 'default'),
'photographer' => field_view_field('field_collection_item', $photoFieldCollectionItem, 'field_photo_i_photographer', 'default'),
'share_url' => url('node/' . $vars['node']->nid, [
'absolute' => TRUE,
'alias' => TRUE,
'query' => ['photo' => $wrapper->getIdentifier()],
]),
'share_subject' => $vars['node']->title,
'share_body' => url('node/' . $vars['node']->nid, ['absolute' => TRUE]),
];
}
}
}
$vars['attached_widgets'] = [
'photo_series_cta_email_modal' => [
'#theme' => 'mkbh_token_mkbh_inline_photo_series_cta_email_modal',
],
];
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_token_mkbh_inline_images(&$vars)
{
$node = $vars['node'];
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterProxy $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node);
$nodeInlineImages = $adapter->getInlineImages();
/** @var \Illuminate\Support\Collection $inlineImages */
$inlineImages = collect();
foreach ($vars['field_collection_items'] as $fieldCollectionItemId) {
if (isset($nodeInlineImages[$fieldCollectionItemId])) {
$inlineImages->push($nodeInlineImages[$fieldCollectionItemId]);
}
}
$hasFullWidthImages = false;
$vars['inline_images'] = $inlineImages->values()->map(function ($fieldCollection) use (&$hasFullWidthImages) {
if (isset($fieldCollection['fields']['layout']) && $fieldCollection['fields']['layout'] === 'full-width') {
$hasFullWidthImages = true;
}
return [
'layout' => $fieldCollection['fields']['layout'],
'caption' => $fieldCollection['fields']['caption'],
'photographer' => $fieldCollection['fields']['photographer'],
'photo' => [
'#theme' => 'image_style',
'#style_name' => '975x600_manual_crop',
'#path' => $fieldCollection['fields']['image']['uri'],
'#alt' => $fieldCollection['fields']['image']['alt'],
'#title' => $fieldCollection['fields']['image']['title'],
],
'original_photo_url' => image_style_url('fresco_1200', $fieldCollection['fields']['image']['uri']),
];
});
$vars['has_full_width_images'] = $hasFullWidthImages;
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_token_mkbh_inline_quote(&$vars)
{
$node = $vars['node'];
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterProxy $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node);
$nodeQuotes = $adapter->getInlineQuotes();
$inlineQuote = array_intersect_key($nodeQuotes, array_flip([$vars['quote']]));
$vars['quote'] = NULL;
if (!empty($inlineQuote)) {
$inlineQuote = array_map(function ($e) {
return [
'#markup' => $e,
];
}, $inlineQuote);
$vars['quote'] = reset($inlineQuote);
}
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_token_mkbh_inline_fact(&$vars)
{
$node = $vars['node'];
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($node);
$nodeFacts = $adapter->getInlineFacts();
$inlineFact = array_intersect_key($nodeFacts, array_flip([$vars['field_collection_items']]));
$vars['fact'] = NULL;
if (!empty($inlineFact)) {
$inlineFact = array_map(function ($e) {
$fact = [
'title' => $e['fields']['title'],
'content' => $e['fields']['content'],
'image' => NULL,
];
if (!empty($e['fields']['image'])) {
$fact['image'] = [
'#theme' => 'image_style',
'#style_name' => 'w705',
'#path' => $e['fields']['image']['uri'],
'#alt' => $e['fields']['title'],
'#title' => $e['fields']['title'],
];
}
return $fact;
}, $inlineFact);
$vars['fact'] = reset($inlineFact);
}
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_token_mkbh_inline_article(&$vars)
{
module_load_include('inc', 'mkbh_blocks', 'mkbh_blocks.helpers');
if (is_numeric($vars['article']) && $article = node_load($vars['article'])) {
$vars['article'] = node_load($vars['article']);
} else {
$vars['article'] = NULL;
}
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_token_mkbh_inline_map(&$vars)
{
_mkbh_article_page_include_leaflet();
$vars['map_id'] = sprintf('node-%s-inline-map-%s', $vars['node']->nid, sha1(uniqid(mt_rand(0, PHP_INT_MAX), TRUE)));
$sourceNode = $vars['node'];
if (is_numeric($vars['source']) && $node = node_load($vars['source'])) {
$sourceNode = $node;
}
$vars['source_node'] = $sourceNode;
if (!empty($sourceNode->location)) {
$location = $sourceNode->location;
$vars['location_lat'] = $location['latitude'];
$vars['location_lng'] = $location['longitude'];
}
}
function mkbh_article_page_process_mkbh_token_mkbh_inline_ad(&$vars)
{
$vars['ad_tag'] = mkbh_ads_dfp_tag($vars['ad_unit']);
}
function mkbh_article_page_process_mkbh_token_mkbh_inline_city_change_analytics(&$vars)
{
if (!isset($vars['node'])) {
return;
}
$apiClient = new \Drupal\mkbh_article_page\CityChange\CityChangeApiClient();
$vars['analytics'] = $apiClient->getAnalyticsForNode($vars['node']);
}
function mkbh_article_page_process_mkbh_token_mkbh_inline_city_change_suggestions(&$vars)
{
if (!isset($vars['node'])) {
return;
}
$apiClient = new \Drupal\mkbh_article_page\CityChange\CityChangeApiClient();
$vars['suggestions'] = $apiClient->getSuggestionsForNode($vars['node']);
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_project_information(&$vars)
{
_mkbh_article_page_include_leaflet();
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($vars['node']);
$nodeWrapper = $adapter->getEntityMetadataWrapper();
$shortItems =& $vars['short_items'];
$fullItems =& $vars['full_items'];
if ($projectDistrict = $nodeWrapper->field_project_city_district->value()) {
$shortItems['project_city_district'] = [
'attributes' => [
'class' => ['item-city-district'],
],
'data' => [
'label' => 'Bydel',
'value' => $projectDistrict->name,
],
];
}
if ($projectType = $nodeWrapper->field_project_type->value()) {
$shortItems['project_type'] = [
'attributes' => [
'class' => ['item-type'],
],
'data' => [
'label' => 'Type',
'value' => $projectType->name,
],
];
}
$shortItems['project_status'] = [
'attributes' => [
'class' => ['item-status'],
],
'data' => [
'label' => 'Status',
'value' => 'Plan',
],
];
$projectStartYear = $nodeWrapper->field_project_start_year->value();
$projectEndYear = $nodeWrapper->field_project_end_year->value();
if (!empty($projectStartYear)) {
$shortItems['project_status']['data']['value'] = 'Under opførsel';
}
if (!empty($projectStartYear) && !empty($projectEndYear)) {
$shortItems['project_status']['data']['value'] = 'Afsluttet';
}
if ($projectAddress = $nodeWrapper->field_project_address->value()) {
$fullItems['project_address'] = [
'attributes' => [
'class' => ['item-address'],
],
'data' => [
'label' => 'Adresse',
'value' => render($projectAddress),
],
];
}
if ($projectFunction = $nodeWrapper->field_project_funktion->value()) {
$functions = array_map(function ($e) {
return drupal_strtolower($e->name);
}, $projectFunction);
$fullItems['project_functions'] = [
'attributes' => [
'class' => ['item-functions'],
],
'data' => [
'label' => 'Funktion',
'value' => implode(', ', $functions),
],
];
}
if (!empty($projectStartYear) || !empty($projectEndYear)) {
$projectStartYearFormatted = date('Y', $projectStartYear);
$projectEndYearFormatted = empty($projectEndYear) ? '' : date('Y', $projectEndYear);
$fullItems['project_years'] = [
'attributes' => [
'class' => ['item-years'],
],
'data' => [
'label' => 'Byggeår',
'value' => "{$projectStartYearFormatted}-{$projectEndYearFormatted}",
],
];
}
if ($projectArchitect = $nodeWrapper->field_project_arkitekt->value()) {
$fullItems['project_architect'] = [
'attributes' => [
'class' => ['item-architect'],
],
'data' => [
'label' => 'Arkitekt',
'value' => render($projectArchitect),
],
];
}
if ($projectBuilder = $nodeWrapper->field_project_bygherre->value()) {
$fullItems['project_builder'] = [
'attributes' => [
'class' => ['item-builder'],
],
'data' => [
'label' => 'Bygherre',
'value' => render($projectBuilder),
],
];
}
$vars['map_id'] = sprintf('node-%s-project-information-map-%s', $vars['node']->nid, sha1(uniqid(mt_rand(0, PHP_INT_MAX), TRUE)));
if (isset($vars['node']->location) && !empty($vars['node']->location)) {
$location = $vars['node']->location;
$vars['location_lat'] = $location['latitude'];
$vars['location_lng'] = $location['longitude'];
}
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_project_bottom_section(&$vars)
{
// $vars['block_instagram'] = [
// '#theme' => 'mkbh_block_inline_project_bottom_section_block_instagram',
// '#node' => $vars['node'],
// ];
$vars['block_related_articles'] = [
'#theme' => 'mkbh_block_inline_project_bottom_section_block_related_articles',
'#node' => $vars['node'],
];
$vars['block_project_photos'] = [
'#theme' => 'mkbh_block_inline_project_bottom_section_block_project_photos',
'#node' => $vars['node'],
];
$vars['block_project_subscribe_block'] = drupal_get_form('mkbh_article_page_form_project_subscribe', $vars['user'], $vars['node']);
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_sponsored_bottom_section(&$vars)
{
$vars['block_sponsored_highlight'] = [
'#theme' => 'mkbh_block_inline_sponsored_bottom_section_block_sponsored_highlight',
'#node' => $vars['node'],
];
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_project_bottom_section_block_instagram(&$vars)
{
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($vars['node']);
$nodeWrapper = $adapter->getEntityMetadataWrapper();
$instagramTag =& $vars['instagram_tag'];
if ($projectInstagramTag = $nodeWrapper->field_project_instagram_tags->value()) {
$instagramTag = drupal_strtolower($projectInstagramTag->name);
}
$vars['instagram_link'] = format_string('https://www.flickr.com/search/?text=@tag', [
'@tag' => $instagramTag,
]);
// try {
// _mkbh_article_page_init_flickr_api_client();
//
// $params = [
// 'method' => 'flickr.photos.search',
// 'tags' => $instagramTag,
// 'per_page' => 6,
// ];
//
// $flickrResults = json_decode(Flickr::makeCall($params), TRUE);
//
// if (empty($flickrResults['stat']) || $flickrResults['stat'] != 'ok') {
// throw new RuntimeException('Failed to execute FlickrAPI request!');
// } elseif (!empty($flickrResults['photos']['photo'])) {
// foreach ($flickrResults['photos']['photo'] as $flickrPhoto) {
// $photoURL = format_string('https://farm@farm.staticflickr.com/@server/@id_@secret_c.jpg', [
// '@farm' => $flickrPhoto['farm'],
// '@server' => $flickrPhoto['server'],
// '@id' => $flickrPhoto['id'],
// '@secret' => $flickrPhoto['secret'],
// ]);
//
// $destination = 'public://flickr';
// $filePath = $destination . '/' . md5($photoURL) . '.' . pathinfo($photoURL, PATHINFO_EXTENSION);
//
// if (!is_file($filePath) || is_readable($filePath)) {
// file_prepare_directory($destination, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
//
// $fileContents = file_get_contents($photoURL);
// file_put_contents($filePath, $fileContents);
//
// $photoURL = image_style_url('640x640', $filePath);
// }
//
// $photoPageURL = format_string('https://www.flickr.com/photos/@owner/@id', [
// '@owner' => $flickrPhoto['owner'],
// '@id' => $flickrPhoto['id'],
// ]);
//
// $build = [
// '#theme' => 'image',
// '#path' => $photoURL,
// '#width' => 150,
// '#height' => 150,
// '#alt' => $flickrPhoto['title'],
// '#title' => $flickrPhoto['title'],
// ];
//
// $vars['instagram_photos'][] = (object)[
// 'link' => $photoPageURL,
// 'build' => $build,
// ];
// }
// }
// } catch (Exception $e) {
// watchdog('mkbh_flickr', $e->getMessage(), [], WATCHDOG_ERROR);
// }
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_project_bottom_section_block_related_articles(&$vars)
{
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($vars['node']);
$nodeWrapper = $adapter->getEntityMetadataWrapper();
$relatedArticles =& $vars['related_articles'];
$relatedArticles = [];
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', [
'article',
'vision',
'you_write',
'projekt',
'review',
'photo_series',
])
->propertyCondition('status', NODE_PUBLISHED)
->propertyOrderBy('created', 'DESC')
->propertyOrderBy('nid', 'DESC')
->fieldCondition('field_related_projects', 'target_id', $nodeWrapper->getIdentifier());
$result = $query->execute();
if (isset($result['node'])) {
$nodeIds = array_keys($result['node']);
$nodes = entity_load('node', $nodeIds);
$articleCounter = 0;
foreach ($nodes as $relatedArticleNode) {
$articleCounter++;
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $relatedArticleAdapter */
$relatedArticleAdapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($relatedArticleNode);
$relatedArticleSubType = taxonomy_term_load($relatedArticleAdapter->getArticleType());
$relatedArticles[$relatedArticleNode->nid]['#adapter'] = $relatedArticleAdapter;
$relatedArticles[$relatedArticleNode->nid]['#node'] = $relatedArticleNode;
$relatedArticles[$relatedArticleNode->nid]['#node_type'] = str_replace('_', '-', $relatedArticleAdapter->getEntityMetadataWrapper()->value()->type);
$relatedArticles[$relatedArticleNode->nid]['#node_sub_type'] = $relatedArticleSubType ? str_replace([
'_',
' ',
], '-', drupal_strtolower($relatedArticleSubType->name)) : FALSE;
$relatedArticles[$relatedArticleNode->nid]['#main_image'] = $relatedArticleAdapter->getRenderableMainImage('homepage_medium_image', TRUE);
$relatedArticles[$relatedArticleNode->nid]['#title'] = $relatedArticleAdapter->getRenderableFullTitle(TRUE);
$relatedArticles[$relatedArticleNode->nid]['#class'] = [
'fade',
$articleCounter <= 3 ? 'in visible' : '',
];
}
}
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_project_bottom_section_block_project_photos(&$vars)
{
/** @var \Drupal\mkbh_blocks\Adapter\NodeAdapterInterface $adapter */
$adapter = new Drupal\mkbh_blocks\Adapter\NodeAdapterProxy($vars['node']);
$nodeWrapper = $adapter->getEntityMetadataWrapper();
$vars['has_photos'] = (boolean)!empty($nodeWrapper->field_project_inline_images->value());
}
/**
* Implements hook_process_hook
*
* @param $vars
*/
function mkbh_article_page_process_mkbh_block_inline_vision_rate_widget(&$vars)
{
$vars['rate_widget'] = rate_embed($vars['node'], 'vision_rate', RATE_FULL);
}