name = esc_html__( 'Fullwidth Post Title', 'et_builder' ); $this->slug = 'et_pb_fullwidth_post_title'; $this->fb_support = true; $this->fullwidth = true; $this->defaults = array(); $this->featured_image_background = true; $this->whitelisted_fields = array( 'title', 'meta', 'author', 'date', 'date_format', 'categories', 'comments', 'featured_image', 'featured_placement', 'text_color', 'text_background', 'text_bg_color', 'admin_label', 'module_id', 'module_class', ); $this->fields_defaults = array( 'title' => array( 'on' ), 'meta' => array( 'on' ), 'author' => array( 'on' ), 'date' => array( 'on' ), 'date_format' => array( 'M j, Y' ), 'categories' => array( 'on' ), 'comments' => array( 'on' ), 'featured_image' => array( 'on' ), 'featured_placement' => array( 'below' ), 'parallax' => array( 'off' ), 'parallax_method' => array( 'on' ), 'text_orientation' => array( 'left' ), 'text_color' => array( 'dark' ), 'text_background' => array( 'off' ), 'text_bg_color' => array( 'rgba(255,255,255,0.9)', 'only_default_setting' ), ); $this->main_css_element = '%%order_class%%'; $this->options_toggles = array( 'general' => array( 'toggles' => array( 'elements' => esc_html__( 'Elements', 'et_builder' ), 'background' => esc_html__( 'Background', 'et_builder' ), ), ), 'advanced' => array( 'toggles' => array( 'text' => array( 'title' => esc_html__( 'Text', 'et_builder' ), 'priority' => 49, ), ), ), ); $this->advanced_options = array( 'border' => array( 'css' => array( 'main' => array( 'border_radii' => "{$this->main_css_element}.et_pb_featured_bg, {$this->main_css_element}", 'border_styles' => "{$this->main_css_element}.et_pb_featured_bg, {$this->main_css_element}", ), ), ), 'custom_margin_padding' => array( 'css' => array( 'main' => ".et_pb_fullwidth_section {$this->main_css_element}.et_pb_post_title", 'important' => 'all', ), ), 'fonts' => array( 'title' => array( 'label' => esc_html__( 'Title', 'et_builder' ), 'use_all_caps' => true, 'css' => array( 'main' => "{$this->main_css_element} .et_pb_title_container h1.entry-title, {$this->main_css_element} .et_pb_title_container h2.entry-title, {$this->main_css_element} .et_pb_title_container h3.entry-title, {$this->main_css_element} .et_pb_title_container h4.entry-title, {$this->main_css_element} .et_pb_title_container h5.entry-title, {$this->main_css_element} .et_pb_title_container h6.entry-title", ), 'header_level' => array( 'default' => 'h1', ), ), 'meta' => array( 'label' => esc_html__( 'Meta', 'et_builder' ), 'css' => array( 'main' => "{$this->main_css_element} .et_pb_title_container .et_pb_title_meta_container, {$this->main_css_element} .et_pb_title_container .et_pb_title_meta_container a", 'plugin_main' => "{$this->main_css_element} .et_pb_title_container .et_pb_title_meta_container, {$this->main_css_element} .et_pb_title_container .et_pb_title_meta_container a, {$this->main_css_element} .et_pb_title_container .et_pb_title_meta_container span", ), ), ), 'background' => array( 'css' => array( 'main' => "{$this->main_css_element}, {$this->main_css_element}.et_pb_featured_bg", ), ), 'max_width' => array( 'css' => array( 'module_alignment' => '.et_pb_fullwidth_section %%order_class%%.et_pb_post_title.et_pb_module', ), ), 'text' => array(), 'filters' => array(), ); } function get_fields() { $fields = array( 'title' => array( 'label' => esc_html__( 'Show Title', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Post Title', 'et_builder' ), ), 'meta' => array( 'label' => esc_html__( 'Show Meta', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'affects' => array( 'author', 'date', 'categories', 'comments', ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Post Meta', 'et_builder' ), ), 'author' => array( 'label' => esc_html__( 'Show Author', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'depends_show_if' => 'on', 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Author Name in Post Meta', 'et_builder' ), ), 'date' => array( 'label' => esc_html__( 'Show Date', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'depends_show_if' => 'on', 'affects' => array( 'date_format', ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Date in Post Meta', 'et_builder' ), ), 'date_format' => array( 'label' => esc_html__( 'Date Format', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'depends_show_if' => 'on', 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can define the Date Format in Post Meta. Default is \'M j, Y\'', 'et_builder' ), ), 'categories' => array( 'label' => esc_html__( 'Show Post Categories', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'depends_show_if' => 'on', 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Categories in Post Meta. Note: This option doesn\'t work with custom post types.', 'et_builder' ), ), 'comments' => array( 'label' => esc_html__( 'Show Comments Count', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'depends_show_if' => 'on', 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Comments Count in Post Meta.', 'et_builder' ), ), 'featured_image' => array( 'label' => esc_html__( 'Show Featured Image', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'configuration', 'options' => array( 'on' => esc_html__( 'Yes', 'et_builder' ), 'off' => esc_html__( 'No', 'et_builder' ), ), 'affects' => array( 'featured_placement', ), 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose whether or not display the Featured Image', 'et_builder' ), ), 'featured_placement' => array( 'label' => esc_html__( 'Featured Image Placement', 'et_builder' ), 'type' => 'select', 'option_category' => 'layout', 'options' => array( 'below' => esc_html__( 'Below Title', 'et_builder' ), 'above' => esc_html__( 'Above Title', 'et_builder' ), 'background' => esc_html__( 'Title/Meta Background Image', 'et_builder' ), ), 'depends_show_if' => 'on', 'toggle_slug' => 'elements', 'description' => esc_html__( 'Here you can choose where to place the Featured Image', 'et_builder' ), ), 'text_color' => array( 'label' => esc_html__( 'Text Color', 'et_builder' ), 'type' => 'select', 'option_category' => 'color_option', 'options' => array( 'dark' => esc_html__( 'Dark', 'et_builder' ), 'light' => esc_html__( 'Light', 'et_builder' ), ), 'tab_slug' => 'advanced', 'toggle_slug' => 'text', 'description' => esc_html__( 'Here you can choose the color for the Title/Meta text', 'et_builder' ), ), 'text_background' => array( 'label' => esc_html__( 'Use Text Background Color', 'et_builder' ), 'type' => 'yes_no_button', 'option_category' => 'color_option', 'options' => array( 'off' => esc_html__( 'No', 'et_builder' ), 'on' => esc_html__( 'Yes', 'et_builder' ), ), 'affects' => array( 'text_bg_color', ), 'tab_slug' => 'advanced', 'toggle_slug' => 'text', 'description' => esc_html__( 'Here you can choose whether or not use the background color for the Title/Meta text', 'et_builder' ), ), 'text_bg_color' => array( 'label' => esc_html__( 'Text Background Color', 'et_builder' ), 'type' => 'color-alpha', 'depends_show_if' => 'on', 'tab_slug' => 'advanced', 'toggle_slug' => 'text', ), 'disabled_on' => array( 'label' => esc_html__( 'Disable on', 'et_builder' ), 'type' => 'multiple_checkboxes', 'options' => array( 'phone' => esc_html__( 'Phone', 'et_builder' ), 'tablet' => esc_html__( 'Tablet', 'et_builder' ), 'desktop' => esc_html__( 'Desktop', 'et_builder' ), ), 'additional_att' => 'disable_on', 'option_category' => 'configuration', 'description' => esc_html__( 'This will disable the module on selected devices', 'et_builder' ), 'tab_slug' => 'custom_css', 'toggle_slug' => 'visibility', ), 'admin_label' => array( 'label' => esc_html__( 'Admin Label', 'et_builder' ), 'type' => 'text', 'description' => esc_html__( 'This will change the label of the module in the builder for easy identification.', 'et_builder' ), 'toggle_slug' => 'admin_label', ), 'module_id' => array( 'label' => esc_html__( 'CSS ID', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'tab_slug' => 'custom_css', 'toggle_slug' => 'classes', 'option_class' => 'et_pb_custom_css_regular', ), 'module_class' => array( 'label' => esc_html__( 'CSS Class', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'tab_slug' => 'custom_css', 'toggle_slug' => 'classes', 'option_class' => 'et_pb_custom_css_regular', ), ); return $fields; } function shortcode_callback( $atts, $content = null, $function_name ) { $module_id = $this->shortcode_atts['module_id']; $module_class = $this->shortcode_atts['module_class']; $title = $this->shortcode_atts['title']; $meta = $this->shortcode_atts['meta']; $author = $this->shortcode_atts['author']; $date = $this->shortcode_atts['date']; $date_format = $this->shortcode_atts['date_format']; $categories = $this->shortcode_atts['categories']; $comments = $this->shortcode_atts['comments']; $featured_image = $this->shortcode_atts['featured_image']; $featured_placement = $this->shortcode_atts['featured_placement']; $text_color = $this->shortcode_atts['text_color']; $text_background = $this->shortcode_atts['text_background']; $text_bg_color = $this->shortcode_atts['text_bg_color']; $header_level = $this->shortcode_atts['title_level']; // display the shortcode only on singlular pages if ( ! is_singular() ) { return; } $module_class = ET_Builder_Element::add_module_order_class( $module_class, $function_name ); $output = ''; $featured_image_output = ''; $parallax_image_background = $this->get_parallax_image_background(); if ( 'on' === $featured_image && ( 'above' === $featured_placement || 'below' === $featured_placement ) ) { // Largest featured image size is needed when featured image is used in "post" post type and full width layout $featured_image_size = 'post' === get_post_type() && 'et_full_width_page' === get_post_meta( get_the_ID(), '_et_pb_page_layout', true ) ? 'et-pb-post-main-image-fullwidth-large' : 'large'; $featured_image_output = sprintf( '', get_the_post_thumbnail( get_the_ID(), $featured_image_size ) ); } if ( 'on' === $title ) { if ( is_et_pb_preview() && isset( $_POST['post_title'] ) && wp_verify_nonce( $_POST['et_pb_preview_nonce'], 'et_pb_preview_nonce' ) ) { $post_title = sanitize_text_field( wp_unslash( $_POST['post_title'] ) ); } else { $post_title = get_the_title(); } $output .= sprintf( '<%2$s class="entry-title">%s', $post_title, et_pb_process_header_level( $header_level, 'h1' ) ); } if ( 'on' === $meta ) { $meta_array = array(); foreach( array( 'author', 'date', 'categories', 'comments' ) as $single_meta ) { if ( 'on' === $$single_meta && ( 'categories' !== $single_meta || ( 'categories' === $single_meta && is_singular( 'post' ) ) ) ) { $meta_array[] = $single_meta; } } $output .= sprintf( '

%1$s

', et_pb_postinfo_meta( $meta_array, $date_format, esc_html__( '0 comments', 'et_builder' ), esc_html__( '1 comment', 'et_builder' ), '% ' . esc_html__( 'comments', 'et_builder' ) ) ); } if ( 'on' === $text_background ) { ET_Builder_Element::set_style( $function_name, array( 'selector' => '%%order_class%% .et_pb_title_container', 'declaration' => sprintf( 'background-color: %1$s; padding: 1em 1.5em;', esc_html( $text_bg_color ) ), ) ); } $video_background = $this->video_background(); $background_layout = 'dark' === $text_color ? 'light' : 'dark'; $module_class .= ' et_pb_bg_layout_' . $background_layout; $module_class .= 'above' === $featured_placement ? ' et_pb_image_above' : ''; $module_class .= 'below' === $featured_placement ? ' et_pb_image_below' : ''; $output = sprintf( ' %5$s %9$s %6$s
%1$s
%7$s ', $output, ( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' ), ( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ), 'on' === $featured_image && 'background' === $featured_placement ? ' et_pb_featured_bg' : '', $parallax_image_background, 'on' === $featured_image && 'above' === $featured_placement ? $featured_image_output : '', 'on' === $featured_image && 'below' === $featured_placement ? $featured_image_output : '', '' !== $video_background ? ' et_pb_section_video et_pb_preload' : '', $video_background, '' !== $parallax_image_background ? ' et_pb_section_parallax' : '', $this->get_text_orientation_classname() ); return $output; } protected function _add_additional_border_fields() { parent::_add_additional_border_fields(); $this->advanced_options["border"]['css'] = array( 'main' => array( 'border_radii' => "{$this->main_css_element}.et_pb_featured_bg, {$this->main_css_element}", 'border_styles' => "{$this->main_css_element}.et_pb_featured_bg, {$this->main_css_element}", ) ); } } new ET_Builder_Module_Fullwidth_Post_Title;