コード例 #1
1
    function shortcode_callback($atts, $content = null, $function_name)
    {
        $type = $this->shortcode_atts['type'];
        $specialty_columns = $this->shortcode_atts['specialty_columns'];
        $saved_specialty_column_type = $this->shortcode_atts['saved_specialty_column_type'];
        global $et_specialty_column_type, $et_pb_column_backgrounds, $et_pb_column_paddings, $et_pb_column_inner_backgrounds, $et_pb_column_inner_paddings, $et_pb_columns_counter, $et_pb_columns_inner_counter, $keep_column_padding_mobile, $et_pb_column_parallax, $et_pb_column_css, $et_pb_column_inner_css, $et_pb_column_paddings_mobile;
        if ('et_pb_column_inner' !== $function_name) {
            $et_specialty_column_type = $type;
            $array_index = $et_pb_columns_counter;
            $backgrounds_array = $et_pb_column_backgrounds;
            $paddings_array = $et_pb_column_paddings;
            $paddings_mobile_array = $et_pb_column_paddings_mobile;
            $column_css_array = $et_pb_column_css;
            $et_pb_columns_counter++;
        } else {
            $array_index = $et_pb_columns_inner_counter;
            $backgrounds_array = $et_pb_column_inner_backgrounds;
            $paddings_array = $et_pb_column_inner_paddings;
            $column_css_array = $et_pb_column_inner_css;
            $et_pb_columns_inner_counter++;
            $paddings_mobile_array = isset($et_pb_column_inner_paddings_mobile);
        }
        $background_color = isset($backgrounds_array[$array_index][0]) ? $backgrounds_array[$array_index][0] : '';
        $background_img = isset($backgrounds_array[$array_index][1]) ? $backgrounds_array[$array_index][1] : '';
        $padding_values = isset($paddings_array[$array_index]) ? $paddings_array[$array_index] : array();
        $padding_mobile_values = isset($paddings_mobile_array[$array_index]) ? $paddings_mobile_array[$array_index] : array();
        $parallax_method = isset($et_pb_column_parallax[$array_index][0]) && 'on' === $et_pb_column_parallax[$array_index][0] ? $et_pb_column_parallax[$array_index][1] : '';
        $custom_css_class = isset($column_css_array['css_class'][$array_index]) ? ' ' . $column_css_array['css_class'][$array_index] : '';
        $custom_css_id = isset($column_css_array['css_id'][$array_index]) ? $column_css_array['css_id'][$array_index] : '';
        $custom_css_before = isset($column_css_array['custom_css_before'][$array_index]) ? $column_css_array['custom_css_before'][$array_index] : '';
        $custom_css_main = isset($column_css_array['custom_css_main'][$array_index]) ? $column_css_array['custom_css_main'][$array_index] : '';
        $custom_css_after = isset($column_css_array['custom_css_after'][$array_index]) ? $column_css_array['custom_css_after'][$array_index] : '';
        if ('' !== $background_color && 'rgba(0,0,0,0)' !== $background_color) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => sprintf('background-color:%s;', esc_attr($background_color))));
        }
        if ('' !== $background_img && '' === $parallax_method) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => sprintf('background-image:url(%s);', esc_attr($background_img))));
        }
        if (!empty($padding_values)) {
            foreach ($padding_values as $position => $value) {
                if ('' !== $value) {
                    $element_style = array('selector' => '%%order_class%%', 'declaration' => sprintf('%1$s:%2$s;', esc_html($position), esc_html(et_builder_process_range_value($value))));
                    if ('on' !== $keep_column_padding_mobile) {
                        $element_style['media_query'] = ET_Builder_Element::get_media_query('min_width_981');
                    }
                    ET_Builder_Element::set_style($function_name, $element_style);
                }
            }
        }
        if (!empty($padding_mobile_values['tablet']) || !empty($padding_values['phone'])) {
            $padding_mobile_values_processed = array();
            foreach (array('tablet', 'phone') as $device) {
                if (empty($padding_mobile_values[$device])) {
                    continue;
                }
                $padding_mobile_values_processed[$device] = array('padding-top' => isset($padding_mobile_values[$device][0]) ? $padding_mobile_values[$device][0] : '', 'padding-right' => isset($padding_mobile_values[$device][1]) ? $padding_mobile_values[$device][1] : '', 'padding-bottom' => isset($padding_mobile_values[$device][2]) ? $padding_mobile_values[$device][2] : '', 'padding-left' => isset($padding_mobile_values[$device][3]) ? $padding_mobile_values[$device][3] : '');
            }
            if (!empty($padding_mobile_values_processed)) {
                et_pb_generate_responsive_css($padding_mobile_values_processed, '.et_pb_row > .et_pb_column%%order_class%%', '', $function_name);
            }
        }
        if ('' !== $custom_css_before) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%:before', 'declaration' => trim($custom_css_before)));
        }
        if ('' !== $custom_css_main) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => trim($custom_css_main)));
        }
        if ('' !== $custom_css_after) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%:after', 'declaration' => trim($custom_css_after)));
        }
        if ('et_pb_column_inner' === $function_name) {
            if ('1_1' === $type) {
                $type = '4_4';
            }
            $et_specialty_column_type = '' !== $saved_specialty_column_type ? $saved_specialty_column_type : $et_specialty_column_type;
            switch ($et_specialty_column_type) {
                case '1_2':
                    if ('1_2' === $type) {
                        $type = '1_4';
                    }
                    break;
                case '2_3':
                    if ('1_2' === $type) {
                        $type = '1_3';
                    }
                    break;
                case '3_4':
                    if ('1_2' === $type) {
                        $type = '3_8';
                    } else {
                        if ('1_3' === $type) {
                            $type = '1_4';
                        }
                    }
                    break;
            }
        }
        $inner_class = 'et_pb_column_inner' === $function_name ? ' et_pb_column_inner' : '';
        $class = 'et_pb_column_' . $type . $inner_class . $custom_css_class;
        $class = ET_Builder_Element::add_module_order_class($class, $function_name);
        $inner_content = do_shortcode(et_pb_fix_shortcodes($content));
        $class .= '' == trim($inner_content) ? ' et_pb_column_empty' : '';
        $class .= 'et_pb_column_inner' !== $function_name && '' !== $specialty_columns ? ' et_pb_specialty_column' : '';
        $output = sprintf('<div class="et_pb_column %1$s%3$s"%5$s>
				%4$s
				%2$s
			</div> <!-- .et_pb_column -->', esc_attr($class), $inner_content, '' !== $parallax_method ? ' et_pb_section_parallax' : '', '' !== $background_img && '' !== $parallax_method ? sprintf('<div class="et_parallax_bg%2$s" style="background-image: url(%1$s);"></div>', esc_attr($background_img), 'off' === $parallax_method ? ' et_pb_parallax_css' : '') : '', '' !== $custom_css_id ? sprintf(' id="%1$s"', esc_attr($custom_css_id)) : '');
        return $output;
    }
