/** * Title controller. * */ function dt_woocommerce_title_controller() { $config = Presscore_Config::get_instance(); $title_mode = $config->get('header_title'); if ('disabled' != $title_mode) { $title_align = of_get_option('general-title_align', 'center'); $title_classes = array('page-title'); switch ($title_align) { case 'right': $title_classes[] = 'title-right'; break; case 'left': $title_classes[] = 'title-left'; break; default: $title_classes[] = 'title-center'; } $before_title = '<div class="' . esc_attr(implode(' ', $title_classes)) . '"><div class="wf-wrap"><div class="wf-table">'; $after_title = '</div></div></div>'; $breadcrumbs = apply_filters('dt_sanitize_flag', of_get_option('general-show_breadcrumbs', 1)); echo $before_title; if ('right' == $title_align) { if ($breadcrumbs) { echo presscore_get_breadcrumbs(); } echo '<div class="wf-td"><h1>'; woocommerce_page_title(); echo '</h1></div>'; } else { echo '<div class="wf-td"><h1>'; woocommerce_page_title(); echo '</h1></div>'; if ($breadcrumbs) { echo presscore_get_breadcrumbs(); } } echo $after_title; } }
/** * Fancy header controller. * */ function presscore_fancy_header_controller() { $config = Presscore_Config::get_instance(); if ('fancy' != $config->get('header_title')) { return; } ///////////// // title // ///////////// $title = ''; $custom_title = 'generic' == $config->get('fancy_header.title.mode') ? presscore_get_page_title() : $config->get('fancy_header.title'); if ($custom_title) { $title_class = presscore_get_font_size_class($config->get('fancy_header.title.font.size')); if ('accent' == $config->get('fancy_header.title.color.mode')) { $title_class .= ' color-accent'; } $title .= sprintf('<h1 class="fancy-title entry-title %s"', $title_class); if ('color' == $config->get('fancy_header.title.color.mode')) { $title .= ' style="color: ' . esc_attr($config->get('fancy_header.title.color')) . '"'; } $title .= '><span>' . strip_tags($custom_title) . '</span></h1>'; } //////////////// // subtitle // //////////////// $sybtitle = $config->get('fancy_header.subtitle'); if ($sybtitle) { $subtitle_class = presscore_get_font_size_class($config->get('fancy_header.subtitle.font.size')); if ('accent' == $config->get('fancy_header.subtitle.color.mode')) { $subtitle_class .= ' color-accent'; } $title .= sprintf('<h2 class="fancy-subtitle %s"', $subtitle_class); if ('color' == $config->get('fancy_header.subtitle.color.mode')) { $title .= ' style="color: ' . esc_attr($config->get('fancy_header.subtitle.color')) . '"'; } $title .= '><span>' . strip_tags($sybtitle) . '</span></h2>'; } // container class $container_classes = array('fancy-header'); if ($title) { $title = '<div class="wf-td hgroup">' . $title . '</div>'; // if title and subtitle empty } else { $container_classes[] = 'titles-off'; } ////////////////// // bredcrumbs // ////////////////// $breadcrumbs = ''; if ('enabled' == $config->get('fancy_header.breadcrumbs')) { $breadcrumbs_args = array('beforeBreadcrumbs' => '<div class="wf-td">', 'afterBreadcrumbs' => '</div>'); $breadcrumbs_class = 'breadcrumbs text-normal'; switch ($config->get('fancy_header.breadcrumbs.bg_color')) { case 'black': $breadcrumbs_class .= ' bg-dark breadcrumbs-bg'; break; case 'white': $breadcrumbs_class .= ' bg-light breadcrumbs-bg'; break; } $breadcrumbs_args['listAttr'] = ' class="' . $breadcrumbs_class . '"'; $breadcrumbs_text_color = $config->get('fancy_header.breadcrumbs.text_color'); if ($breadcrumbs_text_color) { $breadcrumbs_args['listAttr'] .= ' style="color: ' . $breadcrumbs_text_color . ';"'; } $breadcrumbs = presscore_get_breadcrumbs($breadcrumbs_args); } else { $container_classes[] = 'breadcrumbs-off'; } ///////////////// // container // ///////////////// $content = $title . $breadcrumbs; switch ($config->get('fancy_header.title.aligment')) { case 'center': $container_classes[] = 'title-center'; break; case 'right': $container_classes[] = 'title-right'; $content = $breadcrumbs . $title; break; case 'all_left': $container_classes[] = 'content-left'; break; case 'all_right': $container_classes[] = 'content-right'; break; default: $container_classes[] = 'title-left'; } //////////////// // parallax // //////////////// $data_attr = array(); $parallax_speed = $config->get('fancy_header.parallax.speed'); if ($parallax_speed) { $container_classes[] = 'fancy-parallax-bg'; $data_attr[] = 'data-prlx-speed="' . $parallax_speed . '"'; } /////////////////////// // container style // /////////////////////// $container_style = array(); if ($config->get('fancy_header.bg.color')) { $container_style[] = 'background-color: ' . $config->get('fancy_header.bg.color'); } if ($config->get('fancy_header.bg.image')) { $image_meta = wp_get_attachment_image_src(current($config->get('fancy_header.bg.image')), 'full'); if ($image_meta) { if ($config->get('fancy_header.bg.fullscreen')) { $bg_size = 'cover'; $repeat = 'no-repeat'; } else { $bg_size = 'auto auto'; $repeat = $config->get('fancy_header.bg.repeat'); } $container_style[] = "background-size: {$bg_size}"; $container_style[] = "background-repeat: {$repeat}"; $container_style[] = "background-image: url({$image_meta[0]})"; $position_x = $config->get('fancy_header.bg.position.x'); $position_y = $config->get('fancy_header.bg.position.y'); $container_style[] = "background-position: {$position_x} {$position_y}"; if ($config->get('fancy_header.bg.fixed')) { $container_style[] = 'background-attachment: fixed'; } } } ///////////////////// // header height // ///////////////////// $min_h_height = ' style="min-height: ' . $config->get('fancy_header.height') . 'px;"'; $wf_table_height = ' style="height: ' . $config->get('fancy_header.height') . 'px;"'; $container_style[] = 'min-height: ' . $config->get('fancy_header.height') . 'px'; ////////////// // output // ////////////// printf('<header id="fancy-header" class="%1$s" style="%2$s" %3$s> <div class="wf-wrap"> <div class="wf-table"%5$s>%4$s</div> </div> </header>', esc_attr(implode(' ', $container_classes)), esc_attr(implode('; ', $container_style)), implode(' ', $data_attr), $content, $wf_table_height, $min_h_height); }
function presscore_get_page_title_breadcrumbs($args = array()) { $config = Presscore_Config::get_instance(); $breadcrumbs_class = 'breadcrumbs text-normal'; switch ($config->get('page_title.breadcrumbs.background.mode')) { case 'black': $breadcrumbs_class .= ' bg-dark breadcrumbs-bg'; break; case 'white': $breadcrumbs_class .= ' bg-light breadcrumbs-bg'; break; } $default_args = array('beforeBreadcrumbs' => '<div class="wf-td">', 'afterBreadcrumbs' => '</div>', 'listAttr' => ' class="' . $breadcrumbs_class . '"'); $args = wp_parse_args($args, $default_args); return presscore_get_breadcrumbs($args); }
/** * Fancy header controller. * */ function presscore_fancy_header_controller() { $config = Presscore_Config::get_instance(); if ('fancy' != $config->get('header_title')) { return; } // turn off regular titles and breadcrumbs remove_action('presscore_before_main_container', 'presscore_page_title_controller', 16); $title_color_esc = esc_attr($config->get('fancy_header_title_color')); // title and sub title $title = ''; if ($config->get('fancy_header_title')) { $title .= '<h1 class="fancy-title"'; if ($title_color_esc) { $title .= ' style="color: ' . $title_color_esc . '"'; } $title .= '>' . wp_kses_post($config->get('fancy_header_title')) . '</h1>'; } if ($config->get('fancy_header_subtitle')) { $title .= '<h2 class="fancy-subtitle"'; if ($config->get('fancy_header_subtitle_color')) { $title .= ' style="color: ' . esc_attr($config->get('fancy_header_subtitle_color')) . '"'; } $title .= '>' . wp_kses_post($config->get('fancy_header_subtitle')) . '</h2>'; } if ($title) { $title = '<div class="wf-td hgroup">' . $title . '</div>'; } // breadcrumbs // remove wrap from bredcrumbs $breadcrumbs = ''; if (apply_filters('dt_sanitize_flag', of_get_option('general-show_breadcrumbs', 1))) { remove_filter('presscore_get_breadcrumbs', 'presscore_add_divider_wrap_to_breadcrumbs', 15); $breadcrumbs = presscore_get_breadcrumbs(); add_filter('presscore_get_breadcrumbs', 'presscore_add_divider_wrap_to_breadcrumbs', 15); } // paint breadcrumbs if ($title_color_esc) { $breadcrumbs = str_replace('<li', '<li style="color: ' . esc_attr($title_color_esc) . ';"', $breadcrumbs); } $content = $title . $breadcrumbs; // container classes $container_classes = array('fancy-header'); switch ($config->get('fancy_header_title_aligment')) { case 'center': $container_classes[] = 'title-center'; break; case 'right': $container_classes[] = 'title-right'; $content = $breadcrumbs . $title; break; default: $container_classes[] = 'title-left'; } $parallax_speed = $config->get('fancy_header_parallax_speed'); // parallax $data_attr = array(); if ($parallax_speed) { $container_classes[] = 'fancy-parallax-bg'; $data_attr[] = 'data-prlx-speed="' . $parallax_speed . '"'; } if (!of_get_option('general-show_breadcrumbs', true)) { $container_classes[] = 'breadcrumbs-off'; } // container style $container_style = array(); if ($config->get('fancy_header_bg_color')) { $container_style[] = 'background-color: ' . $config->get('fancy_header_bg_color'); } if ($config->get('fancy_header_bg_image')) { $image_meta = wp_get_attachment_image_src(current($config->get('fancy_header_bg_image')), 'full'); if ($image_meta) { $container_style[] = "background-image: url({$image_meta[0]})"; $repeat = $config->get('fancy_header_bg_repeat'); $position_x = $config->get('fancy_header_bg_position_x'); $position_y = $config->get('fancy_header_bg_position_y'); $container_style[] = "background-repeat: {$repeat}"; $container_style[] = "background-position: {$position_x} {$position_y}"; $fullscreen = $config->get('fancy_header_bg_fullscreen'); if ($fullscreen) { $container_style[] = 'background-size: cover'; } if ($config->get('fancy_header_bg_fixed')) { $container_style[] = 'background-attachment: fixed'; } } } // header height $min_h_height = ' style="min-height: ' . $config->get('fancy_header_height') . 'px;"'; $wf_table_height = ' style="height: ' . $config->get('fancy_header_height') . 'px;"'; $container_style[] = 'min-height: ' . $config->get('fancy_header_height') . 'px'; printf('<header id="fancy-header" class="%1$s" style="%2$s" %3$s> <div class="wf-wrap"> <div class="wf-table"%5$s>%4$s</div> </div> </header>', esc_attr(implode(' ', $container_classes)), esc_attr(implode('; ', $container_style)), implode(' ', $data_attr), $content, $wf_table_height, $min_h_height); }