Base theme for LMMI Journal
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.
 
 
 
 
 

1394 lines
70 KiB

<?php
/**
* @file
* Functions to support theming in the Magazine+ theme.
*/
use Drupal\Core\Theme\ThemeSettings;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Template\Attribute;
use Drupal\file\Entity\File;
use Drupal\image\Entity\ImageStyle;
use Drupal\Component\Utility\Html;
use Drupal\Core\Url;
/**
* Implements hook_preprocess_HOOK() for HTML document templates.
*
* Adds body classes if certain regions have content.
*/
function magazineplus_preprocess_html(&$variables) {
// Add information about the number of sidebars.
if (!empty($variables['page']['sidebar_first']) && !empty($variables['page']['sidebar_second'])) {
$variables['attributes']['class'][] = 'layout-two-sidebars';
}
elseif (!empty($variables['page']['sidebar_first'])) {
$variables['attributes']['class'][] = 'layout-one-sidebar';
$variables['attributes']['class'][] = 'layout-sidebar-first';
}
elseif (!empty($variables['page']['sidebar_second'])) {
$variables['attributes']['class'][] = 'layout-one-sidebar';
$variables['attributes']['class'][] = 'layout-sidebar-second';
}
else {
$variables['attributes']['class'][] = 'layout-no-sidebars';
}
$color_scheme_library = 'magazineplus/color-'.theme_get_setting('color_scheme');
$variables['#attached']['library'][] = $color_scheme_library;
// Add class for layout mode on body tag.
$variables['attributes']['class'][] = theme_get_setting('layout_mode');
$headings_font_family = theme_get_setting('headings_font_family');
$headings_wide_spacing = theme_get_setting('headings_wide_spacing');
$paragraph_font_family = theme_get_setting('paragraph_font_family');
$paragraph_responsive_typography = theme_get_setting('paragraph_responsive_typography');
$sitename_font_family = theme_get_setting('sitename_font_family');
$sitename_italic = theme_get_setting('sitename_italic');
$slogan_font_family = theme_get_setting('slogan_font_family');
$variables['attributes']['class'][] = $headings_font_family;
$variables['attributes']['class'][] = $paragraph_font_family;
$variables['attributes']['class'][] = $sitename_font_family;
$variables['attributes']['class'][] = $slogan_font_family;
if ($headings_wide_spacing) {
$variables['attributes']['class'][] = "headings-wide-spacing-enabled";
}
if ($paragraph_responsive_typography) {
$variables['attributes']['class'][] = "paragraph-responsive-typography-enabled";
}
if ($sitename_italic) {
$variables['attributes']['class'][] = "sitename-italic-enabled";
}
//Get the IDs for each font family
$headings_font_id = substr($headings_font_family, -2);
$paragraph_font_id = substr($paragraph_font_family, -2);
$sitename_font_id = substr($sitename_font_family, -2);
$slogan_font_id = substr($slogan_font_family, -2);
//Generate the library strings
$headings_font_library = 'magazineplus/fonts-id-'.$headings_font_id;
$paragraph_font_library = 'magazineplus/fonts-id-'.$paragraph_font_id;
$sitename_font_library = 'magazineplus/fonts-id-'.$sitename_font_id;
$slogan_font_library = 'magazineplus/fonts-id-'.$slogan_font_id;
//Font families with the following IDs are OS specific and should not load an external font
//yf: @font-your-face, yf=fyf
//13: Georgia
//21: Helvetica Neue
//30: Times
$no_library_array = array('yf','13','21','30');
//Directly Load the font family libraries if the IDs are not in the $no_library_array
if (!in_array($headings_font_id, $no_library_array)) {
$variables['#attached']['library'][] = $headings_font_library;
}
if (!in_array($paragraph_font_id, $no_library_array)) {
$variables['#attached']['library'][] = $paragraph_font_library;
}
if (!in_array($sitename_font_id, $no_library_array)) {
$variables['#attached']['library'][] = $sitename_font_library;
}
if (!in_array($slogan_font_id, $no_library_array)) {
$variables['#attached']['library'][] = $slogan_font_library;
}
$variables['#attached']['library'][] = 'magazineplus/fonts-sourcecodepro';
// Blockquote symbol
$variables['#attached']['library'][] = 'magazineplus/fonts-pt-serif';
// Load libraries for Animations
$animations_state = theme_get_setting('animations_state');
if ($animations_state) {
$variables['#attached']['library'][] = 'magazineplus/animate-global';
$variables['#attached']['library'][] = 'magazineplus/waypoints-animations-init';
}
//Load fixed-header library
$fixed_header = theme_get_setting('fixed_header');
if ($fixed_header) {
$variables['attributes']['class'][] = 'fixed-header-enabled';
$variables['#attached']['library'][] = 'magazineplus/fixed-header';
}
//Load page-container-border
$page_container_border = theme_get_setting('page_container_border');
if ($page_container_border) {
$variables['attributes']['class'][] = 'page-container-border-enabled';
}
// Add class for side of slideout to body.
$variables['attributes']['class'][] = 'slideout-side-'.theme_get_setting('slideout_side');
//get video bg state
$video_bg_state = theme_get_setting('video_bg_state');
//Load transparent-header library
$transparent_header_state = theme_get_setting('transparent_header_state');
if ($transparent_header_state) {
$variables['attributes']['class'][] = 'transparent-header-active';
}
}
function magazineplus_preprocess_breadcrumb(&$variables){
$variables['mt_setting']['breadcrumb_separator'] = theme_get_setting('breadcrumb_separator');
if($variables['breadcrumb']){
$request = \Drupal::request();
$route_match = \Drupal::routeMatch();
$page_title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
if (!empty($page_title)) {
$variables['breadcrumb'][] = array(
'text' => $page_title
);
// Add cache context based on url.
$variables['#cache']['contexts'][] = 'url';
}
}
}
/**
* Implements hook_preprocess_HOOK() for page templates.
*/
function magazineplus_preprocess_page_title(&$variables) {
// Since the title and the shortcut link are both block level elements,
// positioning them next to each other is much simpler with a wrapper div.
if (!empty($variables['title_suffix']['add_or_remove_shortcut']) && $variables['title']) {
// Add a wrapper div using the title_prefix and title_suffix render
// elements.
$variables['title_prefix']['shortcut_wrapper'] = array(
'#markup' => '<div class="shortcut-wrapper clearfix">',
'#weight' => 100,
);
$variables['title_suffix']['shortcut_wrapper'] = array(
'#markup' => '</div>',
'#weight' => -99,
);
// Make sure the shortcut link is the first item in title_suffix.
$variables['title_suffix']['add_or_remove_shortcut']['#weight'] = -100;
}
}
function magazineplus_preprocess_page(&$variables) {
$mt_display_fixed_site_name = theme_get_setting('display_fixed_site_name');
$mt_display_fixed_logo = theme_get_setting('display_fixed_logo');
if ($mt_display_fixed_site_name) {
$site_name = \Drupal::config('system.site')->get('name');
if (!empty($site_name)) {
$variables['mt_site_name'] = $site_name;
}
}
if ($mt_display_fixed_logo) {
$variables['mt_logo'] = theme_get_setting('logo.url');
}
$slideout = $variables['page']['slideout'];
$sidebar_first = $variables['page']['sidebar_first'];
$sidebar_second = $variables['page']['sidebar_second'];
$content_bottom_first = $variables['page']['content_bottom_first'];
$content_bottom_second = $variables['page']['content_bottom_second'];
$footer_top_first = $variables['page']['footer_top_first'];
$footer_top_second = $variables['page']['footer_top_second'];
$footer_bottom_first = $variables['page']['footer_bottom_first'];
$footer_bottom_second = $variables['page']['footer_bottom_second'];
$pre_content_first = $variables['page']['pre_content_first'];
$pre_content_second = $variables['page']['pre_content_second'];
$footer_first = $variables['page']['footer_first'];
$footer_second = $variables['page']['footer_second'];
$footer_third = $variables['page']['footer_third'];
$footer_fourth = $variables['page']['footer_fourth'];
$footer_fifth = $variables['page']['footer_fifth'];
$subfooter_second = $variables['page']['footer'];
$subfooter_first = $variables['page']['sub_footer_first'];
// Attach library to slideout region
if ($slideout) {
$variables['#attached']['library'][] = 'magazineplus/slideout-init';
}
// Insert variables into the page template.
// Pre Header
$variables['pre_header_layout_container'] = theme_get_setting('pre_header_layout_container');
// Header Top Highlighted
$variables['header_top_highlighted_layout_container'] = theme_get_setting('header_top_highlighted_layout_container');
$header_top_highlighted_first = $variables['page']['header_top_highlighted_first'];
$header_top_highlighted_second = $variables['page']['header_top_highlighted_second'];
if($header_top_highlighted_first && $header_top_highlighted_second) {
$variables['header_top_highlighted_first_grid_class'] = 'col-sm-8';
$variables['header_top_highlighted_second_grid_class'] = 'col-sm-4';
} elseif ($header_top_highlighted_first || $header_top_highlighted_second) {
$variables['header_top_highlighted_first_grid_class'] = 'col-md-12';
$variables['header_top_highlighted_second_grid_class'] = 'col-md-12';
}
// Header Top
$variables['header_top_layout_container'] = theme_get_setting('header_top_layout_container');
$header_top_first = $variables['page']['header_top_first'];
$header_top_second = $variables['page']['header_top_second'];
if($header_top_first && $header_top_second) {
$variables['header_top_first_grid_class'] = 'col-sm-8';
$variables['header_top_second_grid_class'] = 'col-sm-4';
} elseif ($header_top_first || $header_top_second) {
$variables['header_top_first_grid_class'] = 'col-md-12';
$variables['header_top_second_grid_class'] = 'col-md-12';
}
// Header
$variables['header_layout_container'] = theme_get_setting('header_layout_container');
$header_first = $variables['page']['header_first'];
$header = $variables['page']['header'];
$header_third = $variables['page']['header_third'];
if (($header_first && !$header && $header_third) || (!$header_first && $header && $header_third)) {
$variables['header_layout_columns_class'] = 'two-columns';
if ($variables['header_layout_container'] == 'container-fluid') {
$variables['header_first_grid_class'] = 'col-md-8 col-md-pull-4 col-lg-9 col-lg-pull-3';
$variables['header_second_grid_class'] = 'col-md-8 col-md-pull-4 col-lg-9 col-lg-pull-3';
$variables['header_third_grid_class'] = 'col-md-4 col-md-push-8 col-lg-3 col-lg-push-9';
} else {
$variables['header_first_grid_class'] = 'col-md-8 col-md-pull-4';
$variables['header_second_grid_class'] = 'col-md-8 col-md-pull-4';
$variables['header_third_grid_class'] = 'col-md-4 col-md-push-8';
}
} else if ($header_first && $header) {
if ($header_third) {
$variables['header_layout_columns_class'] = 'three-columns';
$variables['header_first_grid_class'] = 'col-md-3 col-md-pull-2 col-sm-8 col-sm-pull-4';
$variables['header_second_grid_class'] = 'col-md-7 col-md-pull-2 col-sm-12';
$variables['header_third_grid_class'] = 'col-md-2 col-md-push-10 col-sm-4 col-sm-push-8';
} else {
$variables['header_layout_columns_class'] = 'two-columns';
$variables['header_first_grid_class'] = 'col-md-4';
$variables['header_second_grid_class'] = 'col-md-8';
}
} else {
$variables['header_layout_columns_class'] = 'one-column';
$variables['header_first_grid_class'] = 'col-xs-12';
$variables['header_second_grid_class'] = 'col-xs-12';
$variables['header_third_grid_class'] = 'col-xs-12';
}
if ($variables['header_layout_container'] == 'container-fluid') {
$variables['header_layout_container_class'] = 'full-width';
} else {
$variables['header_layout_container_class'] = 'fixed-width';
}
// Banner
$variables['banner_layout_container'] = theme_get_setting('banner_layout_container');
// Content Top
$variables['content_top_layout_container'] = theme_get_setting('content_top_layout_container');
// Content Top Highlighted
$variables['content_top_highlighted_layout_container'] = theme_get_setting('content_top_highlighted_layout_container');
// Main Content Layout
if($sidebar_first && $sidebar_second) {
$variables['main_grid_class'] = 'col-md-6 col-md-push-3';
$variables['sidebar_first_grid_class'] = 'col-md-3 col-md-pull-6';
$variables['sidebar_second_grid_class'] = 'col-md-3';
} elseif ($sidebar_first && !$sidebar_second) {
$variables['main_grid_class'] = 'col-md-8 col-md-push-4';
$variables['sidebar_first_grid_class'] = 'col-md-4 col-md-pull-8';
$variables['sidebar_second_grid_class'] = '';
} elseif (!$sidebar_first && $sidebar_second) {
$variables['main_grid_class'] = 'col-md-8';
$variables['sidebar_first_grid_class'] = '';
$variables['sidebar_second_grid_class'] = 'col-md-4';
} else {
$variables['main_grid_class'] = 'col-md-12';
$variables['sidebar_first_grid_class'] = '';
$variables['sidebar_second_grid_class'] = '';
}
// Content Bottom
$variables['content_bottom_layout_container'] = theme_get_setting('content_bottom_layout_container');
if($content_bottom_second && $content_bottom_first) {
$variables['content_bottom_first_grid_class'] = 'col-md-5';
$variables['content_bottom_second_grid_class'] = 'col-md-5 col-md-offset-2';
} elseif ($content_bottom_second || $content_bottom_first) {
$variables['content_bottom_first_grid_class'] = 'col-md-12';
$variables['content_bottom_second_grid_class'] = 'col-md-12';
}
// Featured Top
$variables['featured_top_layout_container'] = theme_get_setting('featured_top_layout_container');
// Featured
$variables['featured_layout_container'] = theme_get_setting('featured_layout_container');
// Featured Bottom
$variables['featured_bottom_layout_container'] = theme_get_setting('featured_bottom_layout_container');
// Sub Featured
$variables['sub_featured_layout_container'] = theme_get_setting('sub_featured_layout_container');
// Highlighted
$variables['highlighted_layout_container'] = theme_get_setting('highlighted_layout_container');
// Highlighted Top
$variables['highlighted_top_layout_container'] = theme_get_setting('highlighted_top_layout_container');
// Pre Content
$variables['pre_content_layout_container'] = theme_get_setting('pre_content_layout_container');
if($pre_content_second && $pre_content_first) {
$variables['pre_content_first_grid_class'] = 'col-md-8';
$variables['pre_content_second_grid_class'] = 'col-md-4';
} elseif ($pre_content_second || $pre_content_first) {
$variables['pre_content_first_grid_class'] = 'col-md-12';
$variables['pre_content_second_grid_class'] = 'col-md-12';
}
// Footer Top
$variables['footer_top_layout_container'] = theme_get_setting('footer_top_layout_container');
if($footer_top_first && $footer_top_second) {
$variables['footer_top_regions'] = 'two-regions';
$variables['footer_top_first_grid_class'] = 'col-sm-6';
$variables['footer_top_second_grid_class'] = 'col-sm-6';
} elseif ($footer_top_second || $footer_top_first) {
$variables['footer_top_regions'] = 'one-region';
$variables['footer_top_first_grid_class'] = 'col-md-12';
$variables['footer_top_second_grid_class'] = 'col-md-12';
}
// Footer Layout
$variables['footer_layout_container'] = theme_get_setting('footer_layout_container');
if ($footer_fifth) {
if ($footer_first && $footer_second && $footer_third && $footer_fourth) {
$variables['footer_first_grid_class'] = 'col-sm-4 col-lg-2';
$variables['footer_second_grid_class'] = 'col-sm-4 col-lg-2';
$variables['footer_third_grid_class'] = 'col-sm-4 col-lg-2';
$variables['footer_fourth_grid_class'] = 'col-sm-6 col-lg-3';
$variables['footer_fifth_grid_class'] = 'col-sm-6 col-lg-3';
} elseif ((!$footer_first && $footer_second && $footer_third && $footer_fourth) || ($footer_first && !$footer_second && $footer_third && $footer_fourth)
|| ($footer_first && $footer_second && !$footer_third && $footer_fourth) || ($footer_first && $footer_second && $footer_third && !$footer_fourth)) {
$variables['footer_first_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_second_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_third_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_fourth_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_fifth_grid_class'] = 'col-sm-6 col-md-3';
} elseif ((!$footer_first && !$footer_second && $footer_third && $footer_fourth) || (!$footer_first && $footer_second && !$footer_third && $footer_fourth)
|| (!$footer_first && $footer_second && $footer_third && !$footer_fourth) || ($footer_first && !$footer_second && !$footer_third && $footer_fourth)
|| ($footer_first && !$footer_second && $footer_third && !$footer_fourth) || ($footer_first && $footer_second && !$footer_third && !$footer_fourth)) {
$variables['footer_first_grid_class'] = 'col-sm-4';
$variables['footer_second_grid_class'] = 'col-sm-4';
$variables['footer_third_grid_class'] = 'col-sm-4';
$variables['footer_fourth_grid_class'] = 'col-sm-4';
$variables['footer_fifth_grid_class'] = 'col-sm-4';
} elseif (($footer_first && !$footer_second && !$footer_third && !$footer_fourth) || (!$footer_first && $footer_second && !$footer_third && !$footer_fourth)
|| (!$footer_first && !$footer_second && $footer_third && !$footer_fourth) || (!$footer_first && !$footer_second && !$footer_third && $footer_fourth)) {
$variables['footer_first_grid_class'] = 'col-sm-6';
$variables['footer_second_grid_class'] = 'col-sm-6';
$variables['footer_third_grid_class'] = 'col-sm-6';
$variables['footer_fourth_grid_class'] = 'col-sm-6';
$variables['footer_fifth_grid_class'] = 'col-sm-6';
} else {
$variables['footer_fifth_grid_class'] = 'col-sm-12';
}
} else {
if ($footer_first && $footer_second && $footer_third && $footer_fourth) {
$variables['footer_first_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_second_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_third_grid_class'] = 'col-sm-6 col-md-3';
$variables['footer_fourth_grid_class'] = 'col-sm-6 col-md-3';
} elseif ((!$footer_first && $footer_second && $footer_third && $footer_fourth) || ($footer_first && !$footer_second && $footer_third && $footer_fourth)
|| ($footer_first && $footer_second && !$footer_third && $footer_fourth) || ($footer_first && $footer_second && $footer_third && !$footer_fourth)) {
$variables['footer_first_grid_class'] = 'col-sm-4';
$variables['footer_second_grid_class'] = 'col-sm-4';
$variables['footer_third_grid_class'] = 'col-sm-4';
$variables['footer_fourth_grid_class'] = 'col-sm-4';
} elseif ((!$footer_first && !$footer_second && $footer_third && $footer_fourth) || (!$footer_first && $footer_second && !$footer_third && $footer_fourth)
|| (!$footer_first && $footer_second && $footer_third && !$footer_fourth) || ($footer_first && !$footer_second && !$footer_third && $footer_fourth)
|| ($footer_first && !$footer_second && $footer_third && !$footer_fourth) || ($footer_first && $footer_second && !$footer_third && !$footer_fourth)) {
$variables['footer_first_grid_class'] = 'col-sm-6';
$variables['footer_second_grid_class'] = 'col-sm-6';
$variables['footer_third_grid_class'] = 'col-sm-6';
$variables['footer_fourth_grid_class'] = 'col-sm-6';
} else {
$variables['footer_first_grid_class'] = 'col-sm-12';
$variables['footer_second_grid_class'] = 'col-sm-12';
$variables['footer_third_grid_class'] = 'col-sm-12';
$variables['footer_fourth_grid_class'] = 'col-sm-12';
}
}
if (($footer_first && $footer_second) && (($footer_third && $footer_fourth && !$footer_fifth) || ($footer_third && !$footer_fourth && $footer_fifth) || (!$footer_third && $footer_fourth && $footer_fifth))) {
$variables['footer_4_columns_clearfix_first'] = "visible-sm-block";
} else {
$variables['footer_4_columns_clearfix_first'] = "visible-xs-block";
}
if (($footer_fourth && $footer_fifth) && (($footer_first && $footer_second && !$footer_third) || ($footer_first && !$footer_second && $footer_third) || (!$footer_first && $footer_second && $footer_third))) {
$variables['footer_4_columns_clearfix_second'] = "visible-sm-block";
} else {
$variables['footer_4_columns_clearfix_second'] = "visible-xs-block";
}
if ($footer_first && $footer_second && $footer_third && $footer_fourth && $footer_fifth) {
$variables['footer_5_columns_clearfix'] = "visible-sm-block visible-md-block";
} else {
$variables['footer_5_columns_clearfix'] = "visible-xs-block";
}
//Footer Bottom
$variables['footer_bottom_layout_container'] = theme_get_setting('footer_bottom_layout_container');
if($footer_bottom_second && $footer_bottom_first) {
$variables['footer_bottom_first_grid_class'] = 'col-md-4';
$variables['footer_bottom_second_grid_class'] = 'col-md-8';
} elseif ($footer_bottom_second || $footer_bottom_first) {
$variables['footer_bottom_second_grid_class'] = 'col-md-12 text-center';
$variables['footer_bottom_first_grid_class'] = 'col-md-12 text-center';
}
// Subfooter
$variables['subfooter_layout_container'] = theme_get_setting('subfooter_layout_container');
if($subfooter_second && $subfooter_first) {
$variables['subfooter_first_grid_class'] = 'col-md-6';
$variables['subfooter_second_grid_class'] = 'col-md-6';
} elseif ($subfooter_second || $subfooter_first) {
$variables['subfooter_second_grid_class'] = 'col-md-12 text-center';
$variables['subfooter_first_grid_class'] = 'col-md-12 text-center';
}
// Animations
$animations_state = theme_get_setting('animations_state');
$variables['header_top_highlighted_animation_effect'] = theme_get_setting('header_top_highlighted_animation_effect');
if ($animations_state && $variables['header_top_highlighted_animation_effect'] != "no-animation") {
$variables['header_top_highlighted_animations'] = "enabled";
} else {
$variables['header_top_highlighted_animations'] = "disabled";
}
$variables['header_top_animation_effect'] = theme_get_setting('header_top_animation_effect');
if ($animations_state && $variables['header_top_animation_effect'] != "no-animation") {
$variables['header_top_animations'] = "enabled";
} else {
$variables['header_top_animations'] = "disabled";
}
$variables['content_top_animation_effect'] = theme_get_setting('content_top_animation_effect');
if ($animations_state && $variables['content_top_animation_effect'] != "no-animation") {
$variables['content_top_animations'] = "enabled";
} else {
$variables['content_top_animations'] = "disabled";
}
$variables['content_top_highlighted_animation_effect'] = theme_get_setting('content_top_highlighted_animation_effect');
if ($animations_state && $variables['content_top_highlighted_animation_effect'] != "no-animation") {
$variables['content_top_highlighted_animations'] = "enabled";
} else {
$variables['content_top_highlighted_animations'] = "disabled";
}
$variables['main_content_animation_effect'] = theme_get_setting('main_content_animation_effect');
if ($animations_state && $variables['main_content_animation_effect'] != "no-animation") {
$variables['main_content_animations'] = "enabled";
} else {
$variables['main_content_animations'] = "disabled";
}
$variables['sidebar_first_animation_effect'] = theme_get_setting('sidebar_first_animation_effect');
if ($animations_state && $variables['sidebar_first_animation_effect'] != "no-animation") {
$variables['sidebar_first_animations'] = "enabled";
} else {
$variables['sidebar_first_animations'] = "disabled";
}
$variables['sidebar_second_animation_effect'] = theme_get_setting('sidebar_second_animation_effect');
if ($animations_state && $variables['sidebar_second_animation_effect'] != "no-animation") {
$variables['sidebar_second_animations'] = "enabled";
} else {
$variables['sidebar_second_animations'] = "disabled";
}
$variables['content_bottom_animation_effect'] = theme_get_setting('content_bottom_animation_effect');
if ($animations_state && $variables['content_bottom_animation_effect'] != "no-animation") {
$variables['content_bottom_animations'] = "enabled";
} else {
$variables['content_bottom_animations'] = "disabled";
}
$variables['featured_top_animation_effect'] = theme_get_setting('featured_top_animation_effect');
if ($animations_state && $variables['featured_top_animation_effect'] != "no-animation") {
$variables['featured_top_animations'] = "enabled";
} else {
$variables['featured_top_animations'] = "disabled";
}
$variables['featured_animation_effect'] = theme_get_setting('featured_animation_effect');
if ($animations_state && $variables['featured_animation_effect'] != "no-animation") {
$variables['featured_animations'] = "enabled";
} else {
$variables['featured_animations'] = "disabled";
}
$variables['featured_bottom_animation_effect'] = theme_get_setting('featured_bottom_animation_effect');
if ($animations_state && $variables['featured_bottom_animation_effect'] != "no-animation") {
$variables['featured_bottom_animations'] = "enabled";
} else {
$variables['featured_bottom_animations'] = "disabled";
}
$variables['sub_featured_animation_effect'] = theme_get_setting('sub_featured_animation_effect');
if ($animations_state && $variables['sub_featured_animation_effect'] != "no-animation") {
$variables['sub_featured_animations'] = "enabled";
} else {
$variables['sub_featured_animations'] = "disabled";
}
$variables['highlighted_animation_effect'] = theme_get_setting('highlighted_animation_effect');
if ($animations_state && $variables['highlighted_animation_effect'] != "no-animation") {
$variables['highlighted_animations'] = "enabled";
} else {
$variables['highlighted_animations'] = "disabled";
}
$variables['highlighted_top_animation_effect'] = theme_get_setting('highlighted_top_animation_effect');
if ($animations_state && $variables['highlighted_top_animation_effect'] != "no-animation") {
$variables['highlighted_top_animations'] = "enabled";
} else {
$variables['highlighted_top_animations'] = "disabled";
}
$variables['pre_content_animation_effect'] = theme_get_setting('pre_content_animation_effect');
if ($animations_state && $variables['pre_content_animation_effect'] != "no-animation") {
$variables['pre_content_animations'] = "enabled";
} else {
$variables['pre_content_animations'] = "disabled";
}
$variables['footer_top_animation_effect'] = theme_get_setting('footer_top_animation_effect');
if ($animations_state && $variables['footer_top_animation_effect'] != "no-animation") {
$variables['footer_top_animations'] = "enabled";
} else {
$variables['footer_top_animations'] = "disabled";
}
$variables['footer_animation_effect'] = theme_get_setting('footer_animation_effect');
if ($animations_state && $variables['footer_animation_effect'] != "no-animation") {
$variables['footer_animations'] = "enabled";
} else {
$variables['footer_animations'] = "disabled";
}
// Region Background Color
$variables['slideout_background_color'] = theme_get_setting('slideout_background_color');
$variables['pre_header_background_color'] = theme_get_setting('pre_header_background_color');
$variables['header_top_highlighted_background_color'] = theme_get_setting('header_top_highlighted_background_color');
$variables['header_top_background_color'] = theme_get_setting('header_top_background_color');
$variables['header_background_color'] = theme_get_setting('header_background_color');
$variables['banner_background_color'] = theme_get_setting('banner_background_color');
$variables['content_top_background_color'] = theme_get_setting('content_top_background_color');
$variables['content_top_highlighted_background_color'] = theme_get_setting('content_top_highlighted_background_color');
$variables['content_bottom_background_color'] = theme_get_setting('content_bottom_background_color');
$variables['featured_top_background_color'] = theme_get_setting('featured_top_background_color');
$variables['featured_background_color'] = theme_get_setting('featured_background_color');
$variables['featured_bottom_background_color'] = theme_get_setting('featured_bottom_background_color');
$variables['sub_featured_background_color'] = theme_get_setting('sub_featured_background_color');
$variables['highlighted_background_color'] = theme_get_setting('highlighted_background_color');
$variables['highlighted_top_background_color'] = theme_get_setting('highlighted_top_background_color');
$variables['pre_content_background_color'] = theme_get_setting('pre_content_background_color');
$variables['footer_top_background_color'] = theme_get_setting('footer_top_background_color');
$variables['footer_background_color'] = theme_get_setting('footer_background_color');
$variables['footer_bottom_background_color'] = theme_get_setting('footer_bottom_background_color');
$variables['subfooter_background_color'] = theme_get_setting('subfooter_background_color');
//Region Separator
$variables['content_top_highlighted_separator'] = theme_get_setting('content_top_highlighted_separator');
$variables['pre_content_separator'] = theme_get_setting('pre_content_separator');
$variables['main_content_separator'] = theme_get_setting('main_content_separator');
$variables['content_bottom_separator'] = theme_get_setting('content_bottom_separator');
$variables['featured_top_separator'] = theme_get_setting('featured_top_separator');
$variables['featured_separator'] = theme_get_setting('featured_separator');
$variables['featured_bottom_separator'] = theme_get_setting('featured_bottom_separator');
$variables['sub_featured_separator'] = theme_get_setting('sub_featured_separator');
$variables['highlighted_top_separator'] = theme_get_setting('highlighted_top_separator');
$variables['highlighted_separator'] = theme_get_setting('highlighted_separator');
$variables['footer_top_separator'] = theme_get_setting('footer_top_separator');
$variables['footer_separator'] = theme_get_setting('footer_separator');
$variables['footer_bottom_separator'] = theme_get_setting('footer_bottom_separator');
$variables['subfooter_separator'] = theme_get_setting('subfooter_separator');
// Region Blocks Paddings
$variables['slideout_blocks_paddings'] = theme_get_setting('slideout_blocks_paddings');
$variables['pre_header_blocks_paddings'] = theme_get_setting('pre_header_blocks_paddings');
$variables['header_top_highlighted_blocks_paddings'] = theme_get_setting('header_top_highlighted_blocks_paddings');
$variables['header_top_blocks_paddings'] = theme_get_setting('header_top_blocks_paddings');
$variables['header_blocks_paddings'] = theme_get_setting('header_blocks_paddings');
$variables['banner_blocks_paddings'] = theme_get_setting('banner_blocks_paddings');
$variables['content_top_blocks_paddings'] = theme_get_setting('content_top_blocks_paddings');
$variables['content_top_highlighted_blocks_paddings'] = theme_get_setting('content_top_highlighted_blocks_paddings');
$variables['pre_content_blocks_paddings'] = theme_get_setting('pre_content_blocks_paddings');
$variables['main_content_blocks_paddings'] = theme_get_setting('main_content_blocks_paddings');
$variables['sidebar_first_blocks_paddings'] = theme_get_setting('sidebar_first_blocks_paddings');
$variables['sidebar_second_blocks_paddings'] = theme_get_setting('sidebar_second_blocks_paddings');
$variables['content_bottom_blocks_paddings'] = theme_get_setting('content_bottom_blocks_paddings');
$variables['featured_top_blocks_paddings'] = theme_get_setting('featured_top_blocks_paddings');
$variables['featured_blocks_paddings'] = theme_get_setting('featured_blocks_paddings');
$variables['featured_bottom_blocks_paddings'] = theme_get_setting('featured_bottom_blocks_paddings');
$variables['sub_featured_blocks_paddings'] = theme_get_setting('sub_featured_blocks_paddings');
$variables['highlighted_top_blocks_paddings'] = theme_get_setting('highlighted_top_blocks_paddings');
$variables['highlighted_blocks_paddings'] = theme_get_setting('highlighted_blocks_paddings');
$variables['footer_top_blocks_paddings'] = theme_get_setting('footer_top_blocks_paddings');
$variables['footer_blocks_paddings'] = theme_get_setting('footer_blocks_paddings');
$variables['footer_bottom_blocks_paddings'] = theme_get_setting('footer_bottom_blocks_paddings');
$variables['subfooter_blocks_paddings'] = theme_get_setting('subfooter_blocks_paddings');
// Region Region Paddings
$variables['slideout_region_paddings'] = theme_get_setting('slideout_region_paddings');
$variables['pre_header_region_paddings'] = theme_get_setting('pre_header_region_paddings');
$variables['header_top_highlighted_region_paddings'] = theme_get_setting('header_top_highlighted_region_paddings');
$variables['header_top_region_paddings'] = theme_get_setting('header_top_region_paddings');
$variables['header_region_paddings'] = theme_get_setting('header_region_paddings');
$variables['banner_region_paddings'] = theme_get_setting('banner_region_paddings');
$variables['content_top_region_paddings'] = theme_get_setting('content_top_region_paddings');
$variables['content_top_highlighted_region_paddings'] = theme_get_setting('content_top_highlighted_region_paddings');
$variables['pre_content_region_paddings'] = theme_get_setting('pre_content_region_paddings');
$variables['main_content_region_paddings'] = theme_get_setting('main_content_region_paddings');
$variables['sidebar_first_region_paddings'] = theme_get_setting('sidebar_first_region_paddings');
$variables['sidebar_second_region_paddings'] = theme_get_setting('sidebar_second_region_paddings');
$variables['content_bottom_region_paddings'] = theme_get_setting('content_bottom_region_paddings');
$variables['featured_top_region_paddings'] = theme_get_setting('featured_top_region_paddings');
$variables['featured_region_paddings'] = theme_get_setting('featured_region_paddings');
$variables['featured_bottom_region_paddings'] = theme_get_setting('featured_bottom_region_paddings');
$variables['sub_featured_region_paddings'] = theme_get_setting('sub_featured_region_paddings');
$variables['highlighted_top_region_paddings'] = theme_get_setting('highlighted_top_region_paddings');
$variables['highlighted_region_paddings'] = theme_get_setting('highlighted_region_paddings');
$variables['footer_top_region_paddings'] = theme_get_setting('footer_top_region_paddings');
$variables['footer_region_paddings'] = theme_get_setting('footer_region_paddings');
$variables['footer_bottom_region_paddings'] = theme_get_setting('footer_bottom_region_paddings');
$variables['subfooter_region_paddings'] = theme_get_setting('subfooter_region_paddings');
//Load to-top library
$variables['scroll_to_top_display'] = theme_get_setting('scroll_to_top_display');
$variables['scroll_to_top_region'] = theme_get_setting('scroll_to_top_region');
if ($variables['scroll_to_top_display']) {
$variables['#attached']['library'][] = 'magazineplus/to-top';
$variables['scroll_to_top_icon'] = theme_get_setting('scroll_to_top_icon');
}
//fixed header
$variables['fixed_header'] = theme_get_setting('fixed_header');
}
function magazineplus_page_attachments_alter(&$page) {
// Slideshow's caption Opacity
$slideshow_caption_opacity = (int) theme_get_setting('rs_slideshow_caption_opacity')/100;
$page['#attached']['drupalSettings']['magazineplus']['slideshowCaptionOpacity'] = $slideshow_caption_opacity;
// Full Screen Slideshow
$slideshow_fullscreen_effect_time = (int) theme_get_setting('rs_slideshow_fullscreen_effect_time')*1000;
$slideshow_fullscreen_navigation_style = theme_get_setting('rs_slideshow_fullscreen_navigation_style');
$slideshow_fullscreen_bullets_position = theme_get_setting('rs_slideshow_fullscreen_bullets_position');
$slideshow_fullscreen_touch_swipe = theme_get_setting('rs_slideshow_fullscreen_touch_swipe');
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionFullScreenInit']['slideshowFullScreenEffectTime'] = $slideshow_fullscreen_effect_time;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionFullScreenInit']['slideshowFullScreenNavigationStyle'] = $slideshow_fullscreen_navigation_style;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionFullScreenInit']['slideshowFullScreenBulletsPosition'] = $slideshow_fullscreen_bullets_position;
if ($slideshow_fullscreen_touch_swipe) {
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionFullScreenInit']['slideshowFullScreenTouchSwipe'] = "on";
} else {
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionFullScreenInit']['slideshowFullScreenTouchSwipe'] = "off";
}
// Boxed Width Slideshow
$slideshow_boxedwidth_effect_time = (int) theme_get_setting('rs_slideshow_boxedwidth_effect_time')*1000;
$slideshow_boxedwidth_initial_height = (int) theme_get_setting('rs_slideshow_boxedwidth_initial_height');
$slideshow_boxedwidth_navigation_style = theme_get_setting('rs_slideshow_boxedwidth_navigation_style');
$slideshow_boxedwidth_bullets_position = theme_get_setting('rs_slideshow_boxedwidth_bullets_position');
$slideshow_boxedwidth_touch_swipe = theme_get_setting('rs_slideshow_boxedwidth_touch_swipe');
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionBoxedWidthInit']['slideshowBoxedWidthEffectTime'] = $slideshow_boxedwidth_effect_time;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionBoxedWidthInit']['slideshowBoxedWidthInitialHeight'] = $slideshow_boxedwidth_initial_height;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionBoxedWidthInit']['slideshowBoxedWidthNavigationStyle'] = $slideshow_boxedwidth_navigation_style;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionBoxedWidthInit']['slideshowBoxedWidthBulletsPosition'] = $slideshow_boxedwidth_bullets_position;
if ($slideshow_boxedwidth_touch_swipe) {
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionBoxedWidthInit']['slideshowBoxedWidthTouchSwipe'] = "on";
} else {
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionBoxedWidthInit']['slideshowBoxedWidthTouchSwipe'] = "off";
}
// Internal Banner Slideshow
$slideshow_internal_banner_effect_time = (int) theme_get_setting('rs_slideshow_internal_effect_time')*1000;
$slideshow_internal_banner_initial_height = (int) theme_get_setting('rs_slideshow_internal_initial_height');
$slideshow_internal_navigation_style = theme_get_setting('rs_slideshow_internal_navigation_style');
$slideshow_internal_banner_bullets_position = theme_get_setting('rs_slideshow_internal_bullets_position');
$slideshow_internal_banner_touch_swipe = theme_get_setting('rs_slideshow_internal_banner_touch_swipe');
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionInternalBannerInit']['slideshowInternalBannerEffectTime'] = $slideshow_internal_banner_effect_time;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionInternalBannerInit']['slideshowInternalBannerInitialHeight'] = $slideshow_internal_banner_initial_height;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionInternalBannerInit']['slideshowInternalBannerNavigationStyle'] = $slideshow_internal_navigation_style;
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionInternalBannerInit']['slideshowInternalBannerBulletsPosition'] = $slideshow_internal_banner_bullets_position;
if ($slideshow_internal_banner_touch_swipe) {
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionInternalBannerInit']['slideshowInternalBannerTouchSwipe'] = "on";
} else {
$page['#attached']['drupalSettings']['magazineplus']['sliderRevolutionInternalBannerInit']['slideshowInternalBannerTouchSwipe'] = "off";
}
// Posts carousel
$owl_posts_autoplay = theme_get_setting('owl_posts_autoplay');
$owl_posts_effect_time = (int) theme_get_setting('owl_posts_effect_time')*1000;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselPostsInit']['owlPostsAutoPlay'] = $owl_posts_autoplay;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselPostsInit']['owlPostsEffectTime'] = $owl_posts_effect_time;
// Square Posts carousel
$owl_square_posts_autoplay = theme_get_setting('owl_square_posts_autoplay');
$owl_square_posts_effect_time = (int) theme_get_setting('owl_square_posts_effect_time')*1000;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselSquarePostsInit']['owlSquarePostsAutoPlay'] = $owl_square_posts_autoplay;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselSquarePostsInit']['owlSquarePostsEffectTime'] = $owl_square_posts_effect_time;
// Posts slider
$owl_posts_slider_autoplay = theme_get_setting('owl_posts_slider_autoplay');
$owl_posts_slider_effect_time = (int) theme_get_setting('owl_posts_slider_effect_time')*1000;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselPostsSliderInit']['owlPostsSliderAutoPlay'] = $owl_posts_slider_autoplay;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselPostsSliderInit']['owlPostsSliderEffectTime'] = $owl_posts_slider_effect_time;
// Testimonials carousel
$owl_testimonials_autoplay = theme_get_setting('owl_testimonials_autoplay');
$owl_testimonials_effect_time = (int) theme_get_setting('owl_testimonials_effect_time')*1000;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselTestimonialsInit']['owlTestimonialsAutoPlay'] = $owl_testimonials_autoplay;
$page['#attached']['drupalSettings']['magazineplus']['owlCarouselTestimonialsInit']['owlTestimonialsEffectTime'] = $owl_testimonials_effect_time;
//In page slider
$in_page_slider_effect = theme_get_setting('in_page_slider_effect');
$page['#attached']['drupalSettings']['magazineplus']['flexsliderInPageInit']['inPageSliderEffect'] = $in_page_slider_effect;
// Transparent Header Opacity
$transparent_header_opacity = (int) theme_get_setting('transparent_header_opacity')/100;
$page['#attached']['drupalSettings']['magazineplus']['transparentHeader']['transparentHeaderOpacity'] = $transparent_header_opacity;
// Slideout
$slideout_side = theme_get_setting('slideout_side');
$slideout_touch_swipe = theme_get_setting('slideout_touch_swipe');
$page['#attached']['drupalSettings']['magazineplus']['slideoutInit']['slideoutSide'] = $slideout_side;
if ($slideout_touch_swipe) {
$page['#attached']['drupalSettings']['magazineplus']['slideoutInit']['slideoutTouchSwipe'] = true;
} else {
$page['#attached']['drupalSettings']['magazineplus']['slideoutInit']['slideoutTouchSwipe'] = false;
}
}
function magazineplus_library_info_build() {
$google_maps_key = theme_get_setting('google_maps_key');
if (!empty($google_maps_key)) {
$google_maps_key_string = '&key='.$google_maps_key;
} else {
$google_maps_key_string = '';
}
$libraries = [];
$libraries['google-maps-dynamic'] = [
'version' => '3',
'remote' => 'https://maps.googleapis.com/maps/api/js',
'js' => [
'https://maps.googleapis.com/maps/api/js?v=3'.$google_maps_key_string => [
'scope' => ['footer'],
],
],
'license' => [
'name' => ['Google Terms of Service'],
'url' => ['https://developers.google.com/maps/terms'],
],
];
return $libraries;
}
/**
* Implements hook_preprocess_HOOK() for node.html.twig.
*/
function magazineplus_preprocess_node(&$variables) {
// Remove the "Add new comment" link on teasers or when the comment form is
// displayed on the page.
if ($variables['teaser'] || !empty($variables['content']['comments']['comment_form'])) {
unset($variables['content']['links']['comment']['#links']['comment-add']);
}
$variables['posted_ago'] = \Drupal::service('date.formatter')
->formatInterval(REQUEST_TIME - $variables['node']
->getCreatedTime(), $granularity = 1);
$node_content = $variables['content'];
$node_content = \Drupal::service('renderer')->render($node_content);
$words = str_word_count(strip_tags($node_content));
$minutes = floor($words / 275);
$variables['minutes'] = $minutes;
if (isset($variables['node']->comment)) {
$comment_count = $variables['node']->get('comment')->__get('comment_count');
if ($comment_count) {
$variables['comment_count'] = $comment_count;
} else {
$variables['comment_count'] = "0";
}
}
$variables['mt_setting']['reading_time'] = theme_get_setting('reading_time');
$variables['mt_setting']['share_links'] = theme_get_setting('share_links');
$variables['mt_setting']['print_button'] = theme_get_setting('print_button');
$variables['mt_setting']['share_links_print_position'] = theme_get_setting('share_links_print_position');
$variables['mt_setting']['font_resize'] = theme_get_setting('font_resize');
$variables['mt_setting']['post_progress'] = theme_get_setting('post_progress');
$variables['mt_setting']['affix_side'] = theme_get_setting('affix_side');
}
function magazineplus_preprocess_node__article(&$variables) {
$variables['mt_setting']['reading_time'] = theme_get_setting('reading_time');
// Count the words of article in order to calculate the reading time
$node_content = $variables['content'];
$node_content = \Drupal::service('renderer')->render($node_content);
$words = str_word_count(strip_tags($node_content));
if (isset($variables['content']['comment'])) {
$node_comments = $variables['content']['comment'];
$node_comments = \Drupal::service('renderer')->render($node_comments);
$words = $words - str_word_count(strip_tags($node_comments));
}
$variables['minutes'] = floor($words / 275);
}
/**
* Implements hook_preprocess_HOOK() for block.html.twig.
*/
function magazineplus_preprocess_block(&$variables) {
// Add a clearfix class to blocks.
$variables['attributes']['class'][] = 'clearfix';
}
/**
* Implements hook_preprocess_HOOK() for field--block-content--mt-google-maps.html.twig.
*/
function magazineplus_preprocess_field__block_content__mt_google_maps(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/google-maps-init';
$variables['field_mt_latitude_value'] = $variables['element']['#object']->get('field_mt_latitude')->first()->getValue()['value'];
$variables['field_mt_longitude_value'] = $variables['element']['#object']->get('field_mt_longitude')->first()->getValue()['value'];
$variables['field_mt_map_zoom_value'] = $variables['element']['#object']->get('field_mt_map_zoom')->first()->getValue()['value'];
}
/**
* Implements hook_preprocess_HOOK() for field--block-content--mt-background-image-block.html.twig.
*/
function magazineplus_preprocess_field__block_content__mt_background_image_block(&$variables) {
$variables['background_image_uri'] = $variables['element']['#object']->get('field_mt_background_image')->first()->entity->getFileUri();
$variables['bg_image_overlay_opacity'] = $variables['element']['#object']->get('field_mt_bg_image_opacity')->first()->getValue()['value']/100;
$variables['bg_image_overlay_color'] = $variables['element']['#object']->get('field_mt_bg_image_color')->first()->getValue()['value'];
$variables['bg_image_layout_mode'] = $variables['element']['#object']->get('field_mt_bg_image_layout_mode')->first()->getValue()['value'];
if (!empty($variables['element']['#object']->get('field_mt_bg_image_positioning')->first()) and $variables['element']['#object']->get('field_mt_bg_image_positioning')->first()->getValue()['value'] == "1") {
$variables['field_mt_bg_image_positioning_value'] = "background-image--attachment-fixed";
} else {
$variables['field_mt_bg_image_positioning_value'] = "background-image--attachment-scroll";
}
}
/**
* Implements hook_preprocess_HOOK() for field--block-content--mt-main-slideshow-block.html.twig.
*/
function magazineplus_preprocess_field__block_content__mt_main_slideshow_block(&$variables) {
$paragraphs = $variables['element']['#items']->referencedEntities();
if (!empty($paragraphs)) {
foreach ($paragraphs as $key => $paragraph) {
$slide_image = $paragraph->toArray()['field_mt_ms_slide_image'];
$slide_caption = $paragraph->toArray()['field_mt_ms_slide_caption'];
$slide_caption_color = $paragraph->toArray()['field_mt_ms_slide_caption_color'];
$slide_caption_opacity = $paragraph->toArray()['field_mt_ms_slide_caption_opac'];
$slide_title = $paragraph->toArray()['field_mt_ms_slide_title'];
$slide_links = $paragraph->toArray()['field_mt_ms_slide_link'];
$slide_image = $paragraph->toArray()['field_mt_ms_slide_image'];
$slide_vimeo_id = $paragraph->toArray()['field_mt_ms_slide_vimeo_id'];
$slide_youtube_id = $paragraph->toArray()['field_mt_ms_slide_youtube_id'];
$slide_video_volume = $paragraph->toArray()['field_mt_ms_slide_volume'];
if (!empty($slide_image[0])) {
$file = File::load($slide_image[0]['target_id']);
$path = $file->getFileUri();
$variables['items'][$key]['slide_image_url'] = $path;
$variables['items'][$key]['slide_image_alt'] = $slide_image[0]['alt'];
} else {
$variables['items'][$key]['slide_image_url'] = "";
$variables['items'][$key]['slide_image_alt'] = "";
}
if (!empty($slide_caption[0])) {
$variables['items'][$key]['slide_caption'] = $slide_caption[0]['value'];
} else {
$variables['items'][$key]['slide_caption'] = false;
}
if (!empty($slide_caption_color[0])) {
$variables['items'][$key]['slide_caption_color'] = $slide_caption_color[0]['value'];
} else {
$variables['items'][$key]['slide_caption_color'] = "region--light-typography region--dark-background";
}
if (!empty($slide_caption_opacity[0])) {
$variables['items'][$key]['slide_caption_opacity'] = $slide_caption_opacity[0]['value']/100;
} else {
$variables['items'][$key]['slide_caption_opacity'] = 0;
}
if (!empty($slide_title[0])) {
$variables['items'][$key]['slide_title'] = $slide_title[0]['value'];
} else {
$variables['items'][$key]['slide_title'] = false;
}
if (!empty($slide_links[0])) {
$variables['items'][$key]['slide_first_link_url'] = Url::fromUri($slide_links[0]['uri']);
$variables['items'][$key]['slide_first_link_title'] = $slide_links[0]['title'];
foreach ($slide_links as $slide_link_key => $slide_link) {
$variables['items'][$key]['slide_links'][$slide_link_key]['slide_link_url'] = Url::fromUri($slide_links[$slide_link_key]['uri']);
$variables['items'][$key]['slide_links'][$slide_link_key]['slide_link_title'] = $slide_links[$slide_link_key]['title'];
}
} else {
$variables['items'][$key]['slide_first_link_url'] = false;
$variables['items'][$key]['slide_first_link_title'] = false;
}
if (!empty($slide_vimeo_id[0])) {
$variables['items'][$key]['slide_vimeo_id'] = $slide_vimeo_id[0]['value'];
} else {
$variables['items'][$key]['slide_vimeo_id'] = false;
}
if (!empty($slide_youtube_id[0])) {
$variables['items'][$key]['slide_youtube_id'] = $slide_youtube_id[0]['value'];
} else {
$variables['items'][$key]['slide_youtube_id'] = false;
}
if (!empty($slide_video_volume[0]) and $slide_video_volume[0]['value'] != 0) {
$variables['items'][$key]['slide_video_volume'] = $slide_video_volume[0]['value'];
} else {
$variables['items'][$key]['slide_video_volume'] = "mute";
}
}
}
if ($variables['element']['#object']->get('field_mt_main_slideshow_layout')->first()->getValue()['value'] == "fullwidth") {
$variables['field_mt_main_slideshow_layout_value'] = "auto";
$variables['field_mt_main_slideshow_autoheight'] = "off";
} else {
$variables['field_mt_main_slideshow_layout_value'] = "fullscreen";
$variables['field_mt_main_slideshow_autoheight'] = "on";
}
if (!empty($variables['element']['#object']->get('field_mt_ms_initial_height')->first())) {
$variables['field_mt_ms_initial_height_value'] = (int) $variables['element']['#object']->get('field_mt_ms_initial_height')->first()->getValue()['value'];
} else {
$variables['field_mt_ms_initial_height_value'] = 650;
}
if (!empty($variables['element']['#object']->get('field_mt_ms_effect')->first())) {
$variables['field_mt_ms_effect_value'] = $variables['element']['#object']->get('field_mt_ms_effect')->first()->getValue()['value'];
} else {
$variables['field_mt_ms_effect_value'] = "fade";
}
if (!empty($variables['element']['#object']->get('field_mt_ms_effect_duration')->first())) {
$variables['field_mt_ms_effect_duration_value'] = (int) $variables['element']['#object']->get('field_mt_ms_effect_duration')->first()->getValue()['value']*1000;
} else {
$variables['field_mt_ms_effect_duration_value'] = 9000;
}
if (!empty($variables['element']['#object']->get('field_mt_ms_touch_swipe_nav')->first()) and $variables['element']['#object']->get('field_mt_ms_touch_swipe_nav')->first()->getValue()['value'] == "1") {
$variables['field_mt_ms_touch_swipe_nav_value'] = "on";
} else {
$variables['field_mt_ms_touch_swipe_nav_value'] = "off";
}
if (!empty($variables['element']['#object']->get('field_mt_ms_ignore_header_height')->first()) and $variables['element']['#object']->get('field_mt_ms_ignore_header_height')->first()->getValue()['value'] == "1") {
$variables['field_mt_ms_ignore_header_height_value'] = ".header-container, .toolbar-tray-horizontal";
} else {
$variables['field_mt_ms_ignore_header_height_value'] = ".toolbar-tray-horizontal";
}
if (!empty($variables['element']['#object']->get('field_mt_ms_navigation_style')->first()) and $variables['element']['#object']->get('field_mt_ms_navigation_style')->first()->getValue()['value'] == "bullets") {
$variables['field_mt_ms_bullets_enable'] = true;
$variables['field_mt_ms_tabs_enable'] = false;
$variables['field_mt_ms_thumbs_enable'] = false;
} elseif (!empty($variables['element']['#object']->get('field_mt_ms_navigation_style')->first()) and $variables['element']['#object']->get('field_mt_ms_navigation_style')->first()->getValue()['value'] == "titles_carousel") {
$variables['field_mt_ms_bullets_enable'] = false;
$variables['field_mt_ms_tabs_enable'] = true;
$variables['field_mt_ms_thumbs_enable'] = false;
} elseif (!empty($variables['element']['#object']->get('field_mt_ms_navigation_style')->first()) and $variables['element']['#object']->get('field_mt_ms_navigation_style')->first()->getValue()['value'] == "vertical_thumbs") {
$variables['field_mt_ms_bullets_enable'] = false;
$variables['field_mt_ms_tabs_enable'] = false;
$variables['field_mt_ms_thumbs_enable'] = true;
} else {
$variables['field_mt_ms_bullets_enable'] = false;
$variables['field_mt_ms_tabs_enable'] = false;
$variables['field_mt_ms_thumbs_enable'] = false;
}
if (!empty($variables['element']['#object']->get('field_mt_ms_bullets_position')->first())) {
$variables['field_mt_ms_bullets_position_value'] = $variables['element']['#object']->get('field_mt_ms_bullets_position')->first()->getValue()['value'];
} else {
$variables['field_mt_ms_bullets_position_value'] = "center";
}
if (!empty($variables['element']['#object']->get('field_mt_ms_background_opacity')->first())) {
$variables['field_mt_ms_background_opacity_value'] = (int) $variables['element']['#object']->get('field_mt_ms_background_opacity')->first()->getValue()['value']/100;
} else {
$variables['field_mt_ms_background_opacity_value'] = 0;
}
}
/**
* Implements hook_preprocess_HOOK() for field--field-mt-video-gallery-slides.html.twig.
*/
function magazineplus_preprocess_field__field_mt_video_gallery_slides(&$variables) {
$paragraphs = $variables['element']['#items']->referencedEntities();
if (!empty($paragraphs)) {
foreach ($paragraphs as $key => $paragraph) {
$vimeo_id = $paragraph->toArray()['field_mt_vgs_vimeo_id'];
$youtube_id = $paragraph->toArray()['field_mt_vgs_youtube_id'];
$volume = $paragraph->toArray()['field_mt_vgs_volume'];
$slide_title = $paragraph->toArray()['field_mt_vgs_slide_title'];
$thumbnail = $paragraph->toArray()['field_mt_vgs_thumbnail'];
if (!empty($vimeo_id[0])) {
$variables['items'][$key]['vimeo_id'] = $vimeo_id[0]['value'];
} else {
$variables['items'][$key]['vimeo_id'] = false;
}
if (!empty($youtube_id[0])) {
$variables['items'][$key]['youtube_id'] = $youtube_id[0]['value'];
} else {
$variables['items'][$key]['youtube_id'] = false;
}
if (!empty($volume[0]) and $volume[0]['value'] != 0) {
$variables['items'][$key]['volume'] = $volume[0]['value'];
} else {
$variables['items'][$key]['volume'] = "mute";
}
if (!empty($slide_title[0])) {
$variables['items'][$key]['slide_title'] = $slide_title[0]['value'];
} else {
$variables['items'][$key]['slide_title'] = false;
}
if (!empty($thumbnail[0])) {
$file = File::load($thumbnail[0]['target_id']);
$path = $file->getFileUri();
$thumb_url = ImageStyle::load('mt_video_gallery_thumbnail')->buildUrl($path);
$main_url = ImageStyle::load('mt_slideshow_boxed')->buildUrl($path);
$variables['items'][$key]['thumbnail_thumb_styled_uri'] = $thumb_url;
$variables['items'][$key]['thumbnail_main_styled_uri'] = $main_url;
$variables['items'][$key]['thumbnail_alt'] = $thumbnail[0]['alt'];
} else {
$variables['items'][$key]['thumbnail_thumb_styled_uri'] = "";
$variables['items'][$key]['thumbnail_main_styled_uri'] = "";
$variables['items'][$key]['thumbnail_alt'] = "";
}
}
}
}
/**
* Implements hook_preprocess_HOOK() for pager.html.twig.
*/
function magazineplus_preprocess_pager(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/pager';
}
/**
* Implements hook_preprocess_HOOK() for views-mini-pager.html.twig.
*/
function magazineplus_preprocess_views_mini_pager(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/mini-pager';
}
/**
* Implements hook_preprocess_HOOK() for menu.html.twig.
*/
function magazineplus_preprocess_menu(&$variables) {
$variables['attributes']['class'][] = 'clearfix';
}
/**
* Implements hook_preprocess_HOOK() for products views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_products(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-products-grid';
}
/**
* Implements hook_preprocess_HOOK() for team members grid views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_team_members_grid(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-team-members-grid';
}
/**
* Implements hook_preprocess_HOOK() for team members list views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_team_members_list(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-titles-list';
}
/**
* Implements hook_preprocess_HOOK() for latest posts views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_latest_posts(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-latest-posts';
}
/**
* Implements hook_preprocess_HOOK() for posts masonry views.
*/
function magazineplus_preprocess_views_view_list__mt_posts_masonry(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-posts-masonry';
}
/**
* Implements hook_preprocess_HOOK() for videos grid views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_videos_grid(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-videos-grid';
}
/**
* Implements hook_preprocess_HOOK() for popular tags views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_popular_tags(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-popular-taxonomy';
}
/**
* Implements hook_preprocess_HOOK() for posts grid views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_posts_grid(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-posts-grid';
}
/**
* Implements hook_preprocess_HOOK() for posts grid views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_user_posts(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-posts-grid';
}
/**
* Implements hook_preprocess_HOOK() for posts carousel views.
*/
function magazineplus_preprocess_views_view_list__mt_posts_carousel(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/owl-carousel-posts-init';
}
/**
* Implements hook_preprocess_HOOK() for square posts slider views.
*/
function magazineplus_preprocess_views_view_list__mt_square_posts_carousel(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/owl-carousel-square-posts-init';
}
/**
* Implements hook_preprocess_HOOK() for posts slider views.
*/
function magazineplus_preprocess_views_view_list__mt_posts_slider(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/owl-carousel-posts-slider-init';
}
/**
* Implements hook_preprocess_HOOK() for full screen slideshow.
*/
function magazineplus_preprocess_views_view_list__mt_slideshow_full_screen__block(&$variables) {
$rows = $variables['rows'];
if (!empty($rows)) {
foreach ($rows as $key => $row) {
$path = $variables['rows'][$key]['content']['#row']->_entity->get('field_mt_slideshow_image')->first()->entity->getFileUri();
$variables['rows'][$key]['slide_thumbnail'] = ImageStyle::load('mt_slideshow_thumbnail')->buildUrl($path);
}
}
$variables['mt_setting']['rs_slideshow_fullscreen_effect'] = theme_get_setting('rs_slideshow_fullscreen_effect');
//Load transparent-header library
$transparent_header_state = theme_get_setting('transparent_header_state');
if ($transparent_header_state) {
$variables['#attached']['library'][] = 'magazineplus/transparent-header';
}
}
/**
* Implements hook_preprocess_HOOK() for boxed width slideshow.
*/
function magazineplus_preprocess_views_view_list__mt_slideshow_boxed_width__block(&$variables) {
$rows = $variables['rows'];
if (!empty($rows)) {
foreach ($rows as $key => $row) {
$path = $variables['rows'][$key]['content']['#row']->_entity->get('field_mt_slideshow_image')->first()->entity->getFileUri();
$variables['rows'][$key]['slide_thumbnail'] = ImageStyle::load('mt_slideshow_thumbnail')->buildUrl($path);
}
}
$variables['mt_setting']['rs_slideshow_boxedwidth_effect'] = theme_get_setting('rs_slideshow_boxedwidth_effect');
}
/**
* Implements hook_preprocess_HOOK() for internal banner slideshow.
*/
function magazineplus_preprocess_views_view_list__mt_internal_banner__block(&$variables) {
$rows = $variables['rows'];
if (!empty($rows)) {
foreach ($rows as $key => $row) {
$path = $variables['rows'][$key]['content']['#row']->_entity->get('field_mt_banner_image')->get($key)->entity->getFileUri();
$variables['rows'][$key]['slide_thumbnail'] = ImageStyle::load('mt_slideshow_thumbnail')->buildUrl($path);
}
}
$variables['mt_setting']['rs_slideshow_internal_effect'] = theme_get_setting('rs_slideshow_internal_effect');
}
/**
* Implements hook_preprocess_HOOK() for testimonials list views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_testimonials(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-testimonials-list';
}
/**
* Implements hook_preprocess_HOOK() for testimonials carousel views.
*/
function magazineplus_preprocess_views_view_list__mt_testimonials_carousel(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/owl-carousel-testimonials-init';
}
/**
* Implements hook_preprocess_HOOK() for featured video views.
*/
function magazineplus_preprocess_views_view_unformatted__mt_featured_video(&$variables) {
$variables['#attached']['library'][] = 'magazineplus/view-featured-video';
}
/**
* Implements hook_theme_suggestions_HOOK_alter() for form templates.
*/
function magazineplus_theme_suggestions_form_alter(array &$suggestions, array $variables) {
if ($variables['element']['#form_id'] == 'search_block_form') {
$suggestions[] = 'form__search_block_form';
}
}
/**
* Implements hook_form_alter() to add classes to the search form.
*/
function magazineplus_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if (in_array($form_id, ['search_block_form', 'search_form'])) {
$key = ($form_id == 'search_block_form') ? 'actions' : 'basic';
if (!isset($form[$key]['submit']['#attributes'])) {
$form[$key]['submit']['#attributes'] = new Attribute();
}
$form[$key]['submit']['#attributes']->addClass('search-form__submit');
$form['keys']['#attributes']['placeholder'] = t('Search...');
}
}
function magazineplus_preprocess_field(&$variables) {
$element = $variables['element'];
$variables['view_mode'] = $element['#view_mode']; //Expose node view_mode to field templates
}
function magazineplus_preprocess_field__entity_reference(&$variables) {
$variables['entity_reference_target_type'] = $variables['element']['#items']->getItemDefinition()->getSetting('target_type');
}
function magazineplus_preprocess_field__block_content__mt_tabs_block(&$variables){
$variables['entity_reference_target_type'] = $variables['element']['#items']->getItemDefinition()->getSetting('target_type');
$block_uuid = $variables['element']['#object']->toArray()['uuid'][0]['value'];
$blocks = $variables['element']['#items']->referencedEntities();
if (isset($blocks)) {
foreach ($blocks as $key => $block) {
$variables['items'][$key]['block_data']['label'] = $block->label();
if (!empty($block_uuid)) {
$variables['items'][$key]['block_data']['id'] = Html::getUniqueId($block_uuid."-".$key);
} else {
$variables['items'][$key]['block_data']['id'] = Html::getUniqueId($block->id());
}
}
}
}
function magazineplus_preprocess_field__block_content__mt_collapsible_block(&$variables) {
$block_uuid = $variables['element']['#object']->toArray()['uuid'][0]['value'];
if (!empty($block_uuid)) {
$variables['block_data']['id'] = Html::getUniqueId($block_uuid);
}
if (!empty($variables['element']['#object']->get('field_mt_cb_state')->first()) && $variables['element']['#object']->get('field_mt_cb_state')->first()->getValue()['value'] == "expanded") {
$variables['field_mt_cb_state_value'] = "in";
$variables['field_mt_cb_trigger_state_value'] = "";
} else {
$variables['field_mt_cb_state_value'] = "";
$variables['field_mt_cb_trigger_state_value'] = "collapsed";
}
if (!empty($variables['element']['#object']->get('field_mt_cb_title')->first())) {
$variables['field_mt_cb_title_value'] = $variables['element']['#object']->get('field_mt_cb_title')->first()->getValue()['value'];
} else {
$variables['field_mt_cb_title_value'] = "";
}
if (!empty($variables['element']['#object']->get('field_mt_cb_trigger_position')->first())) {
$variables['field_mt_cb_trigger_position_value'] = $variables['element']['#object']->get('field_mt_cb_trigger_position')->first()->getValue()['value'];
} else {
$variables['field_mt_cb_trigger_position_value'] = "";
}
if (!empty($variables['element']['#object']->get('field_mt_cb_expand_icon')->first())) {
$variables['field_mt_cb_expand_icon_value'] = $variables['element']['#object']->get('field_mt_cb_expand_icon')->first()->getValue()['value'];
} else {
$variables['field_mt_cb_expand_icon_value'] = "";
}
if (!empty($variables['element']['#object']->get('field_mt_cb_collapse_icon')->first())) {
$variables['field_mt_cb_collapse_icon_value'] = $variables['element']['#object']->get('field_mt_cb_collapse_icon')->first()->getValue()['value'];
} else {
$variables['field_mt_cb_collapse_icon_value'] = "";
}
}
function magazineplus_preprocess_field__block_content__mt_media_tabs_block(&$variables){
$current_language_id = \Drupal::languageManager()->getCurrentLanguage()->getId();
$variables['entity_reference_target_type'] = $variables['element']['#items']->getItemDefinition()->getSetting('target_type');
$paragraph_uuid = $variables['element']['#object']->toArray()['uuid'][0]['value'];
$paragraphs = $variables['element']['#items']->referencedEntities();
if (isset($paragraphs)) {
foreach ($paragraphs as $key => $paragraph_item) {
if (!empty($paragraph_uuid)) {
$variables['items'][$key]['tab_item_data']['id'] = Html::getUniqueId($paragraph_uuid."-".$key);
} else {
$variables['items'][$key]['tab_item_data']['id'] = Html::getUniqueId($paragraph_item->id());
}
if ($paragraph_item->hasTranslation($current_language_id)) {
$video_field = $paragraph_item->getTranslation($current_language_id)->get('field_mt_media_video')->view();
$media_image = $paragraph_item->getTranslation($current_language_id)->toArray()['field_mt_media_image'];
} else {
$media_image = $paragraph_item->toArray()['field_mt_media_image'];
$video_field = $paragraph_item->get('field_mt_media_video')->view();
}
if (!empty($media_image[0])) {
$file = File::load($media_image[0]['target_id']);
$path = $file->getFileUri();
$thumb_url = ImageStyle::load('mt_media_tab_image')->buildUrl($path);
$variables['items'][$key]['media_image_styled_url'] = $thumb_url;
} else {
$variables['items'][$key]['media_image_styled_url'] = "";
}
//get the video field from paragraph and generate render array with view()
$video_field['#label_display'] = 'hidden'; //Hide the field label
$video_field[0]['children']['#query']['autoplay'] = 0; //Set autoplay to false
$variables['items'][$key]['video_field'] = $video_field;
}
}
}
function magazineplus_theme_suggestions_image_formatter_alter(array &$suggestions, array $variables) {
$entity = $variables['item']->getEntity();
$field_name = $variables['item']->getParent()->getName();
if (isset($entity) && isset($field_name)) {
$suggestions[] = 'image_formatter__' . $entity->getEntityTypeId() . '__' . $field_name;
$suggestions[] = 'image_formatter__' . $entity->getEntityTypeId() . '__' . $entity->bundle() . '__' . $field_name;
}
}