コード例 #2
0
    function shortcode_callback($atts, $content = null, $function_name)
    {
        $module_id = $this->shortcode_atts['module_id'];
        $module_class = $this->shortcode_atts['module_class'];
        $background_image = $this->shortcode_atts['background_image'];
        $background_color = $this->shortcode_atts['background_color'];
        $background_video_mp4 = $this->shortcode_atts['background_video_mp4'];
        $background_video_webm = $this->shortcode_atts['background_video_webm'];
        $background_video_width = $this->shortcode_atts['background_video_width'];
        $background_video_height = $this->shortcode_atts['background_video_height'];
        $allow_player_pause = $this->shortcode_atts['allow_player_pause'];
        $inner_shadow = $this->shortcode_atts['inner_shadow'];
        $parallax = $this->shortcode_atts['parallax'];
        $parallax_method = $this->shortcode_atts['parallax_method'];
        $fullwidth = $this->shortcode_atts['fullwidth'];
        $specialty = $this->shortcode_atts['specialty'];
        $transparent_background = $this->shortcode_atts['transparent_background'];
        $custom_padding = $this->shortcode_atts['custom_padding'];
        $padding_mobile = $this->shortcode_atts['padding_mobile'];
        $background_color_1 = $this->shortcode_atts['background_color_1'];
        $background_color_2 = $this->shortcode_atts['background_color_2'];
        $background_color_3 = $this->shortcode_atts['background_color_3'];
        $bg_img_1 = $this->shortcode_atts['bg_img_1'];
        $bg_img_2 = $this->shortcode_atts['bg_img_2'];
        $bg_img_3 = $this->shortcode_atts['bg_img_3'];
        $padding_top_1 = $this->shortcode_atts['padding_top_1'];
        $padding_right_1 = $this->shortcode_atts['padding_right_1'];
        $padding_bottom_1 = $this->shortcode_atts['padding_bottom_1'];
        $padding_left_1 = $this->shortcode_atts['padding_left_1'];
        $padding_top_2 = $this->shortcode_atts['padding_top_2'];
        $padding_right_2 = $this->shortcode_atts['padding_right_2'];
        $padding_bottom_2 = $this->shortcode_atts['padding_bottom_2'];
        $padding_left_2 = $this->shortcode_atts['padding_left_2'];
        $padding_top_3 = $this->shortcode_atts['padding_top_3'];
        $padding_right_3 = $this->shortcode_atts['padding_right_3'];
        $padding_bottom_3 = $this->shortcode_atts['padding_bottom_3'];
        $padding_left_3 = $this->shortcode_atts['padding_left_3'];
        $gutter_width = $this->shortcode_atts['gutter_width'];
        $use_custom_width = $this->shortcode_atts['use_custom_width'];
        $custom_width_px = $this->shortcode_atts['custom_width_px'];
        $custom_width_percent = $this->shortcode_atts['custom_width_percent'];
        $width_unit = $this->shortcode_atts['width_unit'];
        $make_equal = $this->shortcode_atts['make_equal'];
        $make_fullwidth = $this->shortcode_atts['make_fullwidth'];
        $global_module = $this->shortcode_atts['global_module'];
        $use_custom_gutter = $this->shortcode_atts['use_custom_gutter'];
        if ('' !== $global_module) {
            $global_content = et_pb_load_global_module($global_module);
            if ('' !== $global_content) {
                return do_shortcode($global_content);
            }
        }
        $module_class = ET_Builder_Element::add_module_order_class($module_class, $function_name);
        $gutter_class = '';
        if ('on' === $specialty) {
            global $et_pb_column_backgrounds, $et_pb_column_paddings, $et_pb_columns_counter;
            $module_class .= 'on' === $make_equal ? ' et_pb_equal_columns' : '';
            $gutter_class .= 'on' === $use_custom_gutter ? ' et_pb_gutters' . $gutter_width : '';
            $et_pb_columns_counter = 0;
            $et_pb_column_backgrounds = array(array($background_color_1, $bg_img_1), array($background_color_2, $bg_img_2), array($background_color_3, $bg_img_3));
            $et_pb_column_paddings = array(array('padding-top' => $padding_top_1, 'padding-right' => $padding_right_1, 'padding-bottom' => $padding_bottom_1, 'padding-left' => $padding_left_1), array('padding-top' => $padding_top_2, 'padding-right' => $padding_right_2, 'padding-bottom' => $padding_bottom_2, 'padding-left' => $padding_left_2), array('padding-top' => $padding_top_3, 'padding-right' => $padding_right_3, 'padding-bottom' => $padding_bottom_3, 'padding-left' => $padding_left_3));
            if ('on' === $make_fullwidth && 'off' === $use_custom_width) {
                $module_class .= ' et_pb_specialty_fullwidth';
            }
            if ('on' === $use_custom_width) {
                ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%% > .et_pb_row', 'declaration' => sprintf('max-width:%1$s !important;', 'on' === $width_unit ? esc_attr($custom_width_px) : esc_attr($custom_width_percent))));
            }
        }
        $background_video = '';
        if ('' !== $background_video_mp4 || '' !== $background_video_webm) {
            $background_video = sprintf('<div class="et_pb_section_video_bg%2$s">
					%1$s
				</div>', do_shortcode(sprintf('
					<video loop="loop" autoplay="autoplay"%3$s%4$s>
						%1$s
						%2$s
					</video>', '' !== $background_video_mp4 ? sprintf('<source type="video/mp4" src="%s" />', esc_attr($background_video_mp4)) : '', '' !== $background_video_webm ? sprintf('<source type="video/webm" src="%s" />', esc_attr($background_video_webm)) : '', '' !== $background_video_width ? sprintf(' width="%s"', esc_attr($background_video_width)) : '', '' !== $background_video_height ? sprintf(' height="%s"', esc_attr($background_video_height)) : '')), 'on' === $allow_player_pause ? ' et_pb_allow_player_pause' : '');
            wp_enqueue_style('wp-mediaelement');
            wp_enqueue_script('wp-mediaelement');
        }
        if ('' !== $background_color && 'off' === $transparent_background) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => sprintf('background-color:%s;', esc_attr($background_color))));
        }
        if ('' !== $background_image && 'on' !== $parallax) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => sprintf('background-image:url(%s);', esc_attr($background_image))));
        }
        $padding_values = explode('|', $custom_padding);
        if (!empty($padding_values)) {
            $padding_settings = array('top' => isset($padding_values[0]) ? $padding_values[0] : '', 'bottom' => isset($padding_values[1]) ? $padding_values[1] : '');
            foreach ($padding_settings as $padding_side => $value) {
                if ('' !== $value) {
                    $element_style = array('selector' => '%%order_class%%', 'declaration' => sprintf('padding-%1$s: %2$s;', esc_html($padding_side), esc_html($value)));
                    if ('on' !== $padding_mobile) {
                        $element_style['media_query'] = ET_Builder_Element::get_media_query('min_width_981');
                    }
                    ET_Builder_Element::set_style($function_name, $element_style);
                }
            }
        }
        if ('' !== $background_video_mp4 || '' !== $background_video_webm || '' !== $background_color && 'off' === $transparent_background || '' !== $background_image) {
            $module_class .= ' et_pb_with_background';
        }
        $output = sprintf('<div%7$s class="et_pb_section%3$s%4$s%5$s%6$s%8$s%12$s%13$s">
				%11$s
				%9$s
					%2$s
					%1$s
				%10$s
			</div> <!-- .et_pb_section -->', do_shortcode(et_pb_fix_shortcodes($content)), $background_video, '' !== $background_video ? ' et_pb_section_video et_pb_preload' : '', 'off' !== $inner_shadow && !('' !== $background_image && 'on' === $parallax && 'off' === $parallax_method) ? ' et_pb_inner_shadow' : '', 'on' === $parallax ? ' et_pb_section_parallax' : '', 'off' !== $fullwidth ? ' et_pb_fullwidth_section' : '', '' !== $module_id ? sprintf(' id="%1$s"', esc_attr($module_id)) : '', '' !== $module_class ? sprintf(' %1$s', esc_attr($module_class)) : '', 'on' === $specialty ? sprintf('<div class="et_pb_row%1$s">', $gutter_class) : '', 'on' === $specialty ? '</div> <!-- .et_pb_row -->' : '', '' !== $background_image && 'on' === $parallax ? sprintf('<div class="et_parallax_bg%2$s%3$s" style="background-image: url(%1$s);"></div>', esc_attr($background_image), 'off' === $parallax_method ? ' et_pb_parallax_css' : '', 'off' !== $inner_shadow && 'off' === $parallax_method ? ' et_pb_inner_shadow' : '') : '', 'on' === $specialty ? ' et_section_specialty' : ' et_section_regular', 'on' === $transparent_background ? ' et_section_transparent' : '');
        return $output;
    }
