BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
www
/
wp-content
/
plugins
/
porto-functionality
/
shortcodes
/
lib
📤 Upload
📝 New File
📁 New Folder
Close
Editing: functions.php
<?php function porto_shortcode_template( $name = false ) { if ( ! $name ) { return false; } if ( $overridden_template = locate_template( 'vc_templates/' . $name . '.php' ) ) { return $overridden_template; } else { // If neither the child nor parent theme have overridden the template, // we load the template from the 'templates' sub-directory of the directory this file is in return PORTO_SHORTCODES_TEMPLATES . $name . '.php'; } } function porto_shortcode_woo_template( $name = false ) { if ( ! $name ) { return false; } if ( $overridden_template = locate_template( 'vc_templates/' . $name . '.php' ) ) { return $overridden_template; } else { // If neither the child nor parent theme have overridden the template, // we load the template from the 'templates' sub-directory of the directory this file is in return PORTO_SHORTCODES_WOO_TEMPLATES . $name . '.php'; } } function porto_shortcode_extract_class( $el_class ) { $output = ''; if ( $el_class ) { $output = ' ' . str_replace( '.', '', $el_class ); } return $output; } function porto_shortcode_end_block_comment( $string ) { return WP_DEBUG ? '<!-- END ' . $string . ' -->' : ''; } function porto_shortcode_format_content( $content ) { return wpautop( wptexturize( $content ) ); } function porto_shortcode_image_resize( $attach_id, $img_url, $width, $height, $crop = false ) { // this is an attachment, so we have the ID $image_src = array(); if ( $attach_id ) { $image_src = wp_get_attachment_image_src( $attach_id, 'full' ); $actual_file_path = get_attached_file( $attach_id ); // this is not an attachment, let's use the image url } elseif ( $img_url ) { $file_path = parse_url( $img_url ); $actual_file_path = $_SERVER['DOCUMENT_ROOT'] . $file_path['path']; $actual_file_path = ltrim( $file_path['path'], '/' ); $actual_file_path = rtrim( ABSPATH, '/' ) . $file_path['path']; $orig_size = getimagesize( $actual_file_path ); $image_src[0] = $img_url; $image_src[1] = $orig_size[0]; $image_src[2] = $orig_size[1]; } if ( ! empty( $actual_file_path ) ) { $file_info = pathinfo( $actual_file_path ); $extension = '.' . $file_info['extension']; // the image path without the extension $no_ext_path = $file_info['dirname'] . '/' . $file_info['filename']; $cropped_img_path = $no_ext_path . '-' . $width . 'x' . $height . $extension; // checking if the file size is larger than the target size // if it is smaller or the same size, stop right here and return if ( $image_src[1] > $width || $image_src[2] > $height ) { // the file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match) if ( file_exists( $cropped_img_path ) ) { $cropped_img_url = str_replace( basename( $image_src[0] ), basename( $cropped_img_path ), $image_src[0] ); $vt_image = array( 'url' => $cropped_img_url, 'width' => $width, 'height' => $height, ); return $vt_image; } // $crop = false if ( ! $crop ) { // calculate the size proportionaly $proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height ); $resized_img_path = $no_ext_path . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension; // checking if the file already exists if ( file_exists( $resized_img_path ) ) { $resized_img_url = str_replace( basename( $image_src[0] ), basename( $resized_img_path ), $image_src[0] ); $vt_image = array( 'url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1], ); return $vt_image; } } // no cache files - let's finally resize it $img_editor = wp_get_image_editor( $actual_file_path ); if ( is_wp_error( $img_editor ) || is_wp_error( $img_editor->resize( $width, $height, $crop ) ) ) { return array( 'url' => '', 'width' => '', 'height' => '', ); } $new_img_path = $img_editor->generate_filename(); if ( is_wp_error( $img_editor->save( $new_img_path ) ) ) { return array( 'url' => '', 'width' => '', 'height' => '', ); } if ( ! is_string( $new_img_path ) ) { return array( 'url' => '', 'width' => '', 'height' => '', ); } $new_img_size = getimagesize( $new_img_path ); $new_img = str_replace( basename( $image_src[0] ), basename( $new_img_path ), $image_src[0] ); // resized output $vt_image = array( 'url' => $new_img, 'width' => $new_img_size[0], 'height' => $new_img_size[1], ); return $vt_image; } // default output - without resizing $vt_image = array( 'url' => $image_src[0], 'width' => $image_src[1], 'height' => $image_src[2], ); return $vt_image; } return false; } function porto_shortcode_get_image_by_size( $params = array( 'post_id' => null, 'attach_id' => null, 'thumb_size' => 'thumbnail', 'class' => '', ) ) { //array( 'post_id' => $post_id, 'thumb_size' => $grid_thumb_size ) if ( ( ! isset( $params['attach_id'] ) || null == $params['attach_id'] ) && ( ! isset( $params['post_id'] ) || null == $params['post_id'] ) ) { return false; } $post_id = isset( $params['post_id'] ) ? $params['post_id'] : 0; if ( $post_id ) { $attach_id = get_post_thumbnail_id( $post_id ); } else { $attach_id = $params['attach_id']; } $thumb_size = $params['thumb_size']; $thumb_class = ( isset( $params['class'] ) && $params['class'] ) ? $params['class'] . ' ' : ''; global $_wp_additional_image_sizes; $thumbnail = ''; if ( is_string( $thumb_size ) && ( ( ! empty( $_wp_additional_image_sizes[ $thumb_size ] ) && is_array( $_wp_additional_image_sizes[ $thumb_size ] ) ) || in_array( $thumb_size, array( 'thumbnail', 'thumb', 'medium', 'large', 'full', ) ) ) ) { $thumbnail = wp_get_attachment_image( $attach_id, $thumb_size, false, array( 'class' => $thumb_class . 'attachment-' . $thumb_size ) ); } elseif ( $attach_id ) { if ( is_string( $thumb_size ) ) { preg_match_all( '/\d+/', $thumb_size, $thumb_matches ); if ( isset( $thumb_matches[0] ) ) { $thumb_size = array(); if ( count( $thumb_matches[0] ) > 1 ) { $thumb_size[] = $thumb_matches[0][0]; // width $thumb_size[] = $thumb_matches[0][1]; // height } elseif ( count( $thumb_matches[0] ) > 0 && count( $thumb_matches[0] ) < 2 ) { $thumb_size[] = $thumb_matches[0][0]; // width $thumb_size[] = $thumb_matches[0][0]; // height } else { $thumb_size = false; } } } if ( is_array( $thumb_size ) ) { // Resize image to custom size $p_img = porto_shortcode_image_resize( $attach_id, null, $thumb_size[0], $thumb_size[1], true ); $alt = trim( strip_tags( get_post_meta( $attach_id, '_wp_attachment_image_alt', true ) ) ); $attachment = get_post( $attach_id ); if ( ! empty( $attachment ) ) { $title = trim( strip_tags( $attachment->post_title ) ); if ( empty( $alt ) ) { $alt = trim( strip_tags( $attachment->post_excerpt ) ); // If not, Use the Caption } if ( empty( $alt ) ) { $alt = $title; } // Finally, use the title if ( $p_img ) { $img_class = ''; //if ( $grid_layout == 'thumbnail' ) $img_class = ' no_bottom_margin'; class="'.$img_class.'" $thumbnail = '<img class="' . esc_attr( $thumb_class ) . '" src="' . esc_url( $p_img['url'] ) . '" width="' . esc_attr( $p_img['width'] ) . '" height="' . esc_attr( $p_img['height'] ) . '" alt="' . esc_attr( $alt ) . '" title="' . esc_attr( $title ) . '" />'; } } } } $p_img_large = wp_get_attachment_image_src( $attach_id, 'large' ); return apply_filters( 'vc_wpb_getimagesize', array( 'thumbnail' => $thumbnail, 'p_img_large' => $p_img_large, ), $attach_id, $params ); } function porto_vc_animation_type() { return array( 'type' => 'porto_animation_type', 'heading' => __( 'Animation Type', 'porto-functionality' ), 'param_name' => 'animation_type', 'group' => __( 'Animation', 'porto-functionality' ), ); } function porto_vc_animation_duration() { return array( 'type' => 'textfield', 'heading' => __( 'Animation Duration', 'porto-functionality' ), 'param_name' => 'animation_duration', 'description' => __( 'numerical value (unit: milliseconds)', 'porto-functionality' ), 'value' => '1000', 'group' => __( 'Animation', 'porto-functionality' ), ); } function porto_vc_animation_delay() { return array( 'type' => 'textfield', 'heading' => __( 'Animation Delay', 'porto-functionality' ), 'param_name' => 'animation_delay', 'description' => __( 'numerical value (unit: milliseconds)', 'porto-functionality' ), 'value' => '0', 'group' => __( 'Animation', 'porto-functionality' ), ); } function porto_vc_animation_reveal_clr() { return array( 'type' => 'colorpicker', 'heading' => __( 'Animation Color', 'porto-functionality' ), 'param_name' => 'animation_reveal_clr', 'dependency' => array( 'element' => 'animation_type', 'value' => array( 'revealDirTop', 'revealDirDown', 'revealDirLeft', 'revealDirRight' ), ), 'group' => __( 'Animation', 'porto-functionality' ), ); } function porto_vc_custom_class() { return array( 'type' => 'textfield', 'heading' => __( 'Extra class name', 'porto-functionality' ), 'param_name' => 'el_class', 'description' => __( 'If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'porto-functionality' ), ); } function porto_vc_product_slider_fields( $condition_val = 'products-slider', $dots_style_default = '' ) { $left = is_rtl() ? 'right' : 'left'; $right = is_rtl() ? 'left' : 'right'; return array( array( 'type' => 'checkbox', 'heading' => __( 'Show Nav', 'porto-functionality' ), 'param_name' => 'navigation', 'std' => 'yes', 'dependency' => array( 'element' => 'view', 'value' => array( $condition_val ), ), 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'group' => __( 'Slider Options', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Nav Position', 'porto-functionality' ), 'param_name' => 'nav_pos', 'value' => array( __( 'Middle', 'porto-functionality' ) => '', __( 'Middle of Images', 'porto-functionality' ) => 'nav-center-images-only', __( 'Top', 'porto-functionality' ) => 'show-nav-title', __( 'Bottom', 'porto-functionality' ) => 'nav-bottom', ), 'dependency' => array( 'element' => 'navigation', 'not_empty' => true, ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Nav Inside/Outside?', 'porto-functionality' ), 'param_name' => 'nav_pos2', 'value' => array( __( 'Default', 'porto-functionality' ) => '', __( 'Inside', 'porto-functionality' ) => 'nav-pos-inside', __( 'Outside', 'porto-functionality' ) => 'nav-pos-outside', ), 'dependency' => array( 'element' => 'nav_pos', 'value' => array( '', 'nav-center-images-only' ), ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Nav Type', 'porto-functionality' ), 'param_name' => 'nav_type', 'value' => porto_sh_commons( 'carousel_nav_types' ), 'dependency' => array( 'element' => 'nav_pos', 'value' => array( '', 'nav-bottom', 'nav-center-images-only' ), ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'checkbox', 'heading' => __( 'Show Nav on Hover', 'porto-functionality' ), 'param_name' => 'show_nav_hover', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array( 'element' => 'navigation', 'not_empty' => true, ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_button_group', 'heading' => __( 'Navigation Visible', 'porto-functionality' ), 'param_name' => 'nav_visible', 'value' => array( 'block' => array( 'title' => esc_html__( 'Show', 'porto-functionality' ), 'icon' => 'far fa-eye', ), 'none' => array( 'title' => esc_html__( 'none', 'porto-functionality' ), 'icon' => 'far fa-eye-slash', ), ), 'dependency' => array( 'element' => 'navigation', 'not_empty' => true, ), 'std' => 'block', 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-nav:not(.disabled)' => 'display: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Nav Font Size(px)', 'porto-functionality' ), 'param_name' => 'nav_fs', 'dependency' => array( 'element' => 'navigation', 'not_empty' => true, ), 'responsive' => true, 'separator' => 'before', 'qa_selector' => '.owl-nav > .owl-prev', 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'font-size: {{VALUE}}px !important;line-height: {{VALUE}}px !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Nav Width', 'porto-functionality' ), 'param_name' => 'nav_width', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( '', 'rounded-nav', 'big-nav', 'nav-style-3' ), ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'width: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Nav Height', 'porto-functionality' ), 'param_name' => 'nav_height', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( '', 'rounded-nav', 'big-nav', 'nav-style-3' ), ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'height: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Border Radius', 'porto-functionality' ), 'param_name' => 'nav_br', 'units' => array( 'px', '%' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( '', 'rounded-nav', 'big-nav', 'nav-style-3' ), ), 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'border-radius: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Nav Origin X Position', 'porto-functionality' ), 'param_name' => 'navs_h_origin', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'nav_pos', 'value' => array( '', 'show-nav-title', 'nav-center-images-only' ), ), 'separator' => 'before', 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-nav' => "{$left}: {{VALUE}}{{UNIT}} !important; {$right}: unset !important;", ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Nav Origin Y Position', 'porto-functionality' ), 'param_name' => 'nav_v_pos', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'nav_pos', 'value' => array( '', 'show-nav-title' ), ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-nav' => 'top: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Horizontal Nav Position', 'porto-functionality' ), 'param_name' => 'nav_h_pos', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'nav_pos', 'value' => array( '', 'show-nav-title', 'nav-center-images-only' ), ), 'range' => array( 'px' => array( 'min' => -100, 'max' => 100, ), 'rem' => array( 'min' => -10, 'max' => 10, ), '%' => array( 'min' => -100, 'max' => 100, ) ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-carousel:not(.show-nav-title) .owl-nav button.owl-prev, {{WRAPPER}}.owl-carousel:not(.show-nav-title) .owl-nav button.owl-prev' => "{$left}: {{VALUE}}{{UNIT}} !important;", '{{WRAPPER}}.show-nav-title .owl-nav button.owl-prev, {{WRAPPER}} .owl-carousel.show-nav-title .owl-nav button.owl-prev' => "{$left}: {{VALUE}}{{UNIT}} !important;", '{{WRAPPER}} .owl-carousel:not(.show-nav-title) .owl-nav button.owl-next' => "{$right}: {{VALUE}}{{UNIT}} !important;", '{{WRAPPER}}.owl-carousel:not(.show-nav-title) .owl-nav button.owl-next' => "{$right}: {{VALUE}}{{UNIT}} !important;", ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'nav_color', 'heading' => __( 'Nav Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'navigation', 'not_empty' => true, ), 'separator' => 'before', 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'color: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'nav_h_color', 'heading' => __( 'Hover Nav Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'navigation', 'not_empty' => true, ), 'selectors' => array( '{{WRAPPER}} .owl-nav button:not(.disabled):hover' => 'color: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'nav_bg_color', 'heading' => __( 'Background Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( '', 'big-nav', 'nav-style-3' ), ), 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'background-color: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'nav_h_bg_color', 'heading' => __( 'Hover Background Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( '', 'big-nav', 'nav-style-3' ), ), 'selectors' => array( '{{WRAPPER}} .owl-nav button:not(.disabled):hover' => 'background-color: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'nav_br_color', 'heading' => __( 'Nav Border Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( 'rounded-nav' ), ), 'selectors' => array( '{{WRAPPER}} .owl-nav button' => 'border-color: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'nav_h_br_color', 'heading' => __( 'Hover Nav Border Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'nav_type', 'value' => array( 'rounded-nav' ), ), 'selectors' => array( '{{WRAPPER}} .owl-nav button:not(.disabled):hover' => 'border-color: {{VALUE}} !important;', ), 'group' => __( 'Navigation', 'porto-functionality' ), ), array( 'type' => 'checkbox', 'heading' => __( 'Show Dots', 'porto-functionality' ), 'param_name' => 'pagination', 'std' => '', 'dependency' => array( 'element' => 'view', 'value' => array( $condition_val ), ), 'separator' => 'before', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'qa_selector' => '.owl-dots > .owl-dot:first-child', 'group' => __( 'Slider Options', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Dots Position', 'porto-functionality' ), 'param_name' => 'dots_pos', 'std' => '', 'value' => array( __( 'Bottom', 'porto-functionality' ) => '', __( 'Top Right', 'porto-functionality' ) => 'show-dots-title-right', __( 'Inside Right', 'porto-functionality' ) => 'nav-inside', __( 'Inside Center', 'porto-functionality' ) => 'nav-inside nav-inside-center', __( 'Inside Left', 'porto-functionality' ) => 'nav-inside nav-inside-left', __( 'Custom', 'porto-functionality' ) => 'custom-dots', ), 'dependency' => array( 'element' => 'pagination', 'not_empty' => true, ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Dots Style', 'porto-functionality' ), 'param_name' => 'dots_style', 'std' => $dots_style_default, 'value' => array( __( 'Default', 'porto-functionality' ) => '', __( 'Circle inner dot', 'porto-functionality' ) => 'dots-style-1', ), 'dependency' => array( 'element' => 'pagination', 'not_empty' => true, ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Dots Top Position', 'porto-functionality' ), 'param_name' => 'dots_pos_top', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'dots_pos', 'value' => 'custom-dots', ), 'responsive' => true, 'separator' => 'before', 'selectors' => array( '{{WRAPPER}} .owl-dots' => 'top: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Dots Bottom Position', 'porto-functionality' ), 'param_name' => 'dots_pos_bottom', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'dots_pos', 'value' => 'custom-dots', ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-dots' => 'bottom: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Dots Left Position', 'porto-functionality' ), 'param_name' => 'dots_pos_left', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'dots_pos', 'value' => 'custom-dots', ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-dots' => 'left: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'porto_number', 'heading' => __( 'Dots Right Position', 'porto-functionality' ), 'param_name' => 'dots_pos_right', 'units' => array( 'px', 'rem', '%' ), 'dependency' => array( 'element' => 'dots_pos', 'value' => 'custom-dots', ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-dots' => 'right: {{VALUE}}{{UNIT}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'porto_button_group', 'heading' => __( 'Dots Visible', 'porto-functionality' ), 'param_name' => 'dots_visible', 'value' => array( 'block' => array( 'title' => esc_html__( 'Show', 'porto-functionality' ), 'icon' => 'far fa-eye', ), 'none' => array( 'title' => esc_html__( 'none', 'porto-functionality' ), 'icon' => 'far fa-eye-slash', ), ), 'dependency' => array( 'element' => 'pagination', 'not_empty' => true, ), 'responsive' => true, 'selectors' => array( '{{WRAPPER}} .owl-dots:not(.disabled)' => 'display: {{VALUE}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'porto_image_select', 'heading' => __( 'Dots Translate X', 'porto-functionality' ), 'param_name' => 'dots_original', 'value' => array( 'transform/left.jpg' => '-50%', 'transform/center.jpg' => '', 'transform/right.jpg' => '50%', ), 'dependency' => array( 'element' => 'dots_pos', 'value' => 'custom-dots', ), 'std' => '', 'selectors' => array( '{{WRAPPER}} .owl-dots:not(.disabled)' => 'transform: translateX( {{VALUE}} ) !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'dots_br_color', 'heading' => __( 'Dots Color', 'porto-functionality' ), 'separator' => 'before', 'dependency' => array( 'element' => 'dots_style', 'value' => 'dots-style-1', ), 'selectors' => array( '{{WRAPPER}} .owl-dot span' => 'border-color: {{VALUE}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'dots_abr_color', 'heading' => __( 'Dots Active Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'dots_style', 'value' => 'dots-style-1', ), 'selectors' => array( '{{WRAPPER}} .owl-dot.active span, {{WRAPPER}} .owl-dot:hover span' => 'color: {{VALUE}} !important; border-color: {{VALUE}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'dots_bg_color', 'heading' => __( 'Dots Color', 'porto-functionality' ), 'separator' => 'before', 'dependency' => array( 'element' => 'dots_style', 'value_not_equal_to' => 'dots-style-1', ), 'selectors' => array( '{{WRAPPER}} .owl-dot span' => 'background-color: {{VALUE}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'colorpicker', 'param_name' => 'dots_abg_color', 'heading' => __( 'Dots Active Color', 'porto-functionality' ), 'dependency' => array( 'element' => 'dots_style', 'value_not_equal_to' => 'dots-style-1', ), 'selectors' => array( '{{WRAPPER}} .owl-dot.active span, {{WRAPPER}} .owl-dot:hover span' => 'background-color: {{VALUE}} !important;', ), 'group' => __( 'Dots Style', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Auto Play', 'porto-functionality' ), 'param_name' => 'autoplay', 'value' => array( __( 'Theme Options', 'porto-functionality' ) => '', __( 'Yes', 'porto-functionality' ) => 'yes', __( 'No', 'porto-functionality' ) => 'no', ), 'std' => '', 'dependency' => array( 'element' => 'view', 'value' => array( $condition_val ), ), 'separator' => 'before', 'group' => __( 'Slider Options', 'porto-functionality' ), ), array( 'type' => 'textfield', 'heading' => __( 'Auto Play Timeout', 'porto-functionality' ), 'param_name' => 'autoplay_timeout', 'dependency' => array( 'element' => 'autoplay', 'value' => array( 'yes' ), ), 'value' => 5000, 'group' => __( 'Slider Options', 'porto-functionality' ), ), array( 'type' => 'dropdown', 'heading' => __( 'Enable Loop', 'porto-functionality' ), 'param_name' => 'set_loop', 'value' => array( __( 'Theme Options', 'porto-functionality' ) => '', __( 'Yes', 'porto-functionality' ) => 'yes', __( 'No', 'porto-functionality' ) => 'no', ), 'dependency' => array( 'element' => 'view', 'value' => array( $condition_val ), ), 'std' => '', 'group' => __( 'Slider Options', 'porto-functionality' ), ), array( 'type' => 'checkbox', 'heading' => __( 'Enable Flick Type', 'porto-functionality' ), 'param_name' => 'enable_flick', 'hint' => '<img src="' . PORTO_HINT_URL . 'wd_carousel_flick.gif"/>', 'dependency' => array( 'element' => 'view', 'value' => array( $condition_val ), ), 'separator' => 'before', 'description' => sprintf( __( 'This option shows the carousel at the container\'s width. %1$sRead More%2$s', 'porto-functionality' ), '<a href="https://www.portotheme.com/wordpress/porto/documentation/how-to-use-porto-flick-carousel" target="_blank">', '</a>' ), 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'group' => __( 'Slider Options', 'porto-functionality' ), ), array( 'type' => 'number', 'heading' => __( 'Opacity of Inactive item', 'porto-functionality' ), 'param_name' => 'flick_opacity', 'dependency' => array( 'element' => 'enable_flick', 'not_empty' => true, ), 'min' => 0, 'max' => 1, 'std' => 0.5, 'selectors' => array( '{{WRAPPER}} .owl-item:not(.active)' => 'opacity: {{VALUE}}', ), 'group' => __( 'Slider Options', 'porto-functionality' ), ), ); } if ( ! function_exists( 'porto_sh_commons' ) ) { function porto_sh_commons( $asset = '' ) { switch ( $asset ) { case 'toggle_type': return Porto_ShSharedLibrary::getToggleType(); case 'toggle_size': return Porto_ShSharedLibrary::getToggleSize(); case 'align': return Porto_ShSharedLibrary::getTextAlign(); case 'blog_layout': return Porto_ShSharedLibrary::getBlogLayout(); case 'blog_grid_columns': return Porto_ShSharedLibrary::getBlogGridColumns(); case 'portfolio_layout': return Porto_ShSharedLibrary::getPortfolioLayout(); case 'portfolio_grid_columns': return Porto_ShSharedLibrary::getPortfolioGridColumns(); case 'portfolio_grid_view': return Porto_ShSharedLibrary::getPortfolioGridView(); case 'member_columns': return Porto_ShSharedLibrary::getMemberColumns(); case 'member_view': return Porto_ShSharedLibrary::getMemberView(); case 'custom_zoom': return Porto_ShSharedLibrary::getCustomZoom(); case 'products_view_mode': return Porto_ShSharedLibrary::getProductsViewMode(); case 'products_columns': return Porto_ShSharedLibrary::getProductsColumns(); case 'products_column_width': return Porto_ShSharedLibrary::getProductsColumnWidth(); case 'products_addlinks_pos': return Porto_ShSharedLibrary::getProductsAddlinksPos(); case 'product_view_mode': return Porto_ShSharedLibrary::getProductViewMode(); case 'content_boxes_bg_type': return Porto_ShSharedLibrary::getContentBoxesBgType(); case 'content_boxes_style': return Porto_ShSharedLibrary::getContentBoxesStyle(); case 'content_box_effect': return Porto_ShSharedLibrary::getContentBoxEffect(); case 'colors': return Porto_ShSharedLibrary::getColors(); case 'testimonial_styles': return Porto_ShSharedLibrary::getTestimonialStyles(); case 'contextual': return Porto_ShSharedLibrary::getContextual(); case 'position': return Porto_ShSharedLibrary::getPosition(); case 'size': return Porto_ShSharedLibrary::getSize(); case 'trigger': return Porto_ShSharedLibrary::getTrigger(); case 'bootstrap_columns': return Porto_ShSharedLibrary::getBootstrapColumns(); case 'price_boxes_style': return Porto_ShSharedLibrary::getPriceBoxesStyle(); case 'price_boxes_size': return Porto_ShSharedLibrary::getPriceBoxesSize(); case 'sort_style': return Porto_ShSharedLibrary::getSortStyle(); case 'sort_by': return Porto_ShSharedLibrary::getSortBy(); case 'grid_columns': return Porto_ShSharedLibrary::getGridColumns(); case 'preview_time': return Porto_ShSharedLibrary::getPreviewTime(); case 'preview_position': return Porto_ShSharedLibrary::getPreviewPosition(); case 'popup_action': return Porto_ShSharedLibrary::getPopupAction(); case 'feature_box_style': return Porto_ShSharedLibrary::getFeatureBoxStyle(); case 'feature_box_dir': return Porto_ShSharedLibrary::getFeatureBoxDir(); case 'section_skin': return Porto_ShSharedLibrary::getSectionSkin(); case 'section_color_scale': return Porto_ShSharedLibrary::getSectionColorScale(); case 'section_text_color': return Porto_ShSharedLibrary::getSectionTextColor(); case 'separator_icon_style': return Porto_ShSharedLibrary::getSeparatorIconStyle(); case 'separator_icon_size': return Porto_ShSharedLibrary::getSeparatorIconSize(); case 'separator_icon_pos': return Porto_ShSharedLibrary::getSeparatorIconPosition(); case 'carousel_nav_types': return Porto_ShSharedLibrary::getCarouselNavTypes(); case 'image_sizes': return Porto_ShSharedLibrary::getImageSizes(); case 'masonry_layouts': return Porto_ShSharedLibrary::getMasonryLayouts(); case 'easing_methods': return Porto_ShSharedLibrary::getEasingMethods(); case 'divider_type': return Porto_ShSharedLibrary::getDividerType(); case 'shape_divider': return Porto_ShSharedLibrary::getShapeDivider(); default: return array(); } } } function porto_vc_woo_order_by() { $result = array( '', esc_html__( 'Date', 'porto-functionality' ) => 'date', esc_html__( 'ID', 'porto-functionality' ) => 'id', esc_html__( 'Menu order', 'porto-functionality' ) => 'menu_order', esc_html__( 'Title', 'porto-functionality' ) => 'title', esc_html__( 'Random', 'porto-functionality' ) => 'rand', esc_html__( 'Price', 'porto-functionality' ) => 'price', esc_html__( 'Popularity', 'porto-functionality' ) => 'popularity', ); if ( class_exists( 'Woocommerce' ) && wc_review_ratings_enabled() ) { $result[ esc_html__( 'Rating', 'porto-functionality' ) ] = 'rating'; } return $result; } function porto_woo_sort_by() { $result = array( __( 'All', 'porto-functionality' ) => 'all', __( 'Popular', 'porto-functionality' ) => 'popular', __( 'Date', 'porto-functionality' ) => 'date', __( 'On Sale', 'porto-functionality' ) => 'onsale', ); if ( class_exists( 'Woocommerce' ) && wc_review_ratings_enabled() ) { $result[ __( 'Rating', 'porto-functionality' ) ] = 'rating'; } return $result; } function porto_vc_order_by() { return array( '', esc_html__( 'Date', 'porto-functionality' ) => 'date', esc_html__( 'ID', 'porto-functionality' ) => 'ID', esc_html__( 'Author', 'porto-functionality' ) => 'author', esc_html__( 'Title', 'porto-functionality' ) => 'title', esc_html__( 'Modified', 'porto-functionality' ) => 'modified', esc_html__( 'Random', 'porto-functionality' ) => 'rand', esc_html__( 'Comment count', 'porto-functionality' ) => 'comment_count', esc_html__( 'Menu order', 'porto-functionality' ) => 'menu_order', ); } function porto_vc_woo_order_way() { return array( '', __( 'Descending', 'porto-functionality' ) => 'DESC', __( 'Ascending', 'porto-functionality' ) => 'ASC', ); } if ( ! class_exists( 'Porto_ShSharedLibrary' ) ) { class Porto_ShSharedLibrary { public static function getTextAlign() { return array( __( 'None', 'porto-functionality' ) => '', __( 'Left', 'porto-functionality' ) => 'left', __( 'Right', 'porto-functionality' ) => 'right', __( 'Center', 'porto-functionality' ) => 'center', __( 'Justify', 'porto-functionality' ) => 'justify', ); } public static function getToggleType() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Simple', 'porto-functionality' ) => 'toggle-simple', ); } public static function getToggleSize() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Small', 'porto-functionality' ) => 'toggle-sm', __( 'Large', 'porto-functionality' ) => 'toggle-lg', ); } public static function getBlogLayout() { return array( __( 'Full', 'porto-functionality' ) => 'full', __( 'Large', 'porto-functionality' ) => 'large', __( 'Large Alt', 'porto-functionality' ) => 'large-alt', __( 'Medium', 'porto-functionality' ) => 'medium', __( 'Medium Alt', 'porto-functionality' ) => 'medium-alt', __( 'Grid', 'porto-functionality' ) => 'grid', __( 'Grid - Creative', 'porto-functionality' ) => 'creative', __( 'Masonry', 'porto-functionality' ) => 'masonry', __( 'Masonry - Creative', 'porto-functionality' ) => 'masonry-creative', __( 'Timeline', 'porto-functionality' ) => 'timeline', __( 'Slider', 'porto-functionality' ) => 'slider', ); } public static function getBlogGridColumns() { return array( __( '1', 'porto-functionality' ) => '1', __( '2', 'porto-functionality' ) => '2', __( '3', 'porto-functionality' ) => '3', __( '4', 'porto-functionality' ) => '4', __( '5', 'porto-functionality' ) => '5', __( '6', 'porto-functionality' ) => '6', ); } public static function getPortfolioLayout() { return array( __( 'Grid', 'porto-functionality' ) => 'grid', __( 'Grid - Creative', 'porto-functionality' ) => 'creative', __( 'Masonry', 'porto-functionality' ) => 'masonry', __( 'Masonry - Creative', 'porto-functionality' ) => 'masonry-creative', __( 'Timeline', 'porto-functionality' ) => 'timeline', __( 'Medium', 'porto-functionality' ) => 'medium', __( 'Large', 'porto-functionality' ) => 'large', __( 'Full', 'porto-functionality' ) => 'full', __( 'Full Screen', 'porto-functionality' ) => 'fullscreen', ); } public static function getPortfolioGridColumns() { return array( __( '1', 'porto-functionality' ) => '1', __( '2', 'porto-functionality' ) => '2', __( '3', 'porto-functionality' ) => '3', __( '4', 'porto-functionality' ) => '4', __( '5', 'porto-functionality' ) => '5', __( '6', 'porto-functionality' ) => '6', ); } public static function getPortfolioGridView() { return array( __( 'Standard', 'porto-functionality' ) => 'classic', __( 'Default', 'porto-functionality' ) => 'default', __( 'No Margin', 'porto-functionality' ) => 'full', __( 'Out of Image', 'porto-functionality' ) => 'outimage', ); } public static function getMemberView() { return array( __( 'Standard', 'porto-functionality' ) => 'classic', __( 'Text On Image', 'porto-functionality' ) => 'onimage', __( 'Text Out Image', 'porto-functionality' ) => 'outimage', __( 'Text & Cat Out Image', 'porto-functionality' ) => 'outimage_cat', __( 'Simple & Out Image', 'porto-functionality' ) => 'simple', ); } public static function getCustomZoom() { return array( __( 'Zoom', 'porto-functionality' ) => 'zoom', __( 'No_Zoom', 'porto-functionality' ) => 'no_zoom', ); } public static function getMemberColumns() { return array( __( '2', 'porto-functionality' ) => '2', __( '3', 'porto-functionality' ) => '3', __( '4', 'porto-functionality' ) => '4', __( '5', 'porto-functionality' ) => '5', __( '6', 'porto-functionality' ) => '6', ); } public static function getProductsViewMode() { return array( __( 'Grid', 'porto-functionality' ) => 'grid', __( 'Grid - Divider Line', 'porto-functionality' ) => 'divider', __( 'Grid - Creative', 'porto-functionality' ) => 'creative', __( 'List', 'porto-functionality' ) => 'list', __( 'Slider', 'porto-functionality' ) => 'products-slider', ); } public static function getProductsColumns() { return array( '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7 ' . __( '(without sidebar)', 'porto-functionality' ) => 7, '8 ' . __( '(without sidebar)', 'porto-functionality' ) => 8, ); } public static function getProductsColumnWidth() { return array( __( 'Default', 'porto-functionality' ) => '', '1/1' . __( ' of content width', 'porto-functionality' ) => 1, '1/2' . __( ' of content width', 'porto-functionality' ) => 2, '1/3' . __( ' of content width', 'porto-functionality' ) => 3, '1/4' . __( ' of content width', 'porto-functionality' ) => 4, '1/5' . __( ' of content width', 'porto-functionality' ) => 5, '1/6' . __( ' of content width', 'porto-functionality' ) => 6, '1/7' . __( ' of content width (without sidebar)', 'porto-functionality' ) => 7, '1/8' . __( ' of content width (without sidebar)', 'porto-functionality' ) => 8, ); } public static function getProductsAddlinksPos() { return array( __( 'Theme Options', 'porto-functionality' ) => '', __( 'Default', 'porto-functionality' ) => 'default', __( 'Default - Show Links on Hover', 'porto-functionality' ) => 'onhover', __( 'Add to Cart, Quick View on Image', 'porto-functionality' ) => 'outimage_aq_onimage', __( 'Add to Cart, Quick View on Image with Padding', 'porto-functionality' ) => 'outimage_aq_onimage2', __( 'Links On Image', 'porto-functionality' ) => 'awq_onimage', __( 'Out of Image', 'porto-functionality' ) => 'outimage', __( 'On Image', 'porto-functionality' ) => 'onimage', __( 'On Image with Overlay 1', 'porto-functionality' ) => 'onimage2', __( 'On Image with Overlay 2', 'porto-functionality' ) => 'onimage3', __( 'Show Quantity Input', 'porto-functionality' ) => 'quantity', ); } public static function getProductViewMode() { return array( __( 'Grid', 'porto-functionality' ) => 'grid', __( 'List', 'porto-functionality' ) => 'list', ); } public static function getColors() { return array( '' => 'custom', __( 'Primary', 'porto-functionality' ) => 'primary', __( 'Secondary', 'porto-functionality' ) => 'secondary', __( 'Tertiary', 'porto-functionality' ) => 'tertiary', __( 'Quaternary', 'porto-functionality' ) => 'quaternary', __( 'Dark', 'porto-functionality' ) => 'dark', __( 'Light', 'porto-functionality' ) => 'light', ); } public static function getContentBoxesBgType() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Flat', 'porto-functionality' ) => 'featured-boxes-flat', __( 'Custom', 'porto-functionality' ) => 'featured-boxes-custom', ); } public static function getContentBoxesStyle() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Style 1', 'porto-functionality' ) => 'featured-boxes-style-1', __( 'Style 2', 'porto-functionality' ) => 'featured-boxes-style-2', __( 'Style 3', 'porto-functionality' ) => 'featured-boxes-style-3', __( 'Style 4', 'porto-functionality' ) => 'featured-boxes-style-4', __( 'Style 5', 'porto-functionality' ) => 'featured-boxes-style-5', __( 'Style 6', 'porto-functionality' ) => 'featured-boxes-style-6', __( 'Style 7', 'porto-functionality' ) => 'featured-boxes-style-7', __( 'Style 8', 'porto-functionality' ) => 'featured-boxes-style-8', ); } public static function getContentBoxEffect() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Effect 1', 'porto-functionality' ) => 'featured-box-effect-1', __( 'Effect 2', 'porto-functionality' ) => 'featured-box-effect-2', __( 'Effect 3', 'porto-functionality' ) => 'featured-box-effect-3', __( 'Effect 4', 'porto-functionality' ) => 'featured-box-effect-4', __( 'Effect 5', 'porto-functionality' ) => 'featured-box-effect-5', __( 'Effect 6', 'porto-functionality' ) => 'featured-box-effect-6', __( 'Effect 7', 'porto-functionality' ) => 'featured-box-effect-7', ); } public static function getTestimonialStyles() { return array( __( 'Style 1', 'porto-functionality' ) => '', __( 'Style 2', 'porto-functionality' ) => 'testimonial-style-2', __( 'Style 3', 'porto-functionality' ) => 'testimonial-style-3', __( 'Style 4', 'porto-functionality' ) => 'testimonial-style-4', __( 'Style 5', 'porto-functionality' ) => 'testimonial-style-5', __( 'Style 6', 'porto-functionality' ) => 'testimonial-style-6', ); } public static function getContextual() { return array( __( 'None', 'porto-functionality' ) => '', __( 'Success', 'porto-functionality' ) => 'success', __( 'Info', 'porto-functionality' ) => 'info', __( 'Warning', 'porto-functionality' ) => 'warning', __( 'Danger', 'porto-functionality' ) => 'danger', ); } public static function getPosition() { return array( __( 'Top', 'porto-functionality' ) => 'top', __( 'Right', 'porto-functionality' ) => 'right', __( 'Bottom', 'porto-functionality' ) => 'bottom', __( 'Left', 'porto-functionality' ) => 'left', ); } public static function getSize() { return array( __( 'Normal', 'porto-functionality' ) => '', __( 'Large', 'porto-functionality' ) => 'lg', __( 'Small', 'porto-functionality' ) => 'sm', __( 'Extra Small', 'porto-functionality' ) => 'xs', ); } public static function getTrigger() { return array( __( 'Click', 'porto-functionality' ) => 'click', __( 'Hover', 'porto-functionality' ) => 'hover', __( 'Focus', 'porto-functionality' ) => 'focus', ); } public static function getBootstrapColumns() { return array( 6, 4, 3, 2, 1 ); } public static function getPriceBoxesStyle() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Alternative', 'porto-functionality' ) => 'flat', __( 'Classic', 'porto-functionality' ) => 'classic', ); } public static function getPriceBoxesSize() { return array( __( 'Normal', 'porto-functionality' ) => '', __( 'Small', 'porto-functionality' ) => 'sm', ); } public static function getSortStyle() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Style 2', 'porto-functionality' ) => 'style-2', ); } public static function getSortBy() { return array( __( 'Original Order', 'porto-functionality' ) => 'original-order', __( 'Popular Value', 'porto-functionality' ) => 'popular', ); } public static function getGridColumns() { return array( __( '12 columns - 1/1', 'porto-functionality' ) => '12', __( '11 columns - 11/12', 'porto-functionality' ) => '11', __( '10 columns - 5/6', 'porto-functionality' ) => '10', __( '9 columns - 3/4', 'porto-functionality' ) => '9', __( '8 columns - 2/3', 'porto-functionality' ) => '8', __( '7 columns - 7/12', 'porto-functionality' ) => '7', __( '6 columns - 1/2', 'porto-functionality' ) => '6', __( '5 columns - 5/12', 'porto-functionality' ) => '5', __( '4 columns - 1/3', 'porto-functionality' ) => '4', __( '3 columns - 1/4', 'porto-functionality' ) => '3', __( '2 columns - 1/6', 'porto-functionality' ) => '2', __( '1 columns - 1/12', 'porto-functionality' ) => '1', ); } public static function getMasonryLayouts() { return apply_filters( 'porto_creative_grid_layout_images', array( 'cg/1.jpg' => '1', 'cg/2.jpg' => '2', 'cg/3.jpg' => '3', 'cg/4.jpg' => '4', 'cg/5.jpg' => '5', 'cg/6.jpg' => '6', 'cg/7.jpg' => '7', 'cg/8.jpg' => '8', 'cg/9.jpg' => '9', 'cg/10.jpg' => '10', 'cg/11.jpg' => '11', 'cg/12.jpg' => '12', 'cg/13.jpg' => '13', 'cg/14.jpg' => '14', ) ); } public static function getPreviewTime() { return array( __( 'Normal', 'porto-functionality' ) => '', __( 'Short', 'porto-functionality' ) => 'short', __( 'Long', 'porto-functionality' ) => 'long', ); } public static function getPreviewPosition() { return array( __( 'Center', 'porto-functionality' ) => '', __( 'Top', 'porto-functionality' ) => 'top', __( 'Bottom', 'porto-functionality' ) => 'bottom', ); } public static function getPopupAction() { return array( __( 'Open URL (Link)', 'porto-functionality' ) => 'open_link', __( 'Popup Video or Map', 'porto-functionality' ) => 'popup_iframe', __( 'Popup Block', 'porto-functionality' ) => 'popup_block', ); } public static function getFeatureBoxStyle() { return array( __( 'Style 1', 'porto-functionality' ) => '', __( 'Style 2', 'porto-functionality' ) => 'feature-box-style-2', __( 'Style 3', 'porto-functionality' ) => 'feature-box-style-3', __( 'Style 4', 'porto-functionality' ) => 'feature-box-style-4', __( 'Style 5', 'porto-functionality' ) => 'feature-box-style-5', __( 'Style 6', 'porto-functionality' ) => 'feature-box-style-6', ); } public static function getFeatureBoxDir() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Reverse', 'porto-functionality' ) => 'reverse', ); } public static function getSectionSkin() { return array( __( 'Default', 'porto-functionality' ) => 'default', __( 'Transparent', 'porto-functionality' ) => 'parallax', __( 'Primary', 'porto-functionality' ) => 'primary', __( 'Secondary', 'porto-functionality' ) => 'secondary', __( 'Tertiary', 'porto-functionality' ) => 'tertiary', __( 'Quaternary', 'porto-functionality' ) => 'quaternary', __( 'Dark', 'porto-functionality' ) => 'dark', __( 'Light', 'porto-functionality' ) => 'light', ); } public static function getSectionColorScale() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Scale 1', 'porto-functionality' ) => 'scale-1', __( 'Scale 2', 'porto-functionality' ) => 'scale-2', __( 'Scale 3', 'porto-functionality' ) => 'scale-3', __( 'Scale 4', 'porto-functionality' ) => 'scale-4', __( 'Scale 5', 'porto-functionality' ) => 'scale-5', __( 'Scale 6', 'porto-functionality' ) => 'scale-6', __( 'Scale 7', 'porto-functionality' ) => 'scale-7', __( 'Scale 8', 'porto-functionality' ) => 'scale-8', __( 'Scale 9', 'porto-functionality' ) => 'scale-9', ); } public static function getSectionTextColor() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Dark', 'porto-functionality' ) => 'dark', __( 'Light', 'porto-functionality' ) => 'light', ); } public static function getSeparatorIconStyle() { return array( __( 'Style 1', 'porto-functionality' ) => '', __( 'Style 2', 'porto-functionality' ) => 'style-2', __( 'Style 3', 'porto-functionality' ) => 'style-3', __( 'Style 4', 'porto-functionality' ) => 'style-4', ); } public static function getSeparatorIconSize() { return array( __( 'Normal', 'porto-functionality' ) => '', __( 'Small', 'porto-functionality' ) => 'sm', __( 'Large', 'porto-functionality' ) => 'lg', ); } public static function getSeparatorIconPosition() { return array( __( 'Center', 'porto-functionality' ) => '', __( 'Left', 'porto-functionality' ) => 'left', __( 'Right', 'porto-functionality' ) => 'right', ); } public static function getCarouselNavTypes() { return array( __( 'Default', 'porto-functionality' ) => '', __( 'Rounded', 'porto-functionality' ) => 'rounded-nav', __( 'Big & Full Width', 'porto-functionality' ) => 'big-nav', __( 'Simple Arrow 1', 'porto-functionality' ) => 'nav-style-1', __( 'Simple Arrow 2', 'porto-functionality' ) => 'nav-style-2', __( 'Simple Arrow 3', 'porto-functionality' ) => 'nav-style-4', __( 'Square Grey Arrow', 'porto-functionality' ) => 'nav-style-3', ); } public static function getEasingMethods() { return array( __( 'easingSinusoidalIn', 'porto-functionality' ) => 'easingSinusoidalIn', __( 'easingSinusoidalOut', 'porto-functionality' ) => 'easingSinusoidalOut', __( 'easingSinusoidalInOut', 'porto-functionality' ) => 'easingSinusoidalInOut', __( 'easingQuadraticIn', 'porto-functionality' ) => 'easingQuadraticIn', __( 'easingQuadraticOut', 'porto-functionality' ) => 'easingQuadraticOut', __( 'easingQuadraticInOut', 'porto-functionality' ) => 'easingQuadraticInOut', __( 'easingCubicIn', 'porto-functionality' ) => 'easingCubicIn', __( 'easingCubicOut', 'porto-functionality' ) => 'easingCubicOut', __( 'easingCubicInOut', 'porto-functionality' ) => 'easingCubicInOut', __( 'easingQuarticIn', 'porto-functionality' ) => 'easingQuarticIn', __( 'easingQuarticOut', 'porto-functionality' ) => 'easingQuarticOut', __( 'easingQuarticInOut', 'porto-functionality' ) => 'easingQuarticInOut', __( 'easingQuinticIn', 'porto-functionality' ) => 'easingQuinticIn', __( 'easingQuinticOut', 'porto-functionality' ) => 'easingQuinticOut', __( 'easingQuinticInOut', 'porto-functionality' ) => 'easingQuinticInOut', __( 'easingExponentialIn', 'porto-functionality' ) => 'easingExponentialIn', __( 'easingExponentialOut', 'porto-functionality' ) => 'easingExponentialOut', __( 'easingExponentialInOut', 'porto-functionality' ) => 'easingExponentialInOut', __( 'easingCircularIn', 'porto-functionality' ) => 'easingCircularIn', __( 'easingCircularOut', 'porto-functionality' ) => 'easingCircularOut', __( 'easingCircularInOut', 'porto-functionality' ) => 'easingCircularInOut', __( 'easingBackIn', 'porto-functionality' ) => 'easingBackIn', __( 'easingBackOut', 'porto-functionality' ) => 'easingBackOut', __( 'easingBackInOut', 'porto-functionality' ) => 'easingBackInOut', ); } public static function getShapeDivider() { return array( 'triangle' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path d="M500,98.9L0,6.1V0h1000v6.1L500,98.9z"></path></svg>', 'slant' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0 100 L0 0 L100 0 Z"></path></svg>', 'bigtriangle' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path d="M738,99l262-93V0H0v5.6L738,99z"></path></svg>', 'split' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 20" preserveAspectRatio="none"><path d="M0,0v3c0,0,393.8,0,483.4,0c9.2,0,16.6,7.4,16.6,16.6c0-9.1,7.4-16.6,16.6-16.6C606.2,3,1000,3,1000,3V0H0z"></path></svg>', 'curved' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0 100 C 60 0 75 0 100 100 Z"></path></svg>', 'big-half-circle' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none" ><path d="M0 100 C40 0 60 0 100 100 Z"></path></svg>', 'clouds' => '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M-5 100 Q 0 20 5 100 Z"></path><path d="M0 100 Q 5 0 10 100"></path><path d="M5 100 Q 10 30 15 100"></path><path d="M10 100 Q 15 10 20 100"></path> <path d="M15 100 Q 20 30 25 100"></path><path d="M20 100 Q 25 -10 30 100"></path><path d="M25 100 Q 30 10 35 100"></path><path d="M30 100 Q 35 30 40 100"></path><path d="M35 100 Q 40 10 45 100"></path><path d="M40 100 Q 45 50 50 100"></path><path d="M45 100 Q 50 20 55 100"></path><path d="M50 100 Q 55 40 60 100"></path><path d="M55 100 Q 60 60 65 100"></path><path d="M60 100 Q 65 50 70 100"></path><path d="M65 100 Q 70 20 75 100"></path><path d="M70 100 Q 75 45 80 100"></path><path d="M75 100 Q 80 30 85 100"></path><path d="M80 100 Q 85 20 90 100"></path><path d="M85 100 Q 90 50 95 100"></path><path d="M90 100 Q 95 25 100 100"></path><path d="M95 100 Q 100 15 105 100 Z"></path></svg>', 'horizon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -0.5 1024 178" preserveAspectRatio="none"><path d="M1024 177.371H0V.219l507.699 133.939L1024 .219v177.152z" opacity="0.12"></path><path d="M1024 177.781H0V39.438l507.699 94.925L1024 39.438v138.343z" opacity="0.18"></path><path d="M1024 177.781H0v-67.892l507.699 24.474L1024 109.889v67.892z" opacity="0.24"></path><path d="M1024 177.781H0v-3.891l507.699-39.526L1024 173.889v3.892z"></path></svg>', 'waves' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 54 1024 162" preserveAspectRatio="none"><path class="st3" d="M1024.1 54.368c-4 .2-8 .4-11.9.7-206.5 15.1-227.9 124.4-434.5 141.6-184.9 15.5-226.3-41.1-404.9-21.3-64 7.2-121.9 20.8-172.7 37.9v3.044h1024V54.368z"></path></svg>', 'waves_opacity' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 216" preserveAspectRatio="none"><path d="M1024.1 1.068c-19.4-.5-38.7-1.6-57.7-.3-206.6 15-248.5 126.6-455 143.8-184.8 15.5-285.7-60.9-464.3-41.3-16.9 1.8-32.5 4.4-47.1 7.6l.1 105.2h1024v-215z" opacity="0.12"></path><path d="M1024.1 20.068c-30.2-1.6-59.6-1.6-86.8.4-206.6 15.1-197.3 122.6-403.9 139.8-184.9 15.5-278.5-58.2-457.1-38.4-28.3 3.2-53.5 8.2-76.2 14.6v79.744h1024V20.068z" opacity="0.18"></path><path d="M1024.1 46.668c-22.2-.3-43.8.2-64.2 1.7-206.6 15-197.8 112.5-404.4 129.7-184.8 15.5-226.8-51.1-405.4-31.3-54.8 6-104.9 18.3-150 33.7v35.744h1024V46.668z" style="opacity="0.24"></path><path d="M1024.1 54.368c-4 .2-8 .4-11.9.7-206.5 15.1-227.9 124.4-434.5 141.6-184.9 15.5-226.3-41.1-404.9-21.3-64 7.2-121.9 20.8-172.7 37.9v3.044h1024V54.368z"></path></svg>', 'waves_brush' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.5 27.8" preserveAspectRatio="none"><path d="M283.5,9.7c0,0-7.3,4.3-14,4.6c-6.8,0.3-12.6,0-20.9-1.5c-11.3-2-33.1-10.1-44.7-5.7 s-12.1,4.6-18,7.4c-6.6,3.2-20,9.6-36.6,9.3C131.6,23.5,99.5,7.2,86.3,8c-1.4,0.1-6.6,0.8-10.5,2c-3.8,1.2-9.4,3.8-17,4.7 c-3.2,0.4-8.3,1.1-14.2,0.9c-1.5-0.1-6.3-0.4-12-1.6c-5.7-1.2-11-3.1-15.8-3.7C6.5,9.2,0,10.8,0,10.8V0h283.5V9.7z M260.8,11.3 c-0.7-1-2-0.4-4.3-0.4c-2.3,0-6.1-1.2-5.8-1.1c0.3,0.1,3.1,1.5,6,1.9C259.7,12.2,261.4,12.3,260.8,11.3z M242.4,8.6 c0,0-2.4-0.2-5.6-0.9c-3.2-0.8-10.3-2.8-15.1-3.5c-8.2-1.1-15.8,0-15.1,0.1c0.8,0.1,9.6-0.6,17.6,1.1c3.3,0.7,9.3,2.2,12.4,2.7 C239.9,8.7,242.4,8.6,242.4,8.6z M185.2,8.5c1.7-0.7-13.3,4.7-18.5,6.1c-2.1,0.6-6.2,1.6-10,2c-3.9,0.4-8.9,0.4-8.8,0.5 c0,0.2,5.8,0.8,11.2,0c5.4-0.8,5.2-1.1,7.6-1.6C170.5,14.7,183.5,9.2,185.2,8.5z M199.1,6.9c0.2,0-0.8-0.4-4.8,1.1 c-4,1.5-6.7,3.5-6.9,3.7c-0.2,0.1,3.5-1.8,6.6-3C197,7.5,199,6.9,199.1,6.9z M283,6c-0.1,0.1-1.9,1.1-4.8,2.5s-6.9,2.8-6.7,2.7 c0.2,0,3.5-0.6,7.4-2.5C282.8,6.8,283.1,5.9,283,6z M31.3,11.6c0.1-0.2-1.9-0.2-4.5-1.2s-5.4-1.6-7.8-2C15,7.6,7.3,8.5,7.7,8.6 C8,8.7,15.9,8.3,20.2,9.3c2.2,0.5,2.4,0.5,5.7,1.6S31.2,11.9,31.3,11.6z M73,9.2c0.4-0.1,3.5-1.6,8.4-2.6c4.9-1.1,8.9-0.5,8.9-0.8 c0-0.3-1-0.9-6.2-0.3S72.6,9.3,73,9.2z M71.6,6.7C71.8,6.8,75,5.4,77.3,5c2.3-0.3,1.9-0.5,1.9-0.6c0-0.1-1.1-0.2-2.7,0.2 C74.8,5.1,71.4,6.6,71.6,6.7z M93.6,4.4c0.1,0.2,3.5,0.8,5.6,1.8c2.1,1,1.8,0.6,1.9,0.5c0.1-0.1-0.8-0.8-2.4-1.3 C97.1,4.8,93.5,4.2,93.6,4.4z M65.4,11.1c-0.1,0.3,0.3,0.5,1.9-0.2s2.6-1.3,2.2-1.2s-0.9,0.4-2.5,0.8C65.3,10.9,65.5,10.8,65.4,11.1 z M34.5,12.4c-0.2,0,2.1,0.8,3.3,0.9c1.2,0.1,2,0.1,2-0.2c0-0.3-0.1-0.5-1.6-0.4C36.6,12.8,34.7,12.4,34.5,12.4z M152.2,21.1 c-0.1,0.1-2.4-0.3-7.5-0.3c-5,0-13.6-2.4-17.2-3.5c-3.6-1.1,10,3.9,16.5,4.1C150.5,21.6,152.3,21,152.2,21.1z"></path><path d="M269.6,18c-0.1-0.1-4.6,0.3-7.2,0c-7.3-0.7-17-3.2-16.6-2.9c0.4,0.3,13.7,3.1,17,3.3 C267.7,18.8,269.7,18,269.6,18z"></path><path d="M227.4,9.8c-0.2-0.1-4.5-1-9.5-1.2c-5-0.2-12.7,0.6-12.3,0.5c0.3-0.1,5.9-1.8,13.3-1.2 S227.6,9.9,227.4,9.8z"></path><path d="M204.5,13.4c-0.1-0.1,2-1,3.2-1.1c1.2-0.1,2,0,2,0.3c0,0.3-0.1,0.5-1.6,0.4 C206.4,12.9,204.6,13.5,204.5,13.4z"></path><path d="M201,10.6c0-0.1-4.4,1.2-6.3,2.2c-1.9,0.9-6.2,3.1-6.1,3.1c0.1,0.1,4.2-1.6,6.3-2.6 S201,10.7,201,10.6z"></path><path d="M154.5,26.7c-0.1-0.1-4.6,0.3-7.2,0c-7.3-0.7-17-3.2-16.6-2.9c0.4,0.3,13.7,3.1,17,3.3 C152.6,27.5,154.6,26.8,154.5,26.7z"></path><path d="M41.9,19.3c0,0,1.2-0.3,2.9-0.1c1.7,0.2,5.8,0.9,8.2,0.7c4.2-0.4,7.4-2.7,7-2.6 c-0.4,0-4.3,2.2-8.6,1.9c-1.8-0.1-5.1-0.5-6.7-0.4S41.9,19.3,41.9,19.3z"></path><path d="M75.5,12.6c0.2,0.1,2-0.8,4.3-1.1c2.3-0.2,2.1-0.3,2.1-0.5c0-0.1-1.8-0.4-3.4,0 C76.9,11.5,75.3,12.5,75.5,12.6z"></path><path d="M15.6,13.2c0-0.1,4.3,0,6.7,0.5c2.4,0.5,5,1.9,5,2c0,0.1-2.7-0.8-5.1-1.4 C19.9,13.7,15.7,13.3,15.6,13.2z"></path></svg>', 'hills' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 74 1024 107" preserveAspectRatio="none"><path d="M0 182.086h1024v-77.312c-49.05 20.07-120.525 42.394-193.229 42.086-128.922-.512-159.846-72.294-255.795-72.294-89.088 0-134.656 80.179-245.043 82.022S169.063 99.346 49.971 97.401C32.768 97.094 16.077 99.244 0 103.135v78.951z"></path></svg>', 'hills_opacity' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -0.5 1024 182" preserveAspectRatio="none"><path d="M0 182.086h1024V41.593c-28.058-21.504-60.109-37.581-97.075-37.581-112.845 0-198.144 93.798-289.792 93.798S437.658 6.777 351.846 6.777s-142.234 82.125-238.49 82.125c-63.078 0-75.776-31.744-113.357-53.658L0 182.086z" opacity="0.12"></path><path d="M1024 181.062v-75.878c-39.731 15.872-80.794 27.341-117.658 25.805-110.387-4.506-191.795-109.773-325.53-116.224-109.158-5.12-344.166 120.115-429.466 166.298H1024v-.001z" opacity="0.18"></path><path d="M0 182.086h1024V90.028C966.451 59.103 907.059 16.3 824.115 15.071 690.278 13.023 665.19 102.93 482.099 102.93S202.138-1.62 74.24.019C46.49.326 21.811 4.217 0 9.849v172.237z" opacity="0.24"></path><path d="M0 182.086h1024V80.505c-37.171 19.558-80.691 35.328-139.571 36.25-151.142 2.355-141.619-28.57-298.496-29.184s-138.854 47.002-305.459 43.725C132.813 128.428 91.238 44.563 0 28.179v153.907z" opacity="0.3"></path><path d="M0 182.086h1024v-77.312c-49.05 20.07-120.525 42.394-193.229 42.086-128.922-.512-159.846-72.294-255.795-72.294-89.088 0-134.656 80.179-245.043 82.022S169.063 99.346 49.971 97.401C32.768 97.094 16.077 99.244 0 103.135v78.951z"></path></svg>', 'zigzag' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 5.8" preserveAspectRatio="none"><path d="M5.4.4l5.4 5.3L16.5.4l5.4 5.3L27.5.4 33 5.7 38.6.4l5.5 5.4h.1L49.9.4l5.4 5.3L60.9.4l5.5 5.3L72 .4l5.5 5.3L83.1.4l5.4 5.3L94.1.4l5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3L161 .4l5.4 5.3L172 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3L261 .4l5.4 5.3L272 .4l5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3L361 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.6-5.4 5.5 5.3L461 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1L550 .4l5.4 5.3L561 .4l5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2L650 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2L750 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2L850 .4l5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.4V0H-.2v5.8z"></path></svg>', 'book' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path d="M194,99c186.7,0.7,305-78.3,306-97.2c1,18.9,119.3,97.9,306,97.2c114.3-0.3,194,0.3,194,0.3s0-91.7,0-100c0,0,0,0,0-0 L0,0v99.3C0,99.3,79.7,98.7,194,99z"></path></svg>', 'arrow' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 10" preserveAspectRatio="none"><path d="M350,10L340,0h20L350,10z"></path></svg>', ); } public static function getDividerType() { return array( __( 'None', 'porto-functionality' ) => 'none', __( 'Triangle', 'porto-functionality' ) => 'triangle', __( 'Slant', 'porto-functionality' ) => 'slant', __( 'Triangle Asymmetrical', 'porto-functionality' ) => 'bigtriangle', __( 'Split', 'porto-functionality' ) => 'split', __( 'Curved', 'porto-functionality' ) => 'curved', __( 'Big Half Circle', 'porto-functionality' ) => 'big-half-circle', __( 'Clouds', 'porto-functionality' ) => 'clouds', __( 'Horizon', 'porto-functionality' ) => 'horizon', __( 'Waves', 'porto-functionality' ) => 'waves', __( 'Waves Opacity', 'porto-functionality' ) => 'waves_opacity', __( 'Waves Brush', 'porto-functionality' ) => 'waves_brush', __( 'Hills', 'porto-functionality' ) => 'hills', __( 'Hills Opacity', 'porto-functionality' ) => 'hills_opacity', __( 'Zigzag', 'porto-functionality' ) => 'zigzag', __( 'Book', 'porto-functionality' ) => 'book', __( 'Arrow', 'porto-functionality' ) => 'arrow', __( 'Custom', 'porto-functionality' ) => 'custom', ); } public static function getImageSizes() { global $_wp_additional_image_sizes; $sizes = array( __( 'Default', 'porto-functionality' ) => '', __( 'Full', 'porto-functionality' ) => 'full', ); foreach ( get_intermediate_image_sizes() as $_size ) { if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) { $sizes[ $_size . ' ( ' . get_option( "{$_size}_size_w" ) . 'x' . get_option( "{$_size}_size_h" ) . ( get_option( "{$_size}_crop" ) ? '' : ', false' ) . ' )' ] = $_size; } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) { $sizes[ $_size . ' ( ' . $_wp_additional_image_sizes[ $_size ]['width'] . 'x' . $_wp_additional_image_sizes[ $_size ]['height'] . ( $_wp_additional_image_sizes[ $_size ]['crop'] ? '' : ', false' ) . ' )' ] = $_size; } } return $sizes; } } } function porto_shortcode_widget_title( $params = array( 'title' => '' ) ) { if ( '' == $params['title'] ) { return ''; } $extraclass = ( isset( $params['extraclass'] ) ) ? ' ' . $params['extraclass'] : ''; $output = '<h4 class="wpb_heading' . $extraclass . '">' . $params['title'] . '</h4>'; return apply_filters( 'wpb_widget_title', $output, $params ); } if ( function_exists( 'vc_add_shortcode_param' ) ) { vc_add_shortcode_param( 'porto_animation_type', 'porto_theme_vc_animation_type_field' ); vc_add_shortcode_param( 'porto_theme_animation_type', 'porto_theme_vc_animation_type_field' ); } function porto_theme_vc_animation_type_field( $settings, $value ) { $param_line = '<select name="' . $settings['param_name'] . '" class="wpb_vc_param_value dropdown wpb-input wpb-select ' . $settings['param_name'] . ' ' . $settings['type'] . '">'; $param_line .= '<option value="">none</option>'; $param_line .= '<optgroup label="' . __( 'Attention Seekers', 'porto-functionality' ) . '">'; $options = array( 'bounce', 'flash', 'pulse', 'rubberBand', 'shake', 'swing', 'tada', 'wobble', 'zoomIn' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Bouncing Entrances', 'porto-functionality' ) . '">'; $options = array( 'bounceIn', 'bounceInDown', 'bounceInLeft', 'bounceInRight', 'bounceInUp' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Bouncing Exits', 'porto-functionality' ) . '">'; $options = array( 'bounceOut', 'bounceOutDown', 'bounceOutLeft', 'bounceOutRight', 'bounceOutUp' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Fading Entrances', 'porto-functionality' ) . '">'; $options = array( 'fadeIn', 'fadeInDown', 'fadeInDownBig', 'fadeInLeft', 'fadeInLeftBig', 'fadeInRight', 'fadeInRightBig', 'fadeInUp', 'fadeInUpBig' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Fading Exits', 'porto-functionality' ) . '">'; $options = array( 'fadeOut', 'fadeOutDown', 'fadeOutDownBig', 'fadeOutLeft', 'fadeOutLeftBig', 'fadeOutRight', 'fadeOutRightBig', 'fadeOutUp', 'fadeOutUpBig' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Flippers', 'porto-functionality' ) . '">'; $options = array( 'flip', 'flipInX', 'flipInY', 'flipOutX', 'flipOutY' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Lightspeed', 'porto-functionality' ) . '">'; $options = array( 'lightSpeedIn', 'lightSpeedOut' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Rotating Entrances', 'porto-functionality' ) . '">'; $options = array( 'rotateIn', 'rotateInDownLeft', 'rotateInDownRight', 'rotateInUpLeft', 'rotateInUpRight' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Rotating Exits', 'porto-functionality' ) . '">'; $options = array( 'rotateOut', 'rotateOutDownLeft', 'rotateOutDownRight', 'rotateOutUpLeft', 'rotateOutUpRight' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Sliding Entrances', 'porto-functionality' ) . '">'; $options = array( 'slideInUp', 'slideInDown', 'slideInLeft', 'slideInRight', 'maskUp' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Sliding Exit', 'porto-functionality' ) . '">'; $options = array( 'slideOutUp', 'slideOutDown', 'slideOutLeft', 'slideOutRight' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Specials', 'porto-functionality' ) . '">'; $options = array( 'hinge', 'rollIn', 'rollOut' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '<optgroup label="' . __( 'Reveal with Color', 'porto-functionality' ) . '">'; $options = array( 'revealDirTop', 'revealDirDown', 'revealDirLeft', 'revealDirRight' ); foreach ( $options as $option ) { $selected = ''; if ( $option == $value ) { $selected = ' selected="selected"'; } $param_line .= '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; } $param_line .= '</optgroup>'; $param_line .= '</select>'; return $param_line; } function porto_getCategoryChildsFull( $parent_id, $pos, $array, $level, &$dropdown ) { for ( $i = $pos; $i < count( $array ); $i ++ ) { if ( $array[ $i ]->category_parent == $parent_id ) { $name = str_repeat( '- ', $level ) . $array[ $i ]->name; $value = $array[ $i ]->slug; $dropdown[] = array( 'label' => $name, 'value' => $value, ); porto_getCategoryChildsFull( $array[ $i ]->term_id, 0, $array, $level + 1, $dropdown ); } } } function porto_sc_parse_google_font( $fonts_string ) { if ( ! class_exists( 'Vc_Google_Fonts' ) ) { return false; } $google_fonts_param = new Vc_Google_Fonts(); $field_settings = array(); $fonts_data = $fonts_string ? $google_fonts_param->_vc_google_fonts_parse_attributes( $field_settings, $fonts_string ) : ''; return $fonts_data; } function porto_sc_google_font_styles( $fonts_data ) { $inline_style = ''; if ( $fonts_data ) { $styles = array(); $font_family = explode( ':', $fonts_data['values']['font_family'] ); $styles[] = 'font-family:' . $font_family[0]; $font_styles = explode( ':', $fonts_data['values']['font_style'] ); if ( ! empty( $font_styles[1] ) ) { $styles[] = 'font-weight:' . $font_styles[1]; } if ( ! empty( $font_styles[2] ) ) { $styles[] = 'font-style:' . $font_styles[2]; } foreach ( $styles as $attribute ) { $inline_style .= $attribute . '; '; } } return $inline_style; } function porto_sc_enqueue_google_fonts( $fonts_data ) { global $porto_settings, $porto_google_fonts; if ( ! isset( $porto_google_fonts ) && function_exists( 'porto_settings_google_fonts' ) ) { $fonts = porto_settings_google_fonts(); $porto_google_fonts = array(); foreach ( $fonts as $option => $weights ) { if ( isset( $porto_settings[ $option . '-font' ]['google'] ) && 'false' !== $porto_settings[ $option . '-font' ]['google'] ) { if ( isset( $porto_settings[ $option . '-font' ]['font-family'] ) && $porto_settings[ $option . '-font' ]['font-family'] && ! in_array( $porto_settings[ $option . '-font' ]['font-family'], $porto_google_fonts ) ) { $porto_google_fonts[] = $porto_settings[ $option . '-font' ]['font-family']; } } } } $fonts_str = ''; $fonts_name = ''; foreach ( $fonts_data as $font_data ) { if ( ! isset( $font_data['values']['font_family'] ) ) { continue; } $font_family = explode( ':', $font_data['values']['font_family'] ); if ( in_array( $font_family[0], $porto_google_fonts ) ) { continue; } $porto_google_fonts[] = $font_family[0]; if ( $fonts_str ) { $fonts_str .= '%7C'; } $fonts_str .= $font_data['values']['font_family']; $fonts_name .= $font_family[0]; } if ( ! $fonts_str ) { return; } // Get extra subsets for settings (latin/cyrillic/etc) $charsets = array(); $subsets = ''; if ( isset( $porto_settings['select-google-charset'] ) && $porto_settings['select-google-charset'] && isset( $porto_settings['google-charsets'] ) && $porto_settings['google-charsets'] ) { foreach ( $porto_settings['google-charsets'] as $charset ) { if ( $charset && ! in_array( $charset, $charsets ) ) { $charsets[] = $charset; } } } if ( ! empty( $charsets ) ) { $subsets = '&subset=' . implode( ',', $charsets ); } // We also need to enqueue font from googleapis wp_enqueue_style( 'porto_sc_google_fonts_' . urlencode( $fonts_name ), '//fonts.googleapis.com/css?family=' . $fonts_str . $subsets ); } if ( ! function_exists( 'porto_strip_script_tags' ) ) : function porto_strip_script_tags( $content ) { $content = str_replace( ']]>', ']]>', $content ); $content = preg_replace( '/<script.*?\/script>/s', '', $content ) ? : $content; $content = preg_replace( '/<style.*?\/style>/s', '', $content ) ? : $content; return $content; } endif; if ( ! function_exists( 'porto_shortcode_is_ajax' ) ) : function porto_shortcode_is_ajax() { if ( function_exists( 'mb_strtolower' ) ) { return ( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && mb_strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) == 'xmlhttprequest' ) ? true : false; } else { return ( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) == 'xmlhttprequest' ) ? true : false; } } endif; if ( ! function_exists( 'porto_creative_grid_layout' ) ) : function porto_creative_grid_layout( $layout ) { if ( '1' == $layout ) { return array( array( 'height' => '1', 'width' => '1-2', 'width_md' => '1', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), ); } if ( '2' == $layout ) { return array( array( 'height' => '2-3', 'width' => '1-2', 'width_md' => '1', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-3', 'width' => '1-2', 'width_md' => '1', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), ); } if ( '3' == $layout ) { return array( array( 'height' => '1', 'width' => '1-2', 'width_md' => '1', 'size' => 'large', ), array( 'height' => '1', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), ); } if ( '4' == $layout ) { return array( array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '1', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '5-12', 'width_md' => '1', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '1', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '5-12', 'width_md' => '1', 'size' => 'blog-masonry-small', ), ); } if ( '5' == $layout ) { return array( array( 'height' => '1', 'width' => '2-5', 'width_md' => '1', 'width_lg' => '1-2', 'size' => 'large', ), array( 'height' => '1', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'medium', ), ); } if ( '6' == $layout ) { return array( array( 'height' => '2-3', 'width' => '1-2', 'width_md' => '1', 'width_lg' => '1-2', 'size' => 'large', ), array( 'height' => '2-3', 'width' => '1-4', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1', 'width' => '1-4', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '1-3', 'width' => '1-4', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'blog-grid-small', ), array( 'height' => '1-3', 'width' => '1-4', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'blog-grid-small', ), array( 'height' => '1-3', 'width' => '1-4', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'blog-grid-small', ), ); } if ( '7' == $layout ) { return array( array( 'height' => '1', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-medium', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-medium', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-medium', ), array( 'height' => '1-2', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-medium', ), array( 'height' => '1-2', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'large', ), ); } if ( '8' == $layout ) { return array( array( 'height' => '1', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '1', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'width' => '1-6', 'width_md' => '1-2', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '1-6', 'width_md' => '1-2', 'size' => 'medium', ), ); } if ( '9' == $layout ) { return array( array( 'height' => '1', 'width' => '2-5', 'width_md' => '1', 'width_lg' => '2-3', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-5', 'width_md' => '1-2', 'width_lg' => '1-3', 'size' => 'medium', ), ); } if ( '10' == $layout ) { return array( array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '2-3', 'width_md' => '1', 'size' => 'blog-grid', ), array( 'height' => '1', 'height_md' => '1', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'medium', ), array( 'height' => '1-2', 'height_md' => '1-2', 'width' => '1-3', 'width_md' => '1-2', 'size' => 'medium', ), ); } if ( '11' == $layout ) { return array( array( 'height' => '1', 'width' => '1-2', 'width_md' => '1', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), ); } if ( '12' == $layout ) { return array( array( 'height' => '1', 'width' => '5-12', 'width_md' => '1', 'width_lg' => '1-2', 'size' => 'large', ), array( 'height' => '1', 'width' => '3-12', 'width_md' => '1-2', 'width_lg' => '1-2', 'size' => 'large', ), array( 'height' => '1-2', 'width' => '2-12', 'width_md' => '1-2', 'width_lg' => '1-4', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '2-12', 'width_md' => '1-2', 'width_lg' => '1-4', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '2-12', 'width_md' => '1-2', 'width_lg' => '1-4', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '2-12', 'width_md' => '1-2', 'width_lg' => '1-4', 'size' => 'medium', ), ); } if ( '13' == $layout ) { return array( array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '1-2', 'width_md' => '2-3', 'size' => 'blog-masonry', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '5-12', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '1-3', 'width_md' => '7-12', 'size' => 'blog-masonry-small', ), array( 'height' => '1-2', 'width' => '1-4', 'width_md' => '1-3', 'size' => 'medium', ), array( 'height' => '1-2', 'width' => '5-12', 'width_md' => '2-3', 'size' => 'blog-masonry', ), ); } if ( '14' == $layout ) { return array( array( 'height' => '3-5', 'height_md' => '3-5', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '1', 'height_md' => '4-5', 'width' => '1-2', 'width_md' => '1-2', 'size' => 'blog-masonry', ), array( 'height' => '2-5', 'height_md' => '2-5', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'height' => '3-5', 'height_md' => '3-5', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'blog-masonry-small', ), array( 'height' => '2-5', 'height_md' => '2-5', 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), ); } return apply_filters( 'porto_creative_grid_layouts', false, $layout ); } endif; if ( ! function_exists( 'porto_creative_masonry_layout' ) ) : function porto_creative_masonry_layout( $layout ) { if ( '1' == $layout ) { return array( array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-2', 'width_md' => '1', 'size' => 'large', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), array( 'width' => '1-4', 'width_md' => '1-2', 'size' => 'medium', ), ); } return false; } endif; if ( ! function_exists( 'porto_creative_grid_style' ) ) : function porto_creative_grid_style( $layout, $grid_height, $selector, $spacing = false, $include_style = true, $unit = 'px', $item_selector = '.product-col', $grid_layout = 1 ) { if ( ! $layout ) { return false; } if ( 0 !== strpos( $selector, '#' ) && 0 !== strpos( $selector, '.' ) ) { $selector = '#' . $selector; } global $porto_settings; $widths = array(); $heights = array(); $heights_md = array(); if ( empty( $unit ) ) { $unit = 'px'; } $has_lg_grid = false; foreach ( $layout as $index => $grid ) { if ( ! in_array( $grid['width'] . ',' . $grid['width_md'], $widths ) ) { $widths[] = $grid['width'] . ',' . $grid['width_md']; } if ( isset( $grid['height'] ) && ! in_array( $grid['height'], $heights ) ) { $heights[ $index ] = $grid['height']; } if ( isset( $grid['height_md'] ) && ! in_array( $grid['height_md'], $heights_md ) ) { $heights_md[ $index ] = $grid['height_md']; } if ( isset( $grid['width_lg'] ) ) { $has_lg_grid = true; } } if ( $include_style ) { echo '<style scope="scope">'; } $max_col = 1; foreach ( $widths as $width ) { $width = explode( ',', $width )[0]; $width_arr = explode( '-', $width ); if ( count( $width_arr ) > 1 ) { $width_number = (int) $width_arr[0] / (int) $width_arr[1]; if ( $max_col < $width_arr[1] ) { $max_col = (int) $width_arr[1]; } } else { $width_number = (int) $width_arr[0]; } $max_width = floor( $width_number * 1000000 ) / 10000; echo esc_html( $selector ) . ' .grid-col-' . esc_html( $width ) . '{ flex: 0 0 auto; width: ' . $max_width . '%; }'; } echo esc_html( $selector ) . ' .grid-col-sizer { flex: 0 0 auto; width: ' . ( floor( 1000000 / $max_col ) / 10000 ) . '% }'; foreach ( $heights as $height ) { $height_arr = explode( '-', $height ); if ( count( $height_arr ) > 1 ) { $height_number = (int) $grid_height * (int) $height_arr[0] / (int) $height_arr[1]; } else { $height_number = (int) $grid_height; } echo esc_html( $selector ) . ' .grid-height-' . $height . '{ height: ' . round( $height_number ) . esc_html( $unit ) . ' }'; } if ( $has_lg_grid ) { $widths_lg = array(); echo '@media (max-width: ' . ( $porto_settings['container-width'] + $porto_settings['grid-gutter-width'] - 1 ) . 'px) {'; $max_col = 1; foreach ( $layout as $grid ) { if ( ! in_array( $grid['width_lg'], $widths_lg ) ) { $width_arr = explode( '-', $grid['width_lg'] ); if ( count( $width_arr ) > 1 ) { $width_number = (int) $width_arr[0] / (int) $width_arr[1]; if ( $max_col < $width_arr[1] ) { $max_col = (int) $width_arr[1]; } } else { $width_number = (int) $width_arr[0]; } $max_width = floor( $width_number * 1000000 ) / 10000; echo esc_html( $selector ) . ' .grid-col-lg-' . esc_html( $grid['width_lg'] ) . '{ flex: 0 0 auto; width: ' . $max_width . '%; }'; $widths_lg[] = $grid['width_lg']; } } echo esc_html( $selector ) . ' .grid-col-sizer { flex: 0 0 ' . ( floor( 1000000 / $max_col ) / 10000 ) . '%; width: ' . ( floor( 1000000 / $max_col ) / 10000 ) . '% }'; echo '}'; } echo '@media (max-width: 767px) {'; $max_col = 1; foreach ( $widths as $width ) { $width = explode( ',', $width ); $width_arr = explode( '-', $width[1] ); if ( count( $width_arr ) > 1 ) { $width_number = (int) $width_arr[0] / (int) $width_arr[1]; if ( $max_col < $width_arr[1] ) { $max_col = (int) $width_arr[1]; } } else { $width_number = (int) $width_arr[0]; } $max_width = floor( $width_number * 1000000 ) / 10000; echo esc_html( $selector ) . ' .grid-col-md-' . esc_html( $width[1] ) . '{ flex: 0 0 auto; width: ' . $max_width . '%; }'; } echo esc_html( $selector ) . ' .grid-col-sizer { flex: 0 0 ' . ( floor( 1000000 / $max_col ) / 10000 ) . '%; width: ' . ( floor( 1000000 / $max_col ) / 10000 ) . '% }'; foreach ( $heights as $index => $height ) { if ( isset( $heights_md[ $index ] ) ) { $height_arr = explode( '-', $heights_md[ $index ] ); if ( count( $height_arr ) > 1 ) { $height_number = (int) $height_arr[0] / (int) $height_arr[1] * (int) $grid_height; } else { $height_number = (int) $height_arr[0] * (int) $grid_height; } echo esc_html( $selector ) . ' .grid-height-' . $height . '{ height: ' . $height_number . esc_html( $unit ) . '; }'; } else { $height_arr = explode( '-', $height ); if ( count( $height_arr ) > 1 ) { $height_number = (int) $grid_height * (int) $height_arr[0] / (int) $height_arr[1]; } else { $height_number = (int) $grid_height; } echo esc_html( $selector ) . ' .grid-height-' . $height . '{ height: ' . round( $height_number / 1.5 ) . esc_html( $unit ) . '; }'; } } echo '}'; if ( 9 === (int) $grid_layout ) { echo '@media (min-width: 768px) and (max-width: 991px) {'; echo esc_html( $selector ) . ' .product-col:last-child { display: none; }'; echo '}'; } echo '@media (max-width: 480px) {'; echo esc_html( $selector ) . ' ' . $item_selector . ' { flex: 0 0 auto; width: 100%; }'; echo '}'; if ( false !== $spacing && '' !== $spacing ) { echo esc_html( $selector ) . ' .grid-creative { margin-left: -' . ( (int) $spacing / 2 ) . 'px; margin-right: -' . ( (int) $spacing / 2 ) . 'px; width: calc(100% + ' . intval( $spacing ) . esc_html( $unit ) . ') }'; echo esc_html( $selector ) . ' ' . $item_selector . ' { padding: 0 ' . ( (int) $spacing / 2 ) . 'px ' . ( (int) $spacing ) . 'px; }'; } if ( $include_style ) { echo '</style>'; } } endif; if ( ! function_exists( 'porto_update_vc_options_to_elementor' ) ) : function porto_update_vc_options_to_elementor( $arr, $dependency = true ) { if ( ! defined( 'ELEMENTOR_VERSION' ) ) { return false; } $arr_key = ''; $replace_selector = false; $option_type = ''; foreach ( $arr as $key => $option ) { if ( is_array( $option ) && is_numeric( $key ) ) { $result = porto_update_vc_options_to_elementor( $option, $dependency ); if ( $result ) { unset( $arr[ $key ] ); $arr[ array_keys( $result )[0] ] = array_values( $result )[0]; } continue; } if ( 'type' == $key ) { if ( 'dropdown' == $option ) { $arr['type'] = \Elementor\Controls_Manager::SELECT; } elseif ( 'textfield' == $option || 'porto_animation_type' == $option ) { $arr['type'] = \Elementor\Controls_Manager::TEXT; if ( isset( $arr['value'] ) ) { $arr['default'] = $arr['value']; } } elseif ( 'checkbox' == $option ) { $arr['type'] = \Elementor\Controls_Manager::SWITCHER; } elseif ( 'porto_number' == $option ) { $arr['type'] = \Elementor\Controls_Manager::SLIDER; $replace_selector = true; } elseif ( 'colorpicker' == $option ) { $arr['type'] = \Elementor\Controls_Manager::COLOR; } elseif ( 'porto_button_group' == $option ) { $arr['type'] = \Elementor\Controls_Manager::CHOOSE; $option_type = 'porto_button_group'; } elseif ( 'porto_image_select' == $option ) { $arr['type'] = 'image_choose'; } } elseif ( 'param_name' == $key ) { unset( $arr[ $key ] ); $arr_key = $option; } elseif ( 'heading' == $key ) { unset( $arr[ $key ] ); $arr['label'] = $option; } elseif ( 'value' == $key ) { if ( is_array( $option ) ) { unset( $arr[ $key ] ); if( 'porto_button_group' !== $option_type ) { $arr['options'] = array_combine( array_values( $option ), array_keys( $option ) ); } else { $arr['options'] = $option; } } } elseif ( 'std' == $key ) { unset( $arr[ $key ] ); $arr['default'] = $option; } elseif ( 'dependency' == $key && is_array( $option ) ) { unset( $arr[ $key ] ); if ( isset( $option['element'] ) && isset( $option['value'] ) ) { $arr['condition'] = array( $option['element'] => $option['value'] ); } elseif ( isset( $option['element'] ) && isset( $option['not_empty'] ) ) { $arr['condition'] = array( $option['element'] . '!' => '' ); } elseif ( isset( $option['element'] ) && isset( $option['value_not_equal_to'] ) ) { $arr['condition'] = array( $option['element'] . '!' => $option['value_not_equal_to'] ); } elseif ( isset( $option['element'] ) && isset( $option['is_empty'] ) ) { $arr['condition'] = array( $option['element'] => '' ); } if ( isset( $arr_key ) && in_array( $arr_key, array( 'dots_pos_top', 'dots_pos_bottom', 'dots_pos_left', 'dots_pos_right', 'dots_br_color', 'dots_abr_color', 'dots_bg_color', 'dots_abg_color', 'dots_visible', 'dots_original', 'dots_pos', 'dots_style' ) ) ) { $element = $dependency ? 'pagination' : 'show_dots'; $arr['condition'] = array_merge( $arr['condition'], array( $element => 'yes', ) ); if ( ! $dependency ) { unset( $arr['condition']['pagination'] ); unset( $arr['condition']['pagination!'] ); } } else if ( isset( $arr_key ) && in_array( $arr_key, array( 'nav_fs', 'nav_width', 'nav_height', 'nav_br', 'nav_h_pos', 'navs_h_origin', 'nav_v_pos', 'nav_color', 'nav_h_color', 'nav_bg_color', 'nav_h_bg_color', 'nav_br_color', 'nav_h_br_color', 'nav_visible', 'nav_type', 'nav_pos2', 'nav_pos', 'show_nav_hover' ) ) ) { $element = $dependency ? 'navigation' : 'show_nav'; $arr['condition'] = array_merge( $arr['condition'], array( $element => 'yes', ) ); if ( ! $dependency ) { unset( $arr['condition']['navigation'] ); unset( $arr['condition']['navigation!'] ); } } } elseif ( 'units' == $key ) { unset( $arr[ $key ] ); $arr['size_units'] = $option; } elseif ( 'selectors' == $key && $replace_selector ) { foreach ( $option as $key => $value ) { $option[ $key ] = str_replace( '{{VALUE}}', '{{SIZE}}', $value ); } $arr['selectors'] = $option; } elseif ( 'range' == $key && is_array( $option ) ) { $arr['range'] = $option; } } unset( $arr['group'] ); if ( $arr_key ) { return array( $arr_key => $arr ); } return $arr; } endif; if ( ! function_exists( 'porto_gcd' ) ) : function porto_gcd( $a, $b = false ) { if ( is_array( $a ) ) { $len = count( $a ); if ( 1 === $len ) { return $a[0]; } if ( 2 === $len ) { return porto_gcd( $a[0], $a[1] ); } elseif ( $len > 2 ) { $tmp = $a; unset( $tmp[ $len - 1 ] ); return porto_gcd( $a[ $len - 1 ], porto_gcd( $tmp ) ); } } else { $max = max( $a, $b ); $min = min( $a, $b ); $rem = $max % $min; $max = $min; $min = $rem; if ( 0 === $rem ) { return $max; } else { return porto_gcd( $max, $min ); } } } endif; if ( ! function_exists( 'porto_lcm' ) ) : function porto_lcm( $a, $b = false ) { if ( is_array( $a ) ) { $len = count( $a ); if ( 1 === $len ) { return $a[0]; } if ( 2 === $len ) { return porto_lcm( $a[0], $a[1] ); } else { $tmp = $a; unset( $tmp[ $len - 1 ] ); return porto_lcm( $a[ $len - 1 ], porto_lcm( $tmp ) ); } } else { return ( $a * $b ) / porto_gcd( $a, $b ); } } endif; if ( ! function_exists( 'porto_shortcode_floating_fields' ) ) : function porto_shortcode_floating_fields() { $animation_group = __( 'Animation', 'porto-functionality' ); return array( array( 'type' => 'checkbox', 'heading' => __( 'Rotate with Scroll', 'porto-functionality' ), 'param_name' => 'floating_circle', 'hint' => '<img src="' . PORTO_HINT_URL . 'wd_floating_circle.gif"/>', 'value' => array( __( 'Yes, please', 'porto-functionality' ) => 'yes' ), 'description' => __( 'Rotate when scrolling page.', 'porto-functionality' ), 'dependency' => array( 'element' => 'animation_type', 'value' => array( '' ), ), 'group' => $animation_group, ), array( 'type' => 'checkbox', 'heading' => __( 'Floating Transition', 'porto-functionality' ), 'param_name' => 'floatcircle_transition', 'value' => array( __( 'Yes, please', 'porto-functionality' ) => 'yes' ), 'std' => 'yes', 'dependency' => array( 'element' => 'floating_circle', 'not_empty' => true, ), 'group' => $animation_group, ), array( 'type' => 'textfield', 'heading' => __( 'Transition Duration', 'porto-functionality' ), 'param_name' => 'floatcircle_duration', 'description' => __( 'numerical value (unit: milliseconds). Default is 500ms', 'porto-functionality' ), 'dependency' => array( 'element' => 'floatcircle_transition', 'not_empty' => true, ), 'group' => $animation_group, ), array( 'type' => 'dropdown', 'heading' => __( 'Floating with Scroll (Start Pos)', 'porto-functionality' ), 'param_name' => 'floating_start_pos', 'hint' => '<img src="' . PORTO_HINT_URL . 'wd_floating_start_pos.gif"/>', 'value' => array( __( 'Disabled', 'porto-functionality' ) => '', __( 'None', 'porto-functionality' ) => 'none', __( 'Top', 'porto-functionality' ) => 'top', __( 'Bottom', 'porto-functionality' ) => 'bottom', ), 'dependency' => array( 'element' => 'floating_circle', 'is_empty' => true, ), 'group' => $animation_group, ), array( 'type' => 'textfield', 'heading' => __( 'Floating Speed', 'porto-functionality' ), 'param_name' => 'floating_speed', 'description' => __( 'numerical value (from 0.0 to 10.0)', 'porto-functionality' ), 'value' => '', 'dependency' => array( 'element' => 'floating_start_pos', 'value' => array( 'none', 'top', 'bottom' ), ), 'group' => $animation_group, ), array( 'type' => 'checkbox', 'heading' => __( 'Floating Transition', 'porto-functionality' ), 'param_name' => 'floating_transition', 'value' => array( __( 'Yes, please', 'porto-functionality' ) => 'yes' ), 'std' => 'yes', 'dependency' => array( 'element' => 'floating_speed', 'not_empty' => true, ), 'group' => $animation_group, ), array( 'type' => 'checkbox', 'heading' => __( 'Floating Horizontal', 'porto-functionality' ), 'param_name' => 'floating_horizontal', 'value' => array( __( 'Yes, please', 'porto-functionality' ) => 'yes' ), 'dependency' => array( 'element' => 'floating_speed', 'not_empty' => true, ), 'group' => $animation_group, ), array( 'type' => 'textfield', 'heading' => __( 'Transition Duration', 'porto-functionality' ), 'param_name' => 'floating_duration', 'description' => __( 'numerical value (unit: milliseconds). Default is 500ms', 'porto-functionality' ), 'dependency' => array( 'element' => 'floating_speed', 'not_empty' => true, ), 'group' => $animation_group, ), ); } endif; if ( ! function_exists( 'porto_shortcode_add_floating_options' ) ) : function porto_shortcode_add_floating_options( $atts, $return_array = false ) { $floating_options = array(); if ( isset( $atts['floating_circle'] ) && 'yes' == $atts['floating_circle'] ) { $floating_options['circle'] = true; if ( isset( $atts['floatcircle_transition'] ) && 'yes' == $atts['floatcircle_transition'] ) { $floating_options['transition'] = true; if ( isset( $atts['floatcircle_duration'] ) && $atts['floatcircle_duration'] ) { $floating_options['transitionDuration'] = absint( $atts['floatcircle_duration'] ); } } else { $floating_options['transition'] = false; } } else { if ( ! isset( $atts['floating_start_pos'] ) || ! isset( $atts['floating_speed'] ) || empty( $atts['floating_start_pos'] ) || empty( $atts['floating_speed'] ) ) { return ''; } $floating_options = array( 'startPos' => $atts['floating_start_pos'], 'speed' => $atts['floating_speed'], ); if ( ! isset( $atts['floating_transition'] ) || 'yes' == $atts['floating_transition'] ) { $floating_options['transition'] = true; } else { $floating_options['transition'] = false; } if ( isset( $atts['floating_horizontal'] ) && $atts['floating_horizontal'] ) { $floating_options['horizontal'] = true; } else { $floating_options['horizontal'] = false; } if ( isset( $atts['floating_duration'] ) && $atts['floating_duration'] ) { $floating_options['transitionDuration'] = absint( $atts['floating_duration'] ); } } if ( !empty( $floating_options ) ) { if ( $return_array ) { return array( 'data-plugin-float-element' => '', 'data-plugin-options' => esc_attr( json_encode( $floating_options ) ), ); } return ' data-plugin-float-element data-plugin-options="' . esc_attr( json_encode( $floating_options ) ) . '"'; } } endif; if ( ! function_exists( 'porto_elementor_if_dom_optimization' ) ) : function porto_elementor_if_dom_optimization() { if ( ! defined( 'ELEMENTOR_VERSION' ) ) { return false; } if ( version_compare( ELEMENTOR_VERSION, '3.18.9', '>' ) ) { return true; } elseif ( version_compare( ELEMENTOR_VERSION, '3.1.0', '>=' ) ) { return \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_dom_optimization' ); } elseif ( version_compare( ELEMENTOR_VERSION, '3.0', '>=' ) ) { return ( ! \Elementor\Plugin::instance()->get_legacy_mode( 'elementWrappers' ) ); } return false; } endif; if ( ! function_exists( 'porto_get_mpx_options' ) ) : function porto_get_mpx_options( $atts ) { $mpx_opts = array(); $mpx_attr_html = ''; if ( isset( $atts['mouse_parallax'] ) && 'yes' == $atts['mouse_parallax'] ) { if ( isset( $atts['mouse_parallax_inverse'] ) && 'yes' == $atts['mouse_parallax_inverse'] ) { $mpx_opts['invertX'] = true; $mpx_opts['invertY'] = true; } else { $mpx_opts['invertX'] = false; $mpx_opts['invertY'] = false; } wp_enqueue_script( 'jquery-parallax' ); wp_enqueue_script( 'porto-mouse-parallax' ); $mpx_opts = array( 'data-plugin' => 'mouse-parallax', 'data-options' => json_encode( $mpx_opts ), 'data-floating-depth' => empty( $atts['mouse_parallax_speed']['size'] ) ? 0.5 : floatval( $atts['mouse_parallax_speed']['size'] ), ); } return $mpx_opts; } endif; if ( ! function_exists( 'porto_generate_rand' ) ) : function porto_generate_rand( $length = 31 ) { $valid_characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; $rand = ''; for ( $n = 0; $n < $length; $n++ ) { $which_character = rand( 0, strlen( $valid_characters ) - 1 ); $rand .= substr( $valid_characters, $which_character, 1 ); } return $rand; } endif; /** * Echo or Return inline css. * This function only uses for composed by style tag. * * @since 2.3.0 */ if ( ! function_exists( 'porto_filter_inline_css' ) ) : function porto_filter_inline_css( $inline_css, $is_echo = true ) { if ( ! class_exists( 'Porto_Performance' ) ) { return; } if ( empty( Porto_Performance::$defer_style ) ) { // not defer loading, only return and echo if ( $is_echo ) { echo porto_filter_output( $inline_css ); } else { return $inline_css; } } else { if ( 'no' == Porto_Performance::has_merged_css() ) { global $porto_body_merged_css; if ( isset( $porto_body_merged_css ) ) { $inline_css = str_replace( PHP_EOL, '', $inline_css ); $inline_css = preg_replace( '/<style.*?>/s', '', $inline_css ) ? : $inline_css; $inline_css = preg_replace( '/<\/style.*?>/s', '', $inline_css ) ? : $inline_css; $porto_body_merged_css .= $inline_css; } } return ''; } } endif; /** * Get installed time. * * @since 2.5.0 */ if ( ! function_exists( 'porto_installed_time' ) ) : function porto_installed_time() { $installed_time = get_option( 'porto_installed_time' ); if ( ! $installed_time ) { $installed_time = time(); update_option( 'porto_installed_time', $installed_time ); } return $installed_time; } endif; /** * Get the url of particular id in theme option. * * @since 2.7.0 */ if ( ! function_exists( 'porto_get_theme_option_url' ) ) { function porto_get_theme_option_url( $option_id, $type = 'field' ) { if ( ! isset ( $GLOBALS['porto_option_style'] ) ) { $GLOBALS['porto_option_style'] = get_theme_mod( 'theme_options_use_new_style', false ); } if ( $GLOBALS['porto_option_style'] ) { return esc_url( admin_url( 'customize.php?type=' . $type . '#' . $option_id ) ); } else { return esc_url( admin_url( 'admin.php?page=porto_settings#' . $option_id ) ); } } } /** * Get the box shadow for shortcodes * * @since 2.9.4 */ function porto_get_box_shadow( $content = null, $data = '' ) { $result = ''; if ( $content ) { $mainstr = explode( '|', $content ); $string = ''; $mainarr = array(); if ( ! empty( $mainstr ) && is_array( $mainstr ) ) { foreach ( $mainstr as $key => $value ) { if ( ! empty( $value ) ) { $string = explode( ':', $value ); if ( is_array( $string ) ) { if ( ! empty( $string[1] ) /*&& 'outset' != $string[1] */ ) { $mainarr[ $string[0] ] = $string[1]; } } } } } $strkeys = ''; if ( ! empty( $mainarr ) ) { if ( isset( $mainarr['color'] ) && $mainarr['color'] && ! empty( $mainarr['style'] ) ) { $strkeys .= isset( $mainarr['horizontal'] ) && 'px' != $mainarr['horizontal'] ? $mainarr['horizontal'] : '0'; $strkeys .= ' '; $strkeys .= isset( $mainarr['vertical'] ) && 'px' != $mainarr['vertical'] ? $mainarr['vertical'] : '0'; $strkeys .= ' '; $strkeys .= isset( $mainarr['blur'] ) && 'px' != $mainarr['blur'] ? $mainarr['blur'] : '0'; $strkeys .= ' '; $strkeys .= isset( $mainarr['spread'] ) && 'px' != $mainarr['spread'] ? $mainarr['spread'] : '0'; $strkeys .= ' '; $strkeys .= $mainarr['color']; $strkeys .= isset( $mainarr['style'] ) && $mainarr['style'] && 'outset' != $mainarr['style'] ? ' ' . $mainarr['style'] : ''; } elseif ( isset( $mainarr['style'] ) && in_array( $mainarr['style'], array( 'inherit', 'none' ) ) ) { $strkeys .= $mainarr['style']; } } if ( $data ) { switch ( $data ) { case 'data': $result = $strkeys; break; case 'array': $result = $mainarr; break; case 'css': default: if ( $strkeys ) { $result = 'box-shadow:' . $strkeys . ';'; } break; } } elseif ( $strkeys ) { $result = 'box-shadow:' . $strkeys . ';'; } } return $result; } /** * Get the edit link * * @since 2.10.0 */ function porto_get_edit_link() { global $porto_edit_link, $wp_the_query; if ( ! isset( $porto_edit_link ) ) { $current_object = $wp_the_query->get_queried_object(); if ( empty( $current_object ) ) { return; } if ( ! empty( $current_object->post_type ) ) { $post_type_object = get_post_type_object( $current_object->post_type ); $edit_post_link = get_edit_post_link( $current_object->ID ); if ( $post_type_object && $edit_post_link && current_user_can( 'edit_post', $current_object->ID ) && $post_type_object->show_in_admin_bar ) { $porto_edit_link = $edit_post_link; } } elseif ( ! empty( $current_object->taxonomy ) ) { $tax = get_taxonomy( $current_object->taxonomy ); $edit_term_link = get_edit_term_link( $current_object->term_id, $current_object->taxonomy ); if ( $tax && $edit_term_link && current_user_can( 'edit_term', $current_object->term_id ) ) { $porto_edit_link = $edit_term_link; } } elseif ( is_a( $current_object, 'WP_User' ) && current_user_can( 'edit_user', $current_object->ID ) ) { $edit_user_link = get_edit_user_link( $current_object->ID ); if ( $edit_user_link ) { $porto_edit_link = $edit_user_link; } } if ( empty( $porto_edit_link ) ) { $archive_id = -1; if ( function_exists( 'is_shop' ) && is_shop() ) { $archive_id = wc_get_page_id( 'shop' ); } if ( function_exists( 'is_porto_portfolios_page' ) && is_porto_portfolios_page() && ( $archive_page = porto_portfolios_page_id() ) ) { $archive_id = $archive_page; } if ( function_exists( 'is_porto_members_page' ) && is_porto_members_page() && ( $archive_page = porto_members_page_id() ) ) { $archive_id = $archive_page; } if ( function_exists( 'is_porto_faqs_page' ) && is_porto_faqs_page() && ( $archive_page = porto_faqs_page_id() ) ) { $archive_id = $archive_page; } if ( function_exists( 'is_porto_events_page' ) && is_porto_events_page() && ( $archive_page = porto_events_page_id() ) ) { $archive_id = $archive_page; } if ( $archive_id != -1 ) { $porto_edit_link = get_edit_post_link( $archive_id ); } } } return $porto_edit_link; } /** * Get the xl width * * @since 2.11.0 */ if ( ! function_exists( 'porto_get_xl_width' ) ) { function porto_get_xl_width( $xl = true ) { global $porto_settings; $container_xl = 1140; $container_sl = (int) $porto_settings['container-width']; if ( (int) $porto_settings['container-width'] < 1360 ) { $container_xl = (int) $porto_settings['container-width']; $container_sl = 1360; } if ( $xl ) { return $container_xl + (int) $porto_settings['grid-gutter-width']; } return $container_sl + 2 * (int) $porto_settings['grid-gutter-width']; } }
Save
Cancel