コード例 #3
0
    function process_advanced_button_options($function_name)
    {
        if (!isset($this->advanced_options['button'])) {
            return;
        }
        foreach ($this->advanced_options['button'] as $option_name => $option_settings) {
            $button_custom = $this->shortcode_atts["custom_{$option_name}"];
            $button_text_size = $this->shortcode_atts["{$option_name}_text_size"];
            $button_text_size_tablet = $this->shortcode_atts["{$option_name}_text_size_tablet"];
            $button_text_size_phone = $this->shortcode_atts["{$option_name}_text_size_phone"];
            $button_text_color = $this->shortcode_atts["{$option_name}_text_color"];
            $button_bg_color = $this->shortcode_atts["{$option_name}_bg_color"];
            $button_border_width = $this->shortcode_atts["{$option_name}_border_width"];
            $button_border_color = $this->shortcode_atts["{$option_name}_border_color"];
            $button_border_radius = $this->shortcode_atts["{$option_name}_border_radius"];
            $button_font = $this->shortcode_atts["{$option_name}_font"];
            $button_letter_spacing = $this->shortcode_atts["{$option_name}_letter_spacing"];
            $button_letter_spacing_tablet = $this->shortcode_atts["{$option_name}_letter_spacing_tablet"];
            $button_letter_spacing_phone = $this->shortcode_atts["{$option_name}_letter_spacing_phone"];
            $button_use_icon = $this->shortcode_atts["{$option_name}_use_icon"];
            $button_icon = $this->shortcode_atts["{$option_name}_icon"];
            $button_icon_color = $this->shortcode_atts["{$option_name}_icon_color"];
            $button_icon_placement = $this->shortcode_atts["{$option_name}_icon_placement"];
            $button_on_hover = $this->shortcode_atts["{$option_name}_on_hover"];
            $button_text_color_hover = $this->shortcode_atts["{$option_name}_text_color_hover"];
            $button_bg_color_hover = $this->shortcode_atts["{$option_name}_bg_color_hover"];
            $button_border_color_hover = $this->shortcode_atts["{$option_name}_border_color_hover"];
            $button_border_radius_hover = $this->shortcode_atts["{$option_name}_border_radius_hover"];
            $button_letter_spacing_hover = $this->shortcode_atts["{$option_name}_letter_spacing_hover"];
            $button_letter_spacing_hover_tablet = $this->shortcode_atts["{$option_name}_letter_spacing_hover_tablet"];
            $button_letter_spacing_hover_phone = $this->shortcode_atts["{$option_name}_letter_spacing_hover_phone"];
            if ('on' === $button_custom) {
                $button_text_size = '' === $button_text_size || 'px' === $button_text_size ? '20px' : $button_text_size;
                $button_text_size = '' !== $button_text_size && false === strpos($button_text_size, 'px') ? $button_text_size . 'px' : $button_text_size;
                $css_element = !empty($option_settings['css']['main']) ? $option_settings['css']['main'] : $this->main_css_element . ' .et_pb_button';
                $css_element_processed = et_is_builder_plugin_active() ? $css_element : 'body #page-container ' . $css_element;
                if ('' !== $button_bg_color && et_is_builder_plugin_active()) {
                    $button_bg_color .= ' !important';
                }
                $main_element_styles = sprintf('%1$s
					%2$s
					%3$s
					%4$s
					%5$s
					%6$s
					%7$s
					%8$s
					%9$s', '' !== $button_text_color ? sprintf('color:%1$s !important;', $button_text_color) : '', '' !== $button_bg_color ? sprintf('background:%1$s;', $button_bg_color) : '', '' !== $button_border_width && 'px' !== $button_border_width ? sprintf('border-width:%1$s !important;', et_builder_process_range_value($button_border_width)) : '', '' !== $button_border_color ? sprintf('border-color:%1$s;', $button_border_color) : '', '' !== $button_border_radius && 'px' !== $button_border_radius ? sprintf('border-radius:%1$s;', et_builder_process_range_value($button_border_radius)) : '', '' !== $button_letter_spacing && 'px' !== $button_letter_spacing ? sprintf('letter-spacing:%1$s;', et_builder_process_range_value($button_letter_spacing)) : '', '' !== $button_text_size && 'px' !== $button_text_size ? sprintf('font-size:%1$s;', et_builder_process_range_value($button_text_size)) : '', '' !== $button_font ? et_builder_set_element_font($button_font, true) : '', 'off' === $button_on_hover ? sprintf('padding-left:%1$s; padding-right: %2$s;', 'left' === $button_icon_placement ? '2em' : '0.7em', 'left' === $button_icon_placement ? '0.7em' : '2em') : '');
                self::set_style($function_name, array('selector' => $css_element_processed, 'declaration' => rtrim($main_element_styles)));
                $main_element_styles_hover = sprintf('%1$s
					%2$s
					%3$s
					%4$s
					%5$s
					%6$s', '' !== $button_text_color_hover ? sprintf('color:%1$s !important;', $button_text_color_hover) : '', '' !== $button_bg_color_hover ? sprintf('background:%1$s !important;', $button_bg_color_hover) : '', '' !== $button_border_color_hover ? sprintf('border-color:%1$s !important;', $button_border_color_hover) : '', '' !== $button_border_radius_hover ? sprintf('border-radius:%1$s;', et_builder_process_range_value($button_border_radius_hover)) : '', '' !== $button_letter_spacing_hover ? sprintf('letter-spacing:%1$spx;', $button_letter_spacing_hover) : '', 'off' === $button_on_hover ? '' : sprintf('padding-left:%1$s; padding-right: %2$s;', 'left' === $button_icon_placement ? '2em' : '0.7em', 'left' === $button_icon_placement ? '0.7em' : '2em'));
                self::set_style($function_name, array('selector' => $css_element_processed . ':hover', 'declaration' => rtrim($main_element_styles_hover)));
                if ('off' === $button_use_icon) {
                    $main_element_styles_after = 'display:none !important;';
                    $no_icon_styles = 'padding: 0.3em 1em !important;';
                    self::set_style($function_name, array('selector' => $css_element . ',' . $css_element . ':hover', 'declaration' => rtrim($no_icon_styles)));
                } else {
                    $button_icon_code = '' !== $button_icon ? str_replace(';', '', str_replace('&#x', '', html_entity_decode(et_pb_process_font_icon($button_icon)))) : '';
                    $int_font_size = intval(str_replace('px', '', $button_text_size));
                    if ('' !== $button_text_size) {
                        $button_icon_size = '35' !== $button_icon_code ? $button_text_size : $int_font_size * 1.6 . 'px';
                    }
                    $main_element_styles_after = sprintf('%1$s
						%2$s
						%3$s
						%4$s
						%5$s
						%6$s
						%7$s', '' !== $button_icon_color ? sprintf('color:%1$s;', $button_icon_color) : '', '' !== $button_icon_code ? sprintf('line-height:%1$s;', '35' !== $button_icon_code ? '1.7em' : '1em') : '', '' !== $button_icon_code ? sprintf('font-size:%1$s !important;', $button_icon_size) : '', sprintf('opacity:%1$s;', 'on' === $button_on_hover ? '0' : '1'), 'off' !== $button_on_hover && '' !== $button_icon_code ? sprintf('margin-left:%1$s;left:%2$s;', 'left' === $button_icon_placement ? '0' : '-1em', 'left' === $button_icon_placement ? '1em' : 'auto') : '', 'off' === $button_on_hover ? sprintf('margin-left:%1$s;left:%2$s;', 'left' === $button_icon_placement ? '0' : '.3em', 'left' === $button_icon_placement ? '0.15em' : 'auto') : '', 'on' === $button_use_icon ? 'display: inline-block;' : '');
                    $hover_after_styles = sprintf('%1$s
						%2$s
						%3$s', '' !== $button_icon_code ? sprintf('margin-left:%1$s;', '35' !== $button_icon_code ? '.3em' : '0') : '', '' !== $button_icon_code ? sprintf('left:%1$s;margin-left:%2$s;', 'left' === $button_icon_placement ? '0.15em' : 'auto', '35' !== $button_icon_code ? '.3em' : '0') : '', 'on' === $button_on_hover ? 'opacity: 1;' : '');
                    self::set_style($function_name, array('selector' => $css_element_processed . ':hover:after', 'declaration' => rtrim($hover_after_styles)));
                    if ('' === $button_icon) {
                        $default_icons_size = $int_font_size * 1.6 . 'px';
                        $custom_icon_size = $button_text_size;
                        self::set_style($function_name, array('selector' => $css_element_processed . ':after', 'declaration' => sprintf('font-size:%1$s;', $default_icons_size)));
                        self::set_style($function_name, array('selector' => 'body.et_button_custom_icon #page-container ' . $css_element . ':after', 'declaration' => sprintf('font-size:%1$s;', $custom_icon_size)));
                    }
                }
                foreach (array('tablet', 'phone') as $device) {
                    $current_media_query = 'tablet' === $device ? 'max_width_980' : 'max_width_767';
                    $current_text_size = 'tablet' === $device ? et_builder_process_range_value($button_text_size_tablet) : et_builder_process_range_value($button_text_size_phone);
                    $current_letter_spacing = 'tablet' === $device ? et_builder_process_range_value($button_letter_spacing_tablet) : et_builder_process_range_value($button_letter_spacing_phone);
                    $current_letter_spacing_hover = 'tablet' === $device ? et_builder_process_range_value($button_letter_spacing_hover_tablet) : et_builder_process_range_value($button_letter_spacing_hover_phone);
                    if ('' !== $current_text_size && '0px' !== $current_text_size || '' !== $current_letter_spacing) {
                        self::set_style($function_name, array('selector' => $css_element_processed . ',' . $css_element_processed . ':after', 'declaration' => sprintf('%1$s
								%2$s', '' !== $current_text_size && '0px' !== $current_text_size ? sprintf('font-size:%1$s !important;', $current_text_size) : '', '' !== $current_letter_spacing ? sprintf('letter-spacing:%1$s;', $current_letter_spacing) : ''), 'media_query' => ET_Builder_Element::get_media_query($current_media_query)));
                    }
                    if ('' !== $current_letter_spacing_hover) {
                        self::set_style($function_name, array('selector' => $css_element_processed . ':hover', 'declaration' => sprintf('letter-spacing:%1$s;', $current_letter_spacing_hover), 'media_query' => ET_Builder_Element::get_media_query($current_media_query)));
                    }
                }
                self::set_style($function_name, array('selector' => $css_element_processed . ':after', 'declaration' => rtrim($main_element_styles_after)));
            }
        }
    }
コード例 #4
0
ファイル: functions.php プロジェクト: smoobs/gft
function et_pb_generate_responsive_css($values_array, $css_selector, $css_property, $function_name, $additional_css = '')
{
    if (!empty($values_array)) {
        foreach ($values_array as $device => $current_value) {
            if ('' === $current_value) {
                continue;
            }
            $declaration = '';
            // value can be provided as a string or array in following format - array( 'property_1' => 'value_1', 'property_2' => 'property_2', ... , 'property_n' => 'value_n' )
            if (is_array($current_value) && !empty($current_value)) {
                foreach ($current_value as $this_property => $this_value) {
                    if ('' === $this_value) {
                        continue;
                    }
                    $declaration .= sprintf('%1$s: %2$s%3$s', $this_property, esc_html(et_builder_process_range_value($this_value)), '' !== $additional_css ? $additional_css : ';');
                }
            } else {
                $declaration = sprintf('%1$s: %2$s%3$s', $css_property, esc_html(et_builder_process_range_value($current_value)), '' !== $additional_css ? $additional_css : ';');
            }
            if ('' === $declaration) {
                continue;
            }
            $style = array('selector' => $css_selector, 'declaration' => $declaration);
            if ('desktop' !== $device) {
                $current_media_query = 'tablet' === $device ? 'max_width_980' : 'max_width_767';
                $style['media_query'] = ET_Builder_Element::get_media_query($current_media_query);
            }
            ET_Builder_Element::set_style($function_name, $style);
        }
    }
}
コード例 #5
0
    function shortcode_callback($atts, $content = null, $function_name)
    {
        $type = $this->shortcode_atts['type'];
        $specialty_columns = $this->shortcode_atts['specialty_columns'];
        $saved_specialty_column_type = $this->shortcode_atts['saved_specialty_column_type'];
        global $et_specialty_column_type, $et_pb_column_backgrounds, $et_pb_column_paddings, $et_pb_column_inner_backgrounds, $et_pb_column_inner_paddings, $et_pb_columns_counter, $et_pb_columns_inner_counter, $keep_column_padding_mobile;
        if ('et_pb_column_inner' !== $function_name) {
            $et_specialty_column_type = $type;
            $array_index = $et_pb_columns_counter;
            $backgrounds_array = $et_pb_column_backgrounds;
            $paddings_array = $et_pb_column_paddings;
            $et_pb_columns_counter++;
        } else {
            $array_index = $et_pb_columns_inner_counter;
            $backgrounds_array = $et_pb_column_inner_backgrounds;
            $paddings_array = $et_pb_column_inner_paddings;
            $et_pb_columns_inner_counter++;
        }
        $background_color = isset($backgrounds_array[$array_index][0]) ? $backgrounds_array[$array_index][0] : '';
        $background_img = isset($backgrounds_array[$array_index][1]) ? $backgrounds_array[$array_index][1] : '';
        $padding_values = isset($paddings_array[$array_index]) ? $paddings_array[$array_index] : array();
        if ('' !== $background_color && 'rgba(0,0,0,0)' !== $background_color) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => sprintf('background-color:%s;', esc_attr($background_color))));
        }
        if ('' !== $background_img) {
            ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%%', 'declaration' => sprintf('background-image:url(%s);', esc_attr($background_img))));
        }
        if (!empty($padding_values)) {
            foreach ($padding_values as $position => $value) {
                if ('' !== $value) {
                    $element_style = array('selector' => '%%order_class%%', 'declaration' => sprintf('%1$s:%2$s;', esc_html($position), esc_html(et_builder_process_range_value($value))));
                    if ('on' !== $keep_column_padding_mobile) {
                        $element_style['media_query'] = ET_Builder_Element::get_media_query('min_width_981');
                    }
                    ET_Builder_Element::set_style($function_name, $element_style);
                }
            }
        }
        if ('et_pb_column_inner' === $function_name) {
            $et_specialty_column_type = '' !== $saved_specialty_column_type ? $saved_specialty_column_type : $et_specialty_column_type;
            switch ($et_specialty_column_type) {
                case '1_2':
                    if ('1_2' === $type) {
                        $type = '1_4';
                    }
                    break;
                case '2_3':
                    if ('1_2' === $type) {
                        $type = '1_3';
                    }
                    break;
                case '3_4':
                    if ('1_2' === $type) {
                        $type = '3_8';
                    } else {
                        if ('1_3' === $type) {
                            $type = '1_4';
                        }
                    }
                    break;
            }
        }
        $inner_class = 'et_pb_column_inner' === $function_name ? ' et_pb_column_inner' : '';
        $class = 'et_pb_column_' . $type . $inner_class;
        $inner_content = do_shortcode(et_pb_fix_shortcodes($content));
        $class .= '' == trim($inner_content) ? ' et_pb_column_empty' : '';
        $class = ET_Builder_Element::add_module_order_class($class, $function_name);
        $class .= 'et_pb_column_inner' !== $function_name && '' !== $specialty_columns ? ' et_pb_specialty_column' : '';
        $output = sprintf('<div class="et_pb_column %1$s">
				%2$s
			</div> <!-- .et_pb_column -->', esc_attr($class), $inner_content);
        return $output;
    }