This commit is contained in:
KhaiNguyen
2020-02-13 10:39:37 +07:00
commit 59401cb805
12867 changed files with 4646216 additions and 0 deletions

View File

@@ -0,0 +1,460 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* Build css classes from terms of the post.
*
* @param $value
* @param $data
*
* @return string
* @since 4.4
*
*/
function vc_gitem_template_attribute_filter_terms_css_classes( $value, $data ) {
$output = '';
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
), $data ) );
if ( isset( $post->filter_terms ) && is_array( $post->filter_terms ) ) {
foreach ( $post->filter_terms as $t ) {
$output .= ' vc_grid-term-' . $t; // @todo fix #106154391786878 $t is array
}
}
return $output;
}
/**
* Get image for post
*
* @param $data
* @return mixed|string
*/
function vc_gitem_template_attribute_post_image( $data ) {
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
if ( 'attachment' === $post->post_type ) {
return wp_get_attachment_image( $post->ID, 'large' );
}
$html = get_the_post_thumbnail( $post->ID );
return apply_filters( 'vc_gitem_template_attribute_post_image_html', $html );
}
/**
* @param $value
* @param $data
* @return mixed
*/
function vc_gitem_template_attribute_featured_image( $value, $data ) {
/**
* @var Wp_Post $post
* @var string $data
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return vc_include_template( 'params/vc_grid_item/attributes/featured_image.php', array(
'post' => $post,
'data' => $data,
) );
}
/**
* Create new btn
*
* @param $value
* @param $data
*
* @return mixed
* @since 4.5
*
*/
function vc_gitem_template_attribute_vc_btn( $value, $data ) {
/**
* @var Wp_Post $post
* @var string $data
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return vc_include_template( 'params/vc_grid_item/attributes/vc_btn.php', array(
'post' => $post,
'data' => $data,
) );
}
/**
* Get post image url
*
* @param $value
* @param $data
*
* @return string
*/
function vc_gitem_template_attribute_post_image_url( $value, $data ) {
$output = '';
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
$extraImageMeta = explode( ':', $data );
$size = 'large'; // default size
if ( isset( $extraImageMeta[1] ) ) {
$size = $extraImageMeta[1];
}
if ( 'attachment' === $post->post_type ) {
$src = vc_get_image_by_size( $post->ID, $size );
} else {
$attachment_id = get_post_thumbnail_id( $post->ID );
$src = vc_get_image_by_size( $attachment_id, $size );
}
if ( ! empty( $src ) ) {
$output = is_array( $src ) ? $src[0] : $src;
} else {
$output = vc_asset_url( 'vc/vc_gitem_image.png' );
}
return apply_filters( 'vc_gitem_template_attribute_post_image_url_value', $output );
}
/**
* Get post image url with href for a dom element
*
* @param $value
* @param $data
*
* @return string
*/
function vc_gitem_template_attribute_post_image_url_href( $value, $data ) {
$link = vc_gitem_template_attribute_post_image_url( $value, $data );
return strlen( $link ) ? ' href="' . esc_url( $link ) . '"' : '';
}
/**
* Add image url as href with css classes for PrettyPhoto js plugin.
*
* @param $value
* @param $data
*
* @return string
*/
function vc_gitem_template_attribute_post_image_url_attr_prettyphoto( $value, $data ) {
$data_default = $data;
/**
* @var Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
$href = vc_gitem_template_attribute_post_image_url_href( $value, array(
'post' => $post,
'data' => '',
) );
$rel = ' data-rel="' . esc_attr( 'prettyPhoto[rel-' . md5( vc_request_param( 'shortcode_id' ) ) . ']' ) . '"';
return $href . $rel . ' class="' . esc_attr( $data . ( strlen( $href ) ? ' prettyphoto' : '' ) ) . '" title="' . esc_attr( apply_filters( 'vc_gitem_template_attribute_post_title', $post->post_title, $data_default ) ) . '"';
}
/**
* Get post image alt
*
* @param $value
* @param $data
* @return string
*/
function vc_gitem_template_attribute_post_image_alt( $value, $data ) {
if ( empty( $data['post']->ID ) ) {
return '';
}
if ( 'attachment' === $data['post']->post_type ) {
$attachment_id = $data['post']->ID;
} else {
$attachment_id = get_post_thumbnail_id( $data['post']->ID );
}
if ( ! $attachment_id ) {
return '';
}
$alt = trim( wp_strip_all_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) );
return apply_filters( 'vc_gitem_template_attribute_post_image_url_value', $alt );
}
/**
* Get post image url
*
* @param $value
* @param $data
* @return string
*/
function vc_gitem_template_attribute_post_image_background_image_css( $value, $data ) {
$output = '';
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
$size = 'large'; // default size
if ( ! empty( $data ) ) {
$size = $data;
}
if ( 'attachment' === $post->post_type ) {
$src = vc_get_image_by_size( $post->ID, $size );
} else {
$attachment_id = get_post_thumbnail_id( $post->ID );
$src = vc_get_image_by_size( $attachment_id, $size );
}
if ( ! empty( $src ) ) {
$output = 'background-image: url(\'' . ( is_array( $src ) ? $src[0] : $src ) . '\') !important;';
} else {
$output = 'background-image: url(\'' . vc_asset_url( 'vc/vc_gitem_image.png' ) . '\') !important;';
}
return apply_filters( 'vc_gitem_template_attribute_post_image_background_image_css_value', $output );
}
/**
* Get post link
*
* @param $value
* @param $data
* @return bool|string
*/
function vc_gitem_template_attribute_post_link_url( $value, $data ) {
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
), $data ) );
return get_permalink( $post->ID );
}
/**
* Get post date
*
* @param $value
* @param $data
* @return bool|int|string
*/
function vc_gitem_template_attribute_post_date( $value, $data ) {
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
), $data ) );
return get_the_date( '', $post->ID );
}
/**
* Get post date time
*
* @param $value
* @param $data
* @return bool|int|string
*/
function vc_gitem_template_attribute_post_datetime( $value, $data ) {
/**
* @var null|Wp_Post $post ;
*/
extract( array_merge( array(
'post' => null,
), $data ) );
return get_the_time( 'F j, Y g:i', $post->ID );
}
/**
* Get custom fields.
*
* @param $value
* @param $data
* @return mixed|string
*/
function vc_gitem_template_attribute_post_meta_value( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return strlen( $data ) > 0 ? get_post_meta( $post->ID, $data, true ) : $value;
}
/**
* Get post data. Used as wrapper for others post data attributes.
*
* @param $value
* @param $data
* @return mixed|string
*/
function vc_gitem_template_attribute_post_data( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return strlen( $data ) > 0 ? apply_filters( 'vc_gitem_template_attribute_' . $data, ( isset( $post->$data ) ? $post->$data : '' ), array(
'post' => $post,
'data' => '',
) ) : $value;
}
/**
* Get post excerpt. Used as wrapper for others post data attributes.
*
* @param $value
* @param $data
* @return mixed|string
*/
function vc_gitem_template_attribute_post_excerpt( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return apply_filters( 'the_excerpt', apply_filters( 'get_the_excerpt', $value ) );
}
/**
* Get post excerpt. Used as wrapper for others post data attributes.
*
* @param $value
* @param $data
* @return mixed|string
*/
function vc_gitem_template_attribute_post_title( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return the_title( '', '', false );
}
/**
* @param $value
* @param $data
* @return string|null
*/
function vc_gitem_template_attribute_post_author( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return get_the_author();
}
/**
* @param $value
* @param $data
* @return string
*/
function vc_gitem_template_attribute_post_author_href( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
return get_author_posts_url( get_the_author_meta( 'ID' ), get_the_author_meta( 'user_nicename' ) );
}
/**
* @param $value
* @param $data
* @return mixed
*/
function vc_gitem_template_attribute_post_categories( $value, $data ) {
/**
* @var null|Wp_Post $post ;
* @var string $data ;
*/
extract( array_merge( array(
'post' => null,
'data' => '',
), $data ) );
$atts_extended = array();
parse_str( $data, $atts_extended );
return vc_include_template( 'params/vc_grid_item/attributes/post_categories.php', array(
'post' => $post,
'atts' => $atts_extended['atts'],
) );
}
/**
* Adding filters to parse grid template.
*/
add_filter( 'vc_gitem_template_attribute_filter_terms_css_classes', 'vc_gitem_template_attribute_filter_terms_css_classes', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_image', 'vc_gitem_template_attribute_post_image', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_image_url', 'vc_gitem_template_attribute_post_image_url', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_image_url_href', 'vc_gitem_template_attribute_post_image_url_href', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_image_url_attr_prettyphoto', 'vc_gitem_template_attribute_post_image_url_attr_prettyphoto', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_image_alt', 'vc_gitem_template_attribute_post_image_alt', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_link_url', 'vc_gitem_template_attribute_post_link_url', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_date', 'vc_gitem_template_attribute_post_date', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_datetime', 'vc_gitem_template_attribute_post_datetime', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_meta_value', 'vc_gitem_template_attribute_post_meta_value', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_data', 'vc_gitem_template_attribute_post_data', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_image_background_image_css', 'vc_gitem_template_attribute_post_image_background_image_css', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_excerpt', 'vc_gitem_template_attribute_post_excerpt', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_title', 'vc_gitem_template_attribute_post_title', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_author', 'vc_gitem_template_attribute_post_author', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_author_href', 'vc_gitem_template_attribute_post_author_href', 10, 2 );
add_filter( 'vc_gitem_template_attribute_post_categories', 'vc_gitem_template_attribute_post_categories', 10, 2 );
add_filter( 'vc_gitem_template_attribute_featured_image', 'vc_gitem_template_attribute_featured_image', 10, 2 );
add_filter( 'vc_gitem_template_attribute_vc_btn', 'vc_gitem_template_attribute_vc_btn', 10, 2 );

View File

@@ -0,0 +1,389 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* Class Vc_Grid_Item to build grid item.
*/
class Vc_Grid_Item {
protected $template = '';
protected $html_template = false;
protected $post = false;
protected $grid_atts = array();
protected $is_end = false;
protected $shortcodes = false;
protected $found_variables = false;
protected static $predefined_templates = false;
protected $template_id = false;
/**
* Get shortcodes to build vc grid item templates.
*
* @return bool|mixed
*/
public function shortcodes() {
if ( false === $this->shortcodes ) {
$this->shortcodes = include vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/shortcodes.php' );
$this->shortcodes = apply_filters( 'vc_grid_item_shortcodes', $this->shortcodes );
}
add_filter( 'vc_shortcode_set_template_vc_icon', array(
$this,
'addVcIconShortcodesTemplates',
) );
add_filter( 'vc_shortcode_set_template_vc_button2', array(
$this,
'addVcButton2ShortcodesTemplates',
) );
add_filter( 'vc_shortcode_set_template_vc_single_image', array(
$this,
'addVcSingleImageShortcodesTemplates',
) );
add_filter( 'vc_shortcode_set_template_vc_custom_heading', array(
$this,
'addVcCustomHeadingShortcodesTemplates',
) );
add_filter( 'vc_shortcode_set_template_vc_btn', array(
$this,
'addVcBtnShortcodesTemplates',
) );
return $this->shortcodes;
}
/**
* Used by filter vc_shortcode_set_template_vc_icon to set custom template for vc_icon shortcode.
*
* @param $template
*
* @return string
*/
public function addVcIconShortcodesTemplates( $template ) {
if ( Vc_Grid_Item_Editor::postType() === WPBMap::getScope() ) {
$file = vc_path_dir( 'TEMPLATES_DIR', 'params/vc_grid_item/shortcodes/vc_icon.php' );
if ( is_file( $file ) ) {
return $file;
}
}
return $template;
}
/**
* Used by filter vc_shortcode_set_template_vc_button2 to set custom template for vc_button2 shortcode.
*
* @param $template
*
* @return string
*/
public function addVcButton2ShortcodesTemplates( $template ) {
if ( Vc_Grid_Item_Editor::postType() === WPBMap::getScope() ) {
$file = vc_path_dir( 'TEMPLATES_DIR', 'params/vc_grid_item/shortcodes/vc_button2.php' );
if ( is_file( $file ) ) {
return $file;
}
}
return $template;
}
/**
* Used by filter vc_shortcode_set_template_vc_single_image to set custom template for vc_single_image shortcode.
*
* @param $template
*
* @return string
*/
public function addVcSingleImageShortcodesTemplates( $template ) {
if ( Vc_Grid_Item_Editor::postType() === WPBMap::getScope() ) {
$file = vc_path_dir( 'TEMPLATES_DIR', 'params/vc_grid_item/shortcodes/vc_single_image.php' );
if ( is_file( $file ) ) {
return $file;
}
}
return $template;
}
/**
* Used by filter vc_shortcode_set_template_vc_custom_heading to set custom template for vc_custom_heading
* shortcode.
*
* @param $template
*
* @return string
*/
public function addVcCustomHeadingShortcodesTemplates( $template ) {
if ( Vc_Grid_Item_Editor::postType() === WPBMap::getScope() ) {
$file = vc_path_dir( 'TEMPLATES_DIR', 'params/vc_grid_item/shortcodes/vc_custom_heading.php' );
if ( is_file( $file ) ) {
return $file;
}
}
return $template;
}
/**
* Used by filter vc_shortcode_set_template_vc_button2 to set custom template for vc_button2 shortcode.
*
* @param $template
*
* @return string
*/
public function addVcBtnShortcodesTemplates( $template ) {
if ( Vc_Grid_Item_Editor::postType() === WPBMap::getScope() ) {
$file = vc_path_dir( 'TEMPLATES_DIR', 'params/vc_grid_item/shortcodes/vc_btn.php' );
if ( is_file( $file ) ) {
return $file;
}
}
return $template;
}
/**
* Map shortcodes for vc_grid_item param type.
* @throws \Exception
*/
public function mapShortcodes() {
// @kludge
// TODO: refactor with with new way of roles for shortcodes.
// NEW ROLES like post_type for shortcode and access policies.
$shortcodes = $this->shortcodes();
foreach ( $shortcodes as $shortcode_settings ) {
vc_map( $shortcode_settings );
}
}
/**
* Get list of predefined templates.
*
* @return bool|mixed
*/
public static function predefinedTemplates() {
if ( false === self::$predefined_templates ) {
self::$predefined_templates = apply_filters( 'vc_grid_item_predefined_templates', include vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/templates.php' ) );
}
return self::$predefined_templates;
}
/**
* @param $id - Predefined templates id
*
* @return array|bool
*/
public static function predefinedTemplate( $id ) {
$predefined_templates = self::predefinedTemplates();
if ( isset( $predefined_templates[ $id ]['template'] ) ) {
return $predefined_templates[ $id ];
}
return false;
}
/**
* Set template which should grid used when vc_grid_item param value is rendered.
*
* @param $id
*
* @return bool
* @throws \Exception
*/
public function setTemplateById( $id ) {
require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/templates.php' );
if ( 0 === strlen( $id ) ) {
return false;
}
if ( preg_match( '/^\d+$/', $id ) ) {
$post = get_post( (int) $id );
if ( $post ) {
$this->setTemplate( $post->post_content, $post->ID );
}
return true;
} else {
$predefined_template = $this->predefinedTemplate( $id );
if ( $predefined_template ) {
$this->setTemplate( $predefined_template['template'], $id );
return true;
}
}
return false;
}
/**
* Setter for template attribute.
*
* @param $template
* @param $template_id
* @throws \Exception
*/
public function setTemplate( $template, $template_id ) {
$this->template = $template;
$this->template_id = $template_id;
$this->parseTemplate( $template );
}
/**
* Getter for template attribute.
* @return string
*/
public function template() {
return $this->template;
}
/**
* Add custom css from shortcodes that were mapped for vc grid item.
* @return string
* @throws \Exception
*/
public function addShortcodesCustomCss() {
$output = $shortcodes_custom_css = '';
$id = $this->template_id;
if ( preg_match( '/^\d+$/', $id ) ) {
$shortcodes_custom_css = get_post_meta( $id, '_wpb_shortcodes_custom_css', true );
} else {
$predefined_template = $this->predefinedTemplate( $id );
if ( $predefined_template ) {
$shortcodes_custom_css = visual_composer()->parseShortcodesCustomCss( $predefined_template['template'] );
}
}
if ( ! empty( $shortcodes_custom_css ) ) {
$shortcodes_custom_css = wp_strip_all_tags( $shortcodes_custom_css );
$first_tag = 'style';
$output .= '<' . $first_tag . ' data-type="vc_shortcodes-custom-css">';
$output .= $shortcodes_custom_css;
$output .= '</' . $first_tag . '>';
}
return $output;
}
/**
* Generates html with template's variables for rendering new project.
*
* @param $template
* @throws \Exception
*/
public function parseTemplate( $template ) {
$this->mapShortcodes();
WPBMap::addAllMappedShortcodes();
$attr = ' width="' . $this->gridAttribute( 'element_width', 12 ) . '"' . ' is_end="' . ( 'true' === $this->isEnd() ? 'true' : '' ) . '"';
$template = preg_replace( '/(\[(\[?)vc_gitem\b)/', '$1' . $attr, $template );
$template = str_replace( array(
'<p>[vc_gitem',
'[/vc_gitem]</p>',
), array(
'[vc_gitem',
'[/vc_gitem]',
), $template );
$this->html_template .= do_shortcode( trim( $template ) );
}
/**
* Regexp for variables.
* @return string
*/
public function templateVariablesRegex() {
return '/\{\{' . '\{?' . '\s*' . '([^\}\:]+)(\:([^\}]+))?' . '\s*' . '\}\}' . '\}?/';
}
/**
* Get default variables.
*
* @return array|bool
*/
public function getTemplateVariables() {
if ( ! is_array( $this->found_variables ) ) {
preg_match_all( $this->templateVariablesRegex(), $this->html_template, $this->found_variables, PREG_SET_ORDER );
}
return $this->found_variables;
}
/**
* Render item by replacing template variables for exact post.
*
* @param WP_Post $post
*
* @return mixed
*/
public function renderItem( WP_Post $post ) {
$pattern = array();
$replacement = array();
$this->addAttributesFilters();
foreach ( $this->getTemplateVariables() as $var ) {
$pattern[] = '/' . preg_quote( $var[0], '/' ) . '/';
$replacement[] = preg_replace( '/\\$/', '\\\$', $this->attribute( $var[1], $post, isset( $var[3] ) ? trim( $var[3] ) : '' ) );
}
return preg_replace( $pattern, $replacement, do_shortcode( $this->html_template ) );
}
/**
* Adds filters to build templates variables values.
*/
public function addAttributesFilters() {
require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/attributes.php' );
}
/**
* Getter for Grid shortcode attributes.
*
* @param $grid_atts
*/
public function setGridAttributes( $grid_atts ) {
$this->grid_atts = $grid_atts;
}
/**
* Setter for Grid shortcode attributes.
*
* @param $name
* @param string $default
*
* @return string
*/
public function gridAttribute( $name, $default = '' ) {
return isset( $this->grid_atts[ $name ] ) ? $this->grid_atts[ $name ] : $default;
}
/**
* Get attribute value for WP_post object.
*
* @param $name
* @param $post
* @param string $data
*
* @return mixed
*/
public function attribute( $name, $post, $data = '' ) {
$data = html_entity_decode( $data );
return apply_filters( 'vc_gitem_template_attribute_' . trim( $name ), ( isset( $post->$name ) ? $post->$name : '' ), array(
'post' => $post,
'data' => $data,
) );
}
/**
* Set that this is last items in the grid. Used for load more button and lazy loading.
*
* @param bool $is_end
*/
public function setIsEnd( $is_end = true ) {
$this->is_end = $is_end;
}
/**
* Checks is the end.
* @return bool
*/
public function isEnd() {
return $this->is_end;
}
}

View File

@@ -0,0 +1,112 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* Class WpbMap_Grid_Item
*/
class WpbMap_Grid_Item extends WPBMap {
protected static $gitem_user_sc = false;
protected static $gitem_user_categories = false;
protected static $gitem_user_sorted_sc = false;
/**
* Generates list of shortcodes only for Grid element.
*
* This method parses the list of mapped shortcodes and creates categories list for users.
* Also it checks is 'is_grid_item_element' attribute true.
*
* @static
*
* @param bool $force - force data generation even data already generated.
* @throws \Exception
*/
protected static function generateGitemUserData( $force = false ) {
if ( ! $force && false !== self::$gitem_user_sc && false !== self::$gitem_user_categories ) {
return;
}
self::$gitem_user_sc = self::$gitem_user_categories = self::$gitem_user_sorted_sc = array();
$deprecated = 'deprecated';
$add_deprecated = false;
if ( is_array( self::$sc ) && ! empty( self::$sc ) ) {
foreach ( self::$sc as $name => $values ) {
if ( isset( $values['post_type'] ) && Vc_Grid_Item_Editor::postType() === $values['post_type'] && vc_user_access_check_shortcode_all( $name ) ) {
if ( ! isset( $values['content_element'] ) || true === $values['content_element'] ) {
$categories = isset( $values['category'] ) ? $values['category'] : '_other_category_';
$values['_category_ids'] = array();
if ( isset( $values['deprecated'] ) && false !== $values['deprecated'] ) {
$add_deprecated = true;
$values['_category_ids'][] = $deprecated;
} else {
if ( is_array( $categories ) && ! empty( $categories ) ) {
foreach ( $categories as $c ) {
if ( false === array_search( $c, self::$gitem_user_categories, true ) ) {
self::$gitem_user_categories[] = $c;
}
$values['_category_ids'][] = md5( $c );
}
} else {
if ( false === array_search( $categories, self::$gitem_user_categories, true ) ) {
self::$gitem_user_categories[] = $categories;
}
$values['_category_ids'][] = md5( $categories );
}
}
}
self::$gitem_user_sc[ $name ] = $values;
self::$gitem_user_sorted_sc[] = $values;
}
}
}
if ( $add_deprecated ) {
self::$gitem_user_categories[] = $deprecated;
}
$sort = new Vc_Sort( self::$gitem_user_sorted_sc );
self::$gitem_user_sorted_sc = $sort->sortByKey();
}
/**
* Get sorted list of mapped shortcode settings grid element
*
* Sorting depends on the weight attribute and mapping order.
*
* @static
* @return bool
* @throws \Exception
*/
public static function getSortedGitemUserShortCodes() {
self::generateGitemUserData();
return self::$gitem_user_sorted_sc;
}
/**
* Get list of mapped shortcode settings for current user.
* @static
* @return bool - associated array of shortcodes settings with tag as the key.
* @throws \Exception
*/
public static function getGitemUserShortCodes() {
self::generateGitemUserData();
return self::$gitem_user_sc;
}
/**
* Get all categories for current user.
*
* Category is added to the list when at least one shortcode of this category is allowed for current user
* by Vc access rules.
*
* @static
* @return bool
* @throws \Exception
*/
public static function getGitemUserCategories() {
self::generateGitemUserData();
return self::$gitem_user_categories;
}
}

View File

@@ -0,0 +1,309 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* Manger for new post type for single grid item design with constructor
*
* @package WPBakeryPageBuilder
* @since 4.4
*/
require_once vc_path_dir( 'EDITORS_DIR', 'class-vc-backend-editor.php' );
/**
* Class Vc_Grid_Item_Editor
*/
class Vc_Grid_Item_Editor extends Vc_Backend_Editor {
protected static $post_type = 'vc_grid_item';
protected $templates_editor = false;
/**
* This method is called to add hooks.
*
* @since 4.8
* @access public
*/
public function addHooksSettings() {
add_action( 'add_meta_boxes', array(
$this,
'render',
) );
add_action( 'vc_templates_render_backend_template', array(
$this,
'loadTemplate',
), 10, 2 );
}
public function addScripts() {
$this->render( get_post_type() );
}
/**
* @param $post_type
* @throws \Exception
*/
public function render( $post_type ) {
if ( $this->isValidPostType( $post_type ) ) {
$this->registerBackendJavascript();
$this->registerBackendCss();
// B.C:
visual_composer()->registerAdminCss();
visual_composer()->registerAdminJavascript();
add_action( 'admin_print_scripts-post.php', array(
$this,
'printScriptsMessages',
), 300 );
add_action( 'admin_print_scripts-post-new.php', array(
$this,
'printScriptsMessages',
), 300 );
}
}
/**
* @return bool
* @throws \Exception
*/
public function editorEnabled() {
return vc_user_access()->part( 'grid_builder' )->can()->get();
}
public function replaceTemplatesPanelEditorJsAction() {
wp_dequeue_script( 'vc-template-preview-script' );
$this->templatesEditor()->addScriptsToTemplatePreview();
}
/**
* Create post type and new item in the admin menu.
* @return void
*/
public static function createPostType() {
register_post_type( self::$post_type, array(
'labels' => self::getPostTypesLabels(),
'public' => false,
'has_archive' => false,
'show_in_nav_menus' => false,
'exclude_from_search' => true,
'publicly_queryable' => false,
'show_ui' => true,
'show_in_menu' => false,
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array(
'title',
'editor',
),
) );
}
/**
* @return array
*/
public static function getPostTypesLabels() {
return array(
'add_new_item' => esc_html__( 'Add Grid template', 'js_composer' ),
'name' => esc_html__( 'Grid Builder', 'js_composer' ),
'singular_name' => esc_html__( 'Grid template', 'js_composer' ),
'edit_item' => esc_html__( 'Edit Grid template', 'js_composer' ),
'view_item' => esc_html__( 'View Grid template', 'js_composer' ),
'search_items' => esc_html__( 'Search Grid templates', 'js_composer' ),
'not_found' => esc_html__( 'No Grid templates found', 'js_composer' ),
'not_found_in_trash' => esc_html__( 'No Grid templates found in Trash', 'js_composer' ),
);
}
/**
* Rewrites validation for correct post_type of th post.
*
* @param string $type
*
* @return bool
* @throws \Exception
*/
public function isValidPostType( $type = '' ) {
$type = ! empty( $type ) ? $type : get_post_type();
return $this->editorEnabled() && $this->postType() === $type;
}
/**
* Get post type for Vc grid element editor.
*
* @static
* @return string
*/
public static function postType() {
return self::$post_type;
}
/**
* Calls add_meta_box to create Editor block.
*
* @access public
*/
public function addMetaBox() {
add_meta_box( 'wpb_visual_composer', esc_html__( 'Grid Builder', 'js_composer' ), array(
$this,
'renderEditor',
), $this->postType(), 'normal', 'high' );
}
/**
* Change order of the controls for shortcodes admin block.
*
* @return array
*/
public function shortcodesControls() {
return array(
'delete',
'edit',
);
}
/**
* Output html for backend editor meta box.
*
* @param null|int $post
*
* @throws \Exception
*/
public function renderEditor( $post = null ) {
if ( ! vc_user_access()->part( 'grid_builder' )->can()->get() ) {
return;
}
require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/class-vc-grid-item.php' );
$this->post = $post;
vc_include_template( 'params/vc_grid_item/editor/vc_grid_item_editor.tpl.php', array(
'editor' => $this,
'post' => $this->post,
) );
add_action( 'admin_footer', array(
$this,
'renderEditorFooter',
) );
do_action( 'vc_backend_editor_render' );
do_action( 'vc_vc_grid_item_editor_render' );
add_action( 'vc_user_access_check-shortcode_edit', array(
$this,
'accessCheckShortcodeEdit',
), 10, 2 );
add_action( 'vc_user_access_check-shortcode_all', array(
$this,
'accessCheckShortcodeAll',
), 10, 2 );
}
/**
* @param $null
* @param $shortcode
* @return bool
* @throws \Exception
*/
public function accessCheckShortcodeEdit( $null, $shortcode ) {
return vc_user_access()->part( 'grid_builder' )->can()->get();
}
/**
* @param $null
* @param $shortcode
* @return bool
* @throws \Exception
*/
public function accessCheckShortcodeAll( $null, $shortcode ) {
return vc_user_access()->part( 'grid_builder' )->can()->get();
}
/**
* Output required html and js content for VC editor.
*
* Here comes panels, modals and js objects with data for mapped shortcodes.
*/
public function renderEditorFooter() {
vc_include_template( 'params/vc_grid_item/editor/partials/vc_grid_item_editor_footer.tpl.php', array(
'editor' => $this,
'post' => $this->post,
) );
do_action( 'vc_backend_editor_footer_render' );
}
public function registerBackendJavascript() {
parent::registerBackendJavascript();
wp_register_script( 'vc_grid_item_editor', vc_asset_url( 'js/dist/grid-builder.min.js' ), array( 'vc-backend-min-js' ), WPB_VC_VERSION, true );
wp_localize_script( 'vc_grid_item_editor', 'i18nLocaleGItem', array(
'preview' => esc_html__( 'Preview', 'js_composer' ),
'builder' => esc_html__( 'Builder', 'js_composer' ),
'add_template_message' => esc_html__( 'If you add this template, all your current changes will be removed. Are you sure you want to add template?', 'js_composer' ),
) );
}
public function enqueueJs() {
parent::enqueueJs();
wp_enqueue_script( 'vc_grid_item_editor' );
}
/**
* @return bool|\Vc_Templates_Editor_Grid_Item
*/
public function templatesEditor() {
if ( false === $this->templates_editor ) {
require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/editor/popups/class-vc-templates-editor-grid-item.php' );
$this->templates_editor = new Vc_Templates_Editor_Grid_Item();
}
return $this->templates_editor;
}
/**
* @param $template_id
* @param $template_type
* @return false|string
*/
public function loadPredefinedTemplate( $template_id, $template_type ) {
ob_start();
$this->templatesEditor()->load( $template_id );
return ob_get_clean();
}
/**
* @param $template_id
* @param $template_type
* @return false|string
*/
public function loadTemplate( $template_id, $template_type ) {
if ( 'grid_templates' === $template_type ) {
return $this->loadPredefinedTemplate( $template_id, $template_type );
} elseif ( 'grid_templates_custom' === $template_type ) {
return $this->templatesEditor()->loadCustomTemplate( $template_id );
}
return $template_id;
}
/**
* @param $path
* @return string
*/
public function templatePreviewPath( $path ) {
return 'params/vc_grid_item/editor/vc_ui-template-preview.tpl.php';
}
public function renderTemplatePreview() {
vc_user_access()->checkAdminNonce()->validateDie()->wpAny( 'edit_posts', 'edit_pages' )->validateDie()->part( 'grid_builder' )->can()->validateDie();
add_action( 'vc_templates_render_backend_template_preview', array(
$this,
'loadTemplate',
), 10, 2 );
add_filter( 'vc_render_template_preview_include_template', array(
$this,
'templatePreviewPath',
) );
visual_composer()->templatesPanelEditor()->renderTemplatePreview();
}
}

View File

@@ -0,0 +1,172 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* Class Vc_Grid_Item_Preview
*/
class Vc_Grid_Item_Preview {
protected $shortcodes_string = '';
protected $post_id = false;
public function render() {
$this->post_id = (int) vc_request_param( 'post_id' );
$this->shortcodes_string = stripslashes( vc_request_param( 'shortcodes_string', true ) );
require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/class-vc-grid-item.php' );
$grid_item = new Vc_Grid_Item();
$grid_item->setIsEnd( false );
$grid_item->setGridAttributes( array( 'element_width' => 4 ) );
$grid_item->setTemplate( $this->shortcodes_string, $this->post_id );
$this->enqueue();
vc_include_template( 'params/vc_grid_item/preview.tpl.php', array(
'preview' => $this,
'grid_item' => $grid_item,
'shortcodes_string' => $this->shortcodes_string,
'post' => $this->mockingPost(),
'default_width_value' => apply_filters( 'vc_grid_item_preview_render_default_width_value', 4 ),
) );
}
/**
* @param $css
* @return string
*/
public function addCssBackgroundImage( $css ) {
if ( empty( $css ) ) {
$css = 'background-image: url(' . vc_asset_url( 'vc/vc_gitem_image.png' ) . ') !important';
}
return $css;
}
/**
* @param $url
* @return string
*/
public function addImageUrl( $url ) {
if ( empty( $url ) ) {
$url = vc_asset_url( 'vc/vc_gitem_image.png' );
}
return $url;
}
/**
* @param $img
* @return string
*/
public function addImage( $img ) {
if ( empty( $img ) ) {
$img = '<img src="' . esc_url( vc_asset_url( 'vc/vc_gitem_image.png' ) ) . '" alt="">';
}
return $img;
}
/**
*
* @param $link
*
* @param $atts
* @param $css_class
* @return string
* @since 4.5
*
*/
public function disableContentLink( $link, $atts, $css_class ) {
return 'a' . ( strlen( $css_class ) > 0 ? ' class="' . esc_attr( $css_class ) . '"' : '' );
}
/**
*
* @param $link
*
* @param $atts
* @param $post
* @param $css_class
* @return string
* @since 4.5
*
*/
public function disableRealContentLink( $link, $atts, $post, $css_class ) {
return 'a' . ( strlen( $css_class ) > 0 ? ' class="' . esc_attr( $css_class ) . '"' : '' );
}
/**
* Used for filter: vc_gitem_zone_image_block_link
* @param $link
*
* @return string
* @since 4.5
*
*/
public function disableGitemZoneLink( $link ) {
return '';
}
public function enqueue() {
visual_composer()->frontCss();
visual_composer()->frontJsRegister();
wp_enqueue_script( 'prettyphoto' );
wp_enqueue_style( 'prettyphoto' );
wp_enqueue_style( 'js_composer_front' );
wp_enqueue_script( 'wpb_composer_front_js' );
wp_enqueue_style( 'js_composer_custom_css' );
VcShortcodeAutoloader::getInstance()->includeClass( 'WPBakeryShortCode_Vc_Basic_Grid' );
$grid = new WPBakeryShortCode_Vc_Basic_Grid( array( 'base' => 'vc_basic_grid' ) );
$grid->shortcodeScripts();
$grid->enqueueScripts();
}
/**
* @return array|\WP_Post|null
*/
public function mockingPost() {
$post = get_post( $this->post_id );
setup_postdata( $post );
$post->post_title = esc_html__( 'Post title', 'js_composer' );
$post->post_content = esc_html__( 'The WordPress Excerpt is an optional summary or description of a post; in short, a post summary.', 'js_composer' );
$post->post_excerpt = esc_html__( 'The WordPress Excerpt is an optional summary or description of a post; in short, a post summary.', 'js_composer' );
add_filter( 'get_the_categories', array(
$this,
'getTheCategories',
), 10, 2 );
$GLOBALS['post'] = $post;
return $post;
}
/**
* @param $categories
* @param $post_id
* @return array
*/
public function getTheCategories( $categories, $post_id ) {
$ret = $categories;
if ( ! $post_id || ( $post_id && $post_id === $this->post_id ) ) {
$cat = get_categories( 'number=5' );
if ( empty( $ret ) && ! empty( $cat ) ) {
$ret += $cat;
}
}
return $ret;
}
/**
* @param $img
* @return array
*/
public function addPlaceholderImage( $img ) {
if ( null === $img || false === $img ) {
$img = array(
'thumbnail' => '<img class="vc_img-placeholder vc_single_image-img" src="' . esc_url( vc_asset_url( 'vc/vc_gitem_image.png' ) ) . '" />',
);
}
return $img;
}
}

View File

@@ -0,0 +1,86 @@
<?php
/**
* @noinspection PhpMissingParentCallCommonInspection
* @package WPBakery
*/
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
require_once vc_path_dir( 'EDITORS_DIR', 'navbar/class-vc-navbar.php' );
/**
* Renders navigation bar for Editors.
*/
class Vc_Navbar_Grid_Item extends Vc_Navbar {
protected $controls = array(
'templates',
'save_backend',
'preview_template',
'animation_list',
'preview_item_width',
'edit',
);
/**
* @return string
*/
public function getControlTemplates() {
return '<li><a href="javascript:;" class="vc_icon-btn vc_templates-button" id="vc_templates-editor-button" title="' . esc_attr__( 'Templates', 'js_composer' ) . '"><i class="vc-composer-icon vc-c-icon-add_template"></i></a></li>';
}
/**
* @return string
*/
public function getControlPreviewTemplate() {
return '<li class="vc_pull-right">' . '<a href="#" class="vc_btn vc_btn-grey vc_btn-sm vc_navbar-btn" data-vc-navbar-control="preview">' . esc_html__( 'Preview', 'js_composer' ) . '</a>' . '</li>';
}
/**
* @return string
*/
public function getControlEdit() {
return '<li class="vc_pull-right">' . '<a data-vc-navbar-control="edit" class="vc_icon-btn vc_post-settings" title="' . esc_attr__( 'Grid element settings', 'js_composer' ) . '"><i class="vc-composer-icon vc-c-icon-cog"></i>' . '</a>' . '</li>';
}
/**
* @return string
*/
public function getControlSaveBackend() {
return '<li class="vc_pull-right vc_save-backend">' . '<a class="vc_btn vc_btn-sm vc_navbar-btn vc_btn-primary vc_control-save" id="wpb-save-post">' . esc_html__( 'Update', 'js_composer' ) . '</a>' . '</li>';
}
/**
* @return string
*/
public function getControlPreviewItemWidth() {
$output = '<li class="vc_pull-right vc_gitem-navbar-dropdown vc_gitem-navbar-preview-width" data-vc-grid-item="navbar_preview_width"><select data-vc-navbar-control="preview_width">';
for ( $i = 1; $i <= 12; $i ++ ) {
$output .= '<option value="' . esc_attr( $i ) . '">' . sprintf( esc_html__( '%s/12 width', 'js_composer' ), $i ) . '</option>';
}
$output .= '</select></li>';
return $output;
}
/**
* @return string
*/
public function getControlAnimationList() {
VcShortcodeAutoloader::getInstance()->includeClass( 'WPBakeryShortCode_Vc_Gitem_Animated_Block' );
$output = '';
$animations = WPBakeryShortCode_Vc_Gitem_Animated_Block::animations();
if ( is_array( $animations ) ) {
$output .= '<li class="vc_pull-right vc_gitem-navbar-dropdown"><select data-vc-navbar-control="animation">';
foreach ( $animations as $value => $key ) {
$output .= '<option value="' . esc_attr( $key ) . '">' . esc_html( $value ) . '</option>';
}
$output .= '</select></li>';
}
return $output;
}
}

View File

@@ -0,0 +1,45 @@
<?php
/**
* @noinspection PhpMissingParentCallCommonInspection
* @package WPBakery
*/
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
require_once vc_path_dir( 'EDITORS_DIR', 'popups/class-vc-add-element-box.php' );
/**
* Add element for VC editors with a list of mapped shortcodes for gri item constructor.
*
* @since 4.4
*/
class Vc_Add_Element_Box_Grid_Item extends Vc_Add_Element_Box {
/**
* Get shortcodes from param type vc_grid_item
* @return array|bool
* @throws \Exception
*/
public function shortcodes() {
return WpbMap_Grid_Item::getSortedGitemUserShortCodes();
}
/**
* Get categories list from mapping data.
* @return bool
* @throws \Exception
* @since 4.5
*/
public function getCategories() {
return WpbMap_Grid_Item::getGitemUserCategories();
}
/**
* @return mixed
* @throws \Exception
*/
public function getPartState() {
return vc_user_access()->part( 'grid_builder' )->getState();
}
}

View File

@@ -0,0 +1,221 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
require_once vc_path_dir( 'EDITORS_DIR', 'popups/class-vc-templates-panel-editor.php' );
require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/class-vc-grid-item.php' );
/**
* Class Vc_Templates_Editor_Grid_Item
*/
class Vc_Templates_Editor_Grid_Item extends Vc_Templates_Panel_Editor {
protected $default_templates = array(); // this prevents for loading default templates
public function __construct() {
add_filter( 'vc_templates_render_category', array(
$this,
'renderTemplateBlock',
), 10, 2 );
add_filter( 'vc_templates_render_template', array(
$this,
'renderTemplateWindowGrid',
), 10, 2 );
}
/**
* @param $category
* @return mixed
*/
public function renderTemplateBlock( $category ) {
if ( 'grid_templates' === $category['category'] || 'grid_templates_custom' === $category['category'] ) {
$category['output'] = '<div class="vc_col-md-12">';
if ( isset( $category['category_name'] ) ) {
$category['output'] .= '<h3>' . esc_html( $category['category_name'] ) . '</h3>';
}
if ( isset( $category['category_description'] ) ) {
$category['output'] .= '<p class="vc_description">' . esc_html( $category['category_description'] ) . '</p>';
}
$category['output'] .= '</div>';
$category['output'] .= '
<div class="vc_column vc_col-sm-12">
<div class="vc_ui-template-list vc_templates-list-my_templates vc_ui-list-bar" data-vc-action="collapseAll">';
if ( ! empty( $category['templates'] ) ) {
foreach ( $category['templates'] as $template ) {
$category['output'] .= $this->renderTemplateListItem( $template );
}
}
$category['output'] .= '
</div>
</div>';
}
return $category;
}
/** Output rendered template in modal dialog
* @param $template_name
* @param $template_data
*
* @return string
* @since 4.4
*
*/
public function renderTemplateWindowGrid( $template_name, $template_data ) {
if ( 'grid_templates' === $template_data['type'] || 'grid_templates_custom' === $template_data['type'] ) {
return $this->renderTemplateWindowGridTemplate( $template_name, $template_data );
}
return $template_name;
}
/**
* @param $template_name
* @param $template_data
*
* @return string
* @since 4.4
*
*/
protected function renderTemplateWindowGridTemplate( $template_name, $template_data ) {
ob_start();
$template_id = esc_attr( $template_data['unique_id'] );
$template_name = esc_html( $template_name );
$preview_template_title = esc_attr__( 'Preview template', 'js_composer' );
$add_template_title = esc_attr__( 'Preview template', 'js_composer' );
echo sprintf( '<button type="button" class="vc_ui-list-bar-item-trigger" title="%s"
data-template-handler=""
data-vc-ui-element="template-title">%s</button>
<div class="vc_ui-list-bar-item-actions">
<button type="button" class="vc_general vc_ui-control-button" title="%s"
data-template-handler=""
data-vc-ui-element="template-title">
<i class="vc-composer-icon vc-c-icon-add"></i>
</button>
<button type="button" class="vc_general vc_ui-control-button" title="%s"
data-vc-preview-handler data-vc-container=".vc_ui-list-bar" data-vc-target="[data-template_id=%s]">
<i class="vc-composer-icon vc-c-icon-arrow_drop_down"></i>
</button>
</div>', esc_attr( $add_template_title ), esc_html( $template_name ), esc_attr( $add_template_title ), esc_attr( $preview_template_title ), esc_attr( $template_id ) );
return ob_get_clean();
}
/**
* @param bool $template_id
*/
public function load( $template_id = false ) {
if ( ! $template_id ) {
$template_id = vc_post_param( 'template_unique_id' );
}
if ( ! isset( $template_id ) || '' === $template_id ) {
echo 'Error: TPL-02';
die;
}
$predefined_template = Vc_Grid_Item::predefinedTemplate( $template_id );
if ( $predefined_template ) {
echo esc_html( trim( $predefined_template['template'] ) );
}
}
/**
* @param bool $template_id
* @return string
*/
public function loadCustomTemplate( $template_id = false ) {
if ( ! $template_id ) {
$template_id = vc_post_param( 'template_unique_id' );
}
if ( ! isset( $template_id ) || '' === $template_id ) {
echo 'Error: TPL-02';
die();
}
$post = get_post( $template_id );
if ( $post && Vc_Grid_Item_Editor::postType() === $post->post_type ) {
return $post->post_content;
}
return '';
}
/**
* @return array|mixed|void
*/
public function getAllTemplates() {
$data = array();
$grid_templates = $this->getGridTemplates();
// this has only 'name' and 'template' key and index 'key' is template id.
if ( ! empty( $grid_templates ) ) {
$arr_category = array(
'category' => 'grid_templates',
'category_name' => esc_html__( 'Grid Templates', 'js_composer' ),
'category_weight' => 10,
);
$category_templates = array();
foreach ( $grid_templates as $template_id => $template_data ) {
$category_templates[] = array(
'unique_id' => $template_id,
'name' => $template_data['name'],
'type' => 'grid_templates',
// for rendering in backend/frontend with ajax
);
}
$arr_category['templates'] = $category_templates;
$data[] = $arr_category;
}
$custom_grid_templates = $this->getCustomTemplateList();
if ( ! empty( $custom_grid_templates ) ) {
$arr_category = array(
'category' => 'grid_templates_custom',
'category_name' => esc_html__( 'Custom Grid Templates', 'js_composer' ),
'category_weight' => 10,
);
$category_templates = array();
foreach ( $custom_grid_templates as $template_name => $template_id ) {
$category_templates[] = array(
'unique_id' => $template_id,
'name' => $template_name,
'type' => 'grid_templates_custom',
// for rendering in backend/frontend with ajax);
);
}
$arr_category['templates'] = $category_templates;
$data[] = $arr_category;
}
// To get any other 3rd "Custom template" - do this by hook filter 'vc_get_all_templates'
return apply_filters( 'vc_grid_get_all_templates', $data );
}
/**
* @return array
*/
protected function getCustomTemplateList() {
$list = array();
$templates = get_posts( array(
'post_type' => Vc_Grid_Item_Editor::postType(),
'numberposts' => - 1,
) );
foreach ( $templates as $template ) {
$id = $template->ID;
$list[ $template->post_title ] = $id;
}
return $list;
}
/**
* @return bool|mixed
*/
public function getGridTemplates() {
$list = Vc_Grid_Item::predefinedTemplates();
return $list;
}
}

View File

@@ -0,0 +1,917 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
VcShortcodeAutoloader::getInstance()->includeClass( 'WPBakeryShortCode_Vc_Gitem_Animated_Block' );
global $vc_gitem_add_link_param;
$vc_gitem_add_link_param = apply_filters( 'vc_gitem_add_link_param', array(
'type' => 'dropdown',
'heading' => esc_html__( 'Add link', 'js_composer' ),
'param_name' => 'link',
'value' => array(
esc_html__( 'None', 'js_composer' ) => 'none',
esc_html__( 'Post link', 'js_composer' ) => 'post_link',
esc_html__( 'Post author', 'js_composer' ) => 'post_author',
esc_html__( 'Large image', 'js_composer' ) => 'image',
esc_html__( 'Large image (prettyPhoto)', 'js_composer' ) => 'image_lightbox',
esc_html__( 'Custom', 'js_composer' ) => 'custom',
),
'description' => esc_html__( 'Select link option.', 'js_composer' ),
) );
$zone_params = array(
$vc_gitem_add_link_param,
array(
'type' => 'vc_link',
'heading' => esc_html__( 'URL (Link)', 'js_composer' ),
'param_name' => 'url',
'dependency' => array(
'element' => 'link',
'value' => array( 'custom' ),
),
'description' => esc_html__( 'Add custom link.', 'js_composer' ),
),
array(
'type' => 'checkbox',
'heading' => esc_html__( 'Use featured image on background?', 'js_composer' ),
'param_name' => 'featured_image',
'value' => array( esc_html__( 'Yes', 'js_composer' ) => 'yes' ),
'description' => esc_html__( 'Note: Featured image overwrites background image and color from "Design Options".', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Image size', 'js_composer' ),
'param_name' => 'img_size',
'value' => 'large',
'description' => esc_html__( 'Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)).', 'js_composer' ),
'dependency' => array(
'element' => 'featured_image',
'not_empty' => true,
),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
);
$post_data_params = array(
$vc_gitem_add_link_param,
array(
'type' => 'vc_link',
'heading' => esc_html__( 'URL (Link)', 'js_composer' ),
'param_name' => 'url',
'dependency' => array(
'element' => 'link',
'value' => array( 'custom' ),
),
'description' => esc_html__( 'Add custom link.', 'js_composer' ),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
);
$custom_fonts_params = array(
array(
'type' => 'font_container',
'param_name' => 'font_container',
'value' => '',
'settings' => array(
'fields' => array(
'tag' => 'div',
// default value h2
'text_align',
'tag_description' => esc_html__( 'Select element tag.', 'js_composer' ),
'text_align_description' => esc_html__( 'Select text alignment.', 'js_composer' ),
'font_size_description' => esc_html__( 'Enter font size.', 'js_composer' ),
'line_height_description' => esc_html__( 'Enter line height.', 'js_composer' ),
'color_description' => esc_html__( 'Select color for your element.', 'js_composer' ),
),
),
),
array(
'type' => 'checkbox',
'heading' => esc_html__( 'Use custom fonts?', 'js_composer' ),
'param_name' => 'use_custom_fonts',
'value' => array( esc_html__( 'Yes', 'js_composer' ) => 'yes' ),
'description' => esc_html__( 'Enable Google fonts.', 'js_composer' ),
),
array(
'type' => 'font_container',
'param_name' => 'block_container',
'value' => '',
'settings' => array(
'fields' => array(
'font_size',
'line_height',
'color',
'tag_description' => esc_html__( 'Select element tag.', 'js_composer' ),
'text_align_description' => esc_html__( 'Select text alignment.', 'js_composer' ),
'font_size_description' => esc_html__( 'Enter font size.', 'js_composer' ),
'line_height_description' => esc_html__( 'Enter line height.', 'js_composer' ),
'color_description' => esc_html__( 'Select color for your element.', 'js_composer' ),
),
),
'group' => esc_html__( 'Custom fonts', 'js_composer' ),
'dependency' => array(
'element' => 'use_custom_fonts',
'value' => array( 'yes' ),
),
),
array(
'type' => 'checkbox',
'heading' => esc_html__( 'Yes theme default font family?', 'js_composer' ),
'param_name' => 'use_theme_fonts',
'value' => array( esc_html__( 'Yes', 'js_composer' ) => 'yes' ),
'description' => esc_html__( 'Yes font family from the theme.', 'js_composer' ),
'group' => esc_html__( 'Custom fonts', 'js_composer' ),
'dependency' => array(
'element' => 'use_custom_fonts',
'value' => array( 'yes' ),
),
),
array(
'type' => 'google_fonts',
'param_name' => 'google_fonts',
'value' => '',
// Not recommended, this will override 'settings'. 'font_family:'.rawurlencode('Exo:100,100italic,200,200italic,300,300italic,regular,italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic').'|font_style:'.rawurlencode('900 bold italic:900:italic'),
'settings' => array(
'fields' => array(
// Default font style. Name:weight:style, example: "800 bold regular:800:normal"
'font_family_description' => esc_html__( 'Select font family.', 'js_composer' ),
'font_style_description' => esc_html__( 'Select font styling.', 'js_composer' ),
),
),
'group' => esc_html__( 'Custom fonts', 'js_composer' ),
'dependency' => array(
'element' => 'use_theme_fonts',
'value_not_equal_to' => 'yes',
),
),
);
$list = array(
'vc_gitem' => array(
'name' => esc_html__( 'Grid Item', 'js_composer' ),
'base' => 'vc_gitem',
'is_container' => true,
'icon' => 'icon-wpb-gitem',
'content_element' => false,
'show_settings_on_create' => false,
'category' => esc_html__( 'Content', 'js_composer' ),
'description' => esc_html__( 'Main grid item', 'js_composer' ),
'params' => array(
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
),
'js_view' => 'VcGitemView',
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_animated_block' => array(
'base' => 'vc_gitem_animated_block',
'name' => esc_html__( 'A/B block', 'js_composer' ),
'content_element' => false,
'is_container' => true,
'show_settings_on_create' => false,
'icon' => 'icon-wpb-gitem-block',
'category' => esc_html__( 'Content', 'js_composer' ),
'controls' => array(),
'as_parent' => array(
'only' => array(
'vc_gitem_zone_a',
'vc_gitem_zone_b',
),
),
'params' => array(
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Animation', 'js_composer' ),
'param_name' => 'animation',
'value' => WPBakeryShortCode_Vc_Gitem_Animated_Block::animations(),
),
),
'js_view' => 'VcGitemAnimatedBlockView',
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_zone' => array(
'name' => esc_html__( 'Zone', 'js_composer' ),
'base' => 'vc_gitem_zone',
'content_element' => false,
'is_container' => true,
'show_settings_on_create' => false,
'icon' => 'icon-wpb-gitem-zone',
'category' => esc_html__( 'Content', 'js_composer' ),
'controls' => array( 'edit' ),
'as_parent' => array( 'only' => 'vc_gitem_row' ),
'js_view' => 'VcGitemZoneView',
'params' => $zone_params,
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_zone_a' => array(
'name' => esc_html__( 'Normal', 'js_composer' ),
'base' => 'vc_gitem_zone_a',
'content_element' => false,
'is_container' => true,
'show_settings_on_create' => false,
'icon' => 'icon-wpb-gitem-zone',
'category' => esc_html__( 'Content', 'js_composer' ),
'controls' => array( 'edit' ),
'as_parent' => array( 'only' => 'vc_gitem_row' ),
'js_view' => 'VcGitemZoneView',
'params' => array_merge( array(
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Height mode', 'js_composer' ),
'param_name' => 'height_mode',
'value' => array(
'1:1' => '1-1',
esc_html__( 'Original', 'js_composer' ) => 'original',
'4:3' => '4-3',
'3:4' => '3-4',
'16:9' => '16-9',
'9:16' => '9-16',
esc_html__( 'Custom', 'js_composer' ) => 'custom',
),
'description' => esc_html__( 'Sizing proportions for height and width. Select "Original" to scale image without cropping.', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Height', 'js_composer' ),
'param_name' => 'height',
'dependency' => array(
'element' => 'height_mode',
'value' => array( 'custom' ),
),
'description' => esc_html__( 'Enter custom height.', 'js_composer' ),
),
), $zone_params ),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_zone_b' => array(
'name' => esc_html__( 'Hover', 'js_composer' ),
'base' => 'vc_gitem_zone_b',
'content_element' => false,
'is_container' => true,
'show_settings_on_create' => false,
'icon' => 'icon-wpb-gitem-zone',
'category' => esc_html__( 'Content', 'js_composer' ),
'controls' => array( 'edit' ),
'as_parent' => array( 'only' => 'vc_gitem_row' ),
'js_view' => 'VcGitemZoneView',
'params' => $zone_params,
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_zone_c' => array(
'name' => esc_html__( 'Additional', 'js_composer' ),
'base' => 'vc_gitem_zone_c',
'content_element' => false,
'is_container' => true,
'show_settings_on_create' => false,
'icon' => 'icon-wpb-gitem-zone',
'category' => esc_html__( 'Content', 'js_composer' ),
'controls' => array(
'move',
'delete',
'edit',
),
'as_parent' => array( 'only' => 'vc_gitem_row' ),
'js_view' => 'VcGitemZoneCView',
'params' => array(
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_row' => array(
'name' => esc_html__( 'Row', 'js_composer' ),
'base' => 'vc_gitem_row',
'content_element' => false,
'is_container' => true,
'icon' => 'icon-wpb-row',
'weight' => 1000,
'show_settings_on_create' => false,
'controls' => array(
'layout',
'delete',
),
'allowed_container_element' => 'vc_gitem_col',
'category' => esc_html__( 'Content', 'js_composer' ),
'description' => esc_html__( 'Place content elements inside the row', 'js_composer' ),
'params' => array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
),
'js_view' => 'VcGitemRowView',
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_col' => array(
'name' => esc_html__( 'Column', 'js_composer' ),
'base' => 'vc_gitem_col',
'icon' => 'icon-wpb-row',
'weight' => 1000,
'is_container' => true,
'allowed_container_element' => false,
'content_element' => false,
'controls' => array( 'edit' ),
'description' => esc_html__( 'Place content elements inside the column', 'js_composer' ),
'params' => array(
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Width', 'js_composer' ),
'param_name' => 'width',
'value' => array(
esc_html__( '1 column - 1/12', 'js_composer' ) => '1/12',
esc_html__( '2 columns - 1/6', 'js_composer' ) => '1/6',
esc_html__( '3 columns - 1/4', 'js_composer' ) => '1/4',
esc_html__( '4 columns - 1/3', 'js_composer' ) => '1/3',
esc_html__( '5 columns - 5/12', 'js_composer' ) => '5/12',
esc_html__( '6 columns - 1/2', 'js_composer' ) => '1/2',
esc_html__( '7 columns - 7/12', 'js_composer' ) => '7/12',
esc_html__( '8 columns - 2/3', 'js_composer' ) => '2/3',
esc_html__( '9 columns - 3/4', 'js_composer' ) => '3/4',
esc_html__( '10 columns - 5/6', 'js_composer' ) => '5/6',
esc_html__( '11 columns - 11/12', 'js_composer' ) => '11/12',
esc_html__( '12 columns - 1/1', 'js_composer' ) => '1/1',
),
'description' => esc_html__( 'Select column width.', 'js_composer' ),
'std' => '1/1',
),
array(
'type' => 'checkbox',
'heading' => esc_html__( 'Use featured image on background?', 'js_composer' ),
'param_name' => 'featured_image',
'value' => array( esc_html__( 'Yes', 'js_composer' ) => 'yes' ),
'description' => esc_html__( 'Note: Featured image overwrites background image and color from "Design Options".', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Image size', 'js_composer' ),
'param_name' => 'img_size',
'value' => 'large',
'description' => esc_html__( 'Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)).', 'js_composer' ),
'dependency' => array(
'element' => 'featured_image',
'not_empty' => true,
),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
),
'js_view' => 'VcGitemColView',
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_post_title' => array(
'name' => esc_html__( 'Post Title', 'js_composer' ),
'base' => 'vc_gitem_post_title',
'icon' => 'vc_icon-vc-gitem-post-title',
'category' => esc_html__( 'Post', 'js_composer' ),
'description' => esc_html__( 'Title of current post', 'js_composer' ),
'params' => array_merge( $post_data_params, $custom_fonts_params, array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
) ),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_post_excerpt' => array(
'name' => esc_html__( 'Post Excerpt', 'js_composer' ),
'base' => 'vc_gitem_post_excerpt',
'icon' => 'vc_icon-vc-gitem-post-excerpt',
'category' => esc_html__( 'Post', 'js_composer' ),
'description' => esc_html__( 'Excerpt or manual excerpt', 'js_composer' ),
'params' => array_merge( $post_data_params, $custom_fonts_params, array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
) ),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_post_author' => array(
'name' => esc_html__( 'Post Author', 'js_composer' ),
'base' => 'vc_gitem_post_author',
'icon' => 'vc_icon-vc-gitem-post-author',
// @todo change icon ?
'category' => esc_html__( 'Post', 'js_composer' ),
'description' => esc_html__( 'Author of current post', 'js_composer' ),
'params' => array_merge( array(
array(
'type' => 'checkbox',
'heading' => esc_html__( 'Add link', 'js_composer' ),
'param_name' => 'link',
'value' => '',
'description' => esc_html__( 'Add link to author?', 'js_composer' ),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
), $custom_fonts_params, array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
) ),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_post_categories' => array(
'name' => esc_html__( 'Post Categories', 'js_composer' ),
'base' => 'vc_gitem_post_categories',
'icon' => 'vc_icon-vc-gitem-post-categories',
// @todo change icon ?
'category' => esc_html__( 'Post', 'js_composer' ),
'description' => esc_html__( 'Categories of current post', 'js_composer' ),
'params' => array(
array(
'type' => 'checkbox',
'heading' => esc_html__( 'Add link', 'js_composer' ),
'param_name' => 'link',
'value' => '',
'description' => esc_html__( 'Add link to category?', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Style', 'js_composer' ),
'param_name' => 'category_style',
'value' => array(
esc_html__( 'None', 'js_composer' ) => ' ',
esc_html__( 'Comma', 'js_composer' ) => ', ',
esc_html__( 'Rounded', 'js_composer' ) => 'filled vc_grid-filter-filled-round-all',
esc_html__( 'Less Rounded', 'js_composer' ) => 'filled vc_grid-filter-filled-rounded-all',
esc_html__( 'Border', 'js_composer' ) => 'bordered',
esc_html__( 'Rounded Border', 'js_composer' ) => 'bordered-rounded vc_grid-filter-filled-round-all',
esc_html__( 'Less Rounded Border', 'js_composer' ) => 'bordered-rounded-less vc_grid-filter-filled-rounded-all',
),
'description' => esc_html__( 'Select category display style.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Color', 'js_composer' ),
'param_name' => 'category_color',
'value' => vc_get_shared( 'colors' ),
'std' => 'grey',
'param_holder_class' => 'vc_colored-dropdown',
'dependency' => array(
'element' => 'category_style',
'value_not_equal_to' => array(
' ',
', ',
),
),
'description' => esc_html__( 'Select category color.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Category size', 'js_composer' ),
'param_name' => 'category_size',
'value' => vc_get_shared( 'sizes' ),
'std' => 'md',
'description' => esc_html__( 'Select category size.', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_image' => array(
'name' => esc_html__( 'Post Image', 'js_composer' ),
'base' => 'vc_gitem_image',
'icon' => 'vc_icon-vc-gitem-image',
'category' => esc_html__( 'Post', 'js_composer' ),
'description' => esc_html__( 'Featured image', 'js_composer' ),
'params' => array(
$vc_gitem_add_link_param,
array(
'type' => 'vc_link',
'heading' => esc_html__( 'URL (Link)', 'js_composer' ),
'param_name' => 'url',
'dependency' => array(
'element' => 'link',
'value' => array( 'custom' ),
),
'description' => esc_html__( 'Add custom link.', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Image size', 'js_composer' ),
'param_name' => 'img_size',
'description' => esc_html__( 'Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)). Leave parameter empty to use "thumbnail" by default.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Image alignment', 'js_composer' ),
'param_name' => 'alignment',
'value' => array(
esc_html__( 'Left', 'js_composer' ) => '',
esc_html__( 'Right', 'js_composer' ) => 'right',
esc_html__( 'Center', 'js_composer' ) => 'center',
),
'description' => esc_html__( 'Select image alignment.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Image style', 'js_composer' ),
'param_name' => 'style',
'value' => vc_get_shared( 'single image styles' ),
'description' => esc_html__( 'Select image display style.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Border color', 'js_composer' ),
'param_name' => 'border_color',
'value' => vc_get_shared( 'colors' ),
'std' => 'grey',
'dependency' => array(
'element' => 'style',
'value' => array(
'vc_box_border',
'vc_box_border_circle',
'vc_box_outline',
'vc_box_outline_circle',
),
),
'description' => esc_html__( 'Border color.', 'js_composer' ),
'param_holder_class' => 'vc_colored-dropdown',
),
vc_map_add_css_animation(),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_post_date' => array(
'name' => esc_html__( 'Post Date', 'js_composer' ),
'base' => 'vc_gitem_post_date',
'icon' => 'vc_icon-vc-gitem-post-date',
'category' => esc_html__( 'Post', 'js_composer' ),
'description' => esc_html__( 'Post publish date', 'js_composer' ),
'params' => array_merge( $post_data_params, $custom_fonts_params, array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
) ),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
'vc_gitem_post_meta' => array(
'name' => esc_html__( 'Custom Field', 'js_composer' ),
'base' => 'vc_gitem_post_meta',
'icon' => 'vc_icon-vc-gitem-post-meta',
'category' => array(
esc_html__( 'Elements', 'js_composer' ),
),
'description' => esc_html__( 'Custom fields data from meta values of the post.', 'js_composer' ),
'params' => array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Field key name', 'js_composer' ),
'param_name' => 'key',
'description' => esc_html__( 'Enter custom field name to retrieve meta data value.', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Label', 'js_composer' ),
'param_name' => 'label',
'description' => esc_html__( 'Enter label to display before key value.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Alignment', 'js_composer' ),
'param_name' => 'align',
'value' => array(
esc_html__( 'Left', 'js_composer' ) => 'left',
esc_html__( 'Right', 'js_composer' ) => 'right',
esc_html__( 'Center', 'js_composer' ) => 'center',
esc_html__( 'Justify', 'js_composer' ) => 'justify',
),
'description' => esc_html__( 'Select alignment.', 'js_composer' ),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
),
'post_type' => Vc_Grid_Item_Editor::postType(),
),
);
$shortcode_vc_column_text = WPBMap::getShortCode( 'vc_column_text' );
if ( is_array( $shortcode_vc_column_text ) && isset( $shortcode_vc_column_text['base'] ) ) {
$list['vc_column_text'] = $shortcode_vc_column_text;
$list['vc_column_text']['post_type'] = Vc_Grid_Item_Editor::postType();
$remove = array( 'el_id' );
foreach ( $list['vc_column_text']['params'] as $k => $v ) {
if ( in_array( $v['param_name'], $remove, true ) ) {
unset( $list['vc_column_text']['params'][ $k ] );
}
}
}
$shortcode_vc_separator = WPBMap::getShortCode( 'vc_separator' );
if ( is_array( $shortcode_vc_separator ) && isset( $shortcode_vc_separator['base'] ) ) {
$list['vc_separator'] = $shortcode_vc_separator;
$list['vc_separator']['post_type'] = Vc_Grid_Item_Editor::postType();
$remove = array( 'el_id' );
foreach ( $list['vc_separator']['params'] as $k => $v ) {
if ( in_array( $v['param_name'], $remove, true ) ) {
unset( $list['vc_separator']['params'][ $k ] );
}
}
}
$shortcode_vc_text_separator = WPBMap::getShortCode( 'vc_text_separator' );
if ( is_array( $shortcode_vc_text_separator ) && isset( $shortcode_vc_text_separator['base'] ) ) {
$list['vc_text_separator'] = $shortcode_vc_text_separator;
$list['vc_text_separator']['post_type'] = Vc_Grid_Item_Editor::postType();
$remove = array( 'el_id' );
foreach ( $list['vc_text_separator']['params'] as $k => $v ) {
if ( in_array( $v['param_name'], $remove, true ) ) {
unset( $list['vc_text_separator']['params'][ $k ] );
}
}
}
$shortcode_vc_icon = WPBMap::getShortCode( 'vc_icon' );
if ( is_array( $shortcode_vc_icon ) && isset( $shortcode_vc_icon['base'] ) ) {
$list['vc_icon'] = $shortcode_vc_icon;
$list['vc_icon']['post_type'] = Vc_Grid_Item_Editor::postType();
$list['vc_icon']['params'] = vc_map_integrate_shortcode( 'vc_icon', '', '', array(
'exclude' => array(
'link',
'el_id',
),
) );
}
$list['vc_single_image'] = array(
'name' => esc_html__( 'Single Image', 'js_composer' ),
'base' => 'vc_single_image',
'icon' => 'icon-wpb-single-image',
'category' => esc_html__( 'Content', 'js_composer' ),
'description' => esc_html__( 'Simple image with CSS animation', 'js_composer' ),
'params' => array(
array(
'type' => 'textfield',
'heading' => esc_html__( 'Widget title', 'js_composer' ),
'param_name' => 'title',
'description' => esc_html__( 'Enter text used as widget title (Note: located above content element).', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Image source', 'js_composer' ),
'param_name' => 'source',
'value' => array(
esc_html__( 'Media library', 'js_composer' ) => 'media_library',
esc_html__( 'External link', 'js_composer' ) => 'external_link',
),
'std' => 'media_library',
'description' => esc_html__( 'Select image source.', 'js_composer' ),
),
array(
'type' => 'attach_image',
'heading' => esc_html__( 'Image', 'js_composer' ),
'param_name' => 'image',
'value' => '',
'description' => esc_html__( 'Select image from media library.', 'js_composer' ),
'dependency' => array(
'element' => 'source',
'value' => 'media_library',
),
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'External link', 'js_composer' ),
'param_name' => 'custom_src',
'description' => esc_html__( 'Select external link.', 'js_composer' ),
'dependency' => array(
'element' => 'source',
'value' => 'external_link',
),
),
vc_map_add_css_animation(),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Image size', 'js_composer' ),
'param_name' => 'img_size',
'description' => esc_html__( 'Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)). Leave parameter empty to use "thumbnail" by default.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Image alignment', 'js_composer' ),
'param_name' => 'alignment',
'value' => array(
esc_html__( 'Left', 'js_composer' ) => '',
esc_html__( 'Right', 'js_composer' ) => 'right',
esc_html__( 'Center', 'js_composer' ) => 'center',
),
'description' => esc_html__( 'Select image alignment.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Image style', 'js_composer' ),
'param_name' => 'style',
'value' => vc_get_shared( 'single image styles' ),
'description' => esc_html__( 'Select image display style.', 'js_composer' ),
),
array(
'type' => 'dropdown',
'heading' => esc_html__( 'Border color', 'js_composer' ),
'param_name' => 'border_color',
'value' => vc_get_shared( 'colors' ),
'std' => 'grey',
'dependency' => array(
'element' => 'style',
'value' => array(
'vc_box_border',
'vc_box_border_circle',
'vc_box_outline',
'vc_box_outline_circle',
),
),
'description' => esc_html__( 'Border color.', 'js_composer' ),
'param_holder_class' => 'vc_colored-dropdown',
),
array(
'type' => 'textfield',
'heading' => esc_html__( 'Extra class name', 'js_composer' ),
'param_name' => 'el_class',
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer' ),
),
array(
'type' => 'css_editor',
'heading' => esc_html__( 'CSS box', 'js_composer' ),
'param_name' => 'css',
'group' => esc_html__( 'Design Options', 'js_composer' ),
),
),
'post_type' => Vc_Grid_Item_Editor::postType(),
);
$shortcode_vc_button2 = WPBMap::getShortCode( 'vc_button2' );
if ( is_array( $shortcode_vc_button2 ) && isset( $shortcode_vc_button2['base'] ) ) {
$list['vc_button2'] = $shortcode_vc_button2;
$list['vc_button2']['post_type'] = Vc_Grid_Item_Editor::postType();
}
$shortcode_vc_btn = WPBMap::getShortCode( 'vc_btn' );
if ( is_array( $shortcode_vc_btn ) && isset( $shortcode_vc_btn['base'] ) ) {
$list['vc_btn'] = $shortcode_vc_btn;
$list['vc_btn']['post_type'] = Vc_Grid_Item_Editor::postType();
unset( $list['vc_btn']['params'][1] );
$remove = array( 'el_id' );
foreach ( $list['vc_btn']['params'] as $k => $v ) {
if ( in_array( $v['param_name'], $remove, true ) ) {
unset( $list['vc_btn']['params'][ $k ] );
}
}
}
$shortcode_vc_custom_heading = WPBMap::getShortCode( 'vc_custom_heading' );
if ( is_array( $shortcode_vc_custom_heading ) && isset( $shortcode_vc_custom_heading['base'] ) ) {
$list['vc_custom_heading'] = $shortcode_vc_custom_heading;
$list['vc_custom_heading']['post_type'] = Vc_Grid_Item_Editor::postType();
$remove = array(
'link',
'source',
'el_id',
);
foreach ( $list['vc_custom_heading']['params'] as $k => $v ) {
if ( in_array( $v['param_name'], $remove, true ) ) {
unset( $list['vc_custom_heading']['params'][ $k ] );
}
// text depends on source. remove dependency so text is always saved
if ( 'text' === $v['param_name'] ) {
unset( $list['vc_custom_heading']['params'][ $k ]['dependency'] );
}
}
}
$shortcode_vc_empty_space = WPBMap::getShortCode( 'vc_empty_space' );
if ( is_array( $shortcode_vc_empty_space ) && isset( $shortcode_vc_empty_space['base'] ) ) {
$list['vc_empty_space'] = $shortcode_vc_empty_space;
$list['vc_empty_space']['post_type'] = Vc_Grid_Item_Editor::postType();
$remove = array( 'el_id' );
foreach ( $list['vc_empty_space']['params'] as $k => $v ) {
if ( in_array( $v['param_name'], $remove, true ) ) {
unset( $list['vc_empty_space']['params'][ $k ] );
}
}
}
foreach (
array(
'vc_icon',
'vc_button2',
'vc_btn',
'vc_custom_heading',
'vc_single_image',
) as $key
) {
if ( isset( $list[ $key ] ) ) {
if ( ! isset( $list[ $key ]['params'] ) ) {
$list[ $key ]['params'] = array();
}
if ( 'vc_button2' === $key ) {
// change settings for vc_link in dropdown. Add dependency.
$list[ $key ]['params'][0] = array(
'type' => 'vc_link',
'heading' => esc_html__( 'URL (Link)', 'js_composer' ),
'param_name' => 'url',
'dependency' => array(
'element' => 'link',
'value' => array( 'custom' ),
),
'description' => esc_html__( 'Add custom link.', 'js_composer' ),
);
} else {
array_unshift( $list[ $key ]['params'], array(
'type' => 'vc_link',
'heading' => esc_html__( 'URL (Link)', 'js_composer' ),
'param_name' => 'url',
'dependency' => array(
'element' => 'link',
'value' => array( 'custom' ),
),
'description' => esc_html__( 'Add custom link.', 'js_composer' ),
) );
}
// Add link dropdown
array_unshift( $list[ $key ]['params'], $vc_gitem_add_link_param );
}
}
foreach ( $list as $key => $value ) {
if ( isset( $list[ $key ]['params'] ) ) {
$list[ $key ]['params'] = array_values( $list[ $key ]['params'] );
}
}
return $list;

View File

@@ -0,0 +1,163 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
return array(
'none' => array(
'name' => esc_html__( 'Basic grid: Default', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block][vc_gitem_zone_a height_mode="1-1" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419240516480{background-color: #f9f9f9 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'basicGrid_ScaleInWithRotation' => array(
'name' => esc_html__( 'Basic grid: Scale in with rotation', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="1-1" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419240793832{background-color: rgba(0,0,0,0.3) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419240595465{background-color: #f9f9f9 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'basicGrid_FadeInWithSideContent' => array(
'name' => esc_html__( 'Basic grid: Fade with side content', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="right" css=".vc_custom_1420541757398{background-color: #f9f9f9 !important;}"][vc_gitem_animated_block animation="fadeIn"][vc_gitem_zone_a height_mode="3-4" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419242201096{background-color: rgba(255,255,255,0.2) !important;*background-color: rgb(255,255,255) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419242120132{background-color: #f9f9f9 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_date link="none" font_container="tag:div|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'basicGrid_SlideBottomWithIcon' => array(
'name' => esc_html__( 'Basic grid: Slide bottom with icon', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block animation="slideBottom"][vc_gitem_zone_a height_mode="1-1" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419251931135{background-color: rgba(0,0,0,0.3) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_icon type="fontawesome" icon_fontawesome="fa fa-search" icon_openiconic="vc-oi vc-oi-dial" icon_typicons="typcn typcn-zoom" icon_entypo="entypo-icon entypo-icon-note" icon_linecons="vc_li vc_li-heart" color="white" background_color="white" size="md" align="center"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419251874438{background-color: #f9f9f9 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:center" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:center" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="center"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'basicGrid_VerticalFlip' => array(
'name' => esc_html__( 'Basic grid: Vertical flip', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="" position=""][vc_gitem_animated_block animation="flipFadeIn"][vc_gitem_zone_a height_mode="3-4" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419250758402{background-color: #353535 !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1419250916067{padding-right: 15px !important;padding-left: 15px !important;}"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:500%20bold%20regular%3A500%3Anormal" block_container="font_size:22|color:%23ffffff|line_height:1.2"][vc_separator color="white" align="align_center" el_width="50"][vc_gitem_post_excerpt link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:300%20light%20regular%3A300%3Anormal" block_container="font_size:14|color:%23ffffff|line_height:1.3"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'basicGrid_NoAnimation' => array(
'name' => esc_html__( 'Basic grid: No animation', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="none"][vc_gitem_zone_a height_mode="1-1" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419253765784{background-color: rgba(0,0,0,0.3) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_date link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:12|color:%23e5e5e5" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_title link="none" font_container="tag:h3|text_align:center" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'basicGrid_GoTopSlideout' => array(
'name' => esc_html__( 'Basic grid: Go top slideout', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="goTop20"][vc_gitem_zone_a height_mode="3-4" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1419254486087{background-color: #f2f2f2 !important;}"][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'basicGrid_TextFirst' => array(
'name' => esc_html__( 'Basic grid: Text first', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="flipHorizontalFadeIn"][vc_gitem_zone_a height_mode="1-1" link="post_link" featured_image="" css=".vc_custom_1419260513295{padding-right: 15px !important;padding-left: 15px !important;background-color: #2d2d2d !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_gitem_post_title link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:300%20light%20regular%3A300%3Anormal"][vc_separator color="white" align="align_left" border_width="2" el_width="50"][vc_gitem_post_excerpt link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:14|color:%23e2e2e2|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'basicGrid_SlideFromLeft' => array(
'name' => esc_html__( 'Basic grid: Slide from left', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="" position=""][vc_gitem_animated_block animation="slideInRight"][vc_gitem_zone_a height_mode="4-3" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2" featured_image="" css=".vc_custom_1419258058654{padding-left: 15px !important;background-color: #282828 !important;}"][vc_gitem_post_date link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:12|color:%23efefef" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_title link="none" font_container="tag:h3|text_align:left" use_custom_fonts="yes" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:300%20light%20regular%3A300%3Anormal" block_container="font_size:20|color:%23ffffff"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'basicGrid_SlideFromTop' => array(
'name' => esc_html__( 'Basic grid: Slide from top', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="slideTop"][vc_gitem_zone_a height_mode="1-1" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="none" featured_image="" css=".vc_custom_1419260990461{padding-right: 15px !important;padding-left: 15px !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.2" google_fonts="font_family:Montserrat%3Aregular%2C700|font_style:700%20bold%20regular%3A700%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:14|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'READ MORE', 'js_composer' ) . '" style="outline" shape="square" color="white" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryGrid_Default' => array(
'name' => esc_html__( 'Masonry grid: Default', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419328663991{background-color: #f4f4f4 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'masonryGrid_FadeIn' => array(
'name' => esc_html__( 'Masonry grid: Fade in', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block animation="fadeIn"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419328603590{background-color: rgba(255,255,255,0.2) !important;*background-color: rgb(255,255,255) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419328565352{background-color: #f4f4f4 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'masonryGrid_IconSlideOut' => array(
'name' => esc_html__( 'Masonry grid: Icon slide out', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block animation="slideBottom"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419328999899{background-color: rgba(0,0,0,0.5) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_icon type="fontawesome" icon_fontawesome="fa fa-search" icon_openiconic="vc-oi vc-oi-dial" icon_typicons="typcn typcn-adjust-brightness" icon_entypo="entypo-icon entypo-icon-note" icon_linecons="vc_li vc_li-heart" color="white" background_color="blue" size="md" align="center"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419328781574{background-color: #f4f4f4 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'masonryGrid_SlideFromLeft' => array(
'name' => esc_html__( 'Masonry grid: Slide from left', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="slideInRight"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419328927507{background-color: #f4f4f4 !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_separator color="black" align="align_left" border_width="2" el_width="50"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryGrid_GoTop' => array(
'name' => esc_html__( 'Masonry grid: Go top', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="goTop20"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1419329081651{background-color: #2b2b2b !important;}"][vc_gitem_post_title link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:20|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:500%20bold%20regular%3A500%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:14|color:%23efefef|line_height:1.2" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryGrid_OverlayWithRotation' => array(
'name' => esc_html__( 'Masonry grid: Overlay with rotation', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419329305433{background-color: rgba(0,0,0,0.5) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_gitem_post_date link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:12|color:%23dbdbdb" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:300%20light%20regular%3A300%3Anormal"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryGrid_BlurOut' => array(
'name' => esc_html__( 'Masonry grid: Blur out', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="blurOut"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419329691977{background-color: rgba(0,0,0,0.5) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:300%20light%20regular%3A300%3Anormal"][vc_separator color="grey" align="align_center" el_width="50"][vc_gitem_post_excerpt link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:14|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryGrid_ScaleWithRotation' => array(
'name' => esc_html__( 'Masonry grid: Scale with rotation', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom" position=""][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419333125675{background-color: rgba(255,255,255,0.2) !important;*background-color: rgb(255,255,255) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419333453605{background-color: #f4f4f4 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'masonryGrid_SlideoOutFromRight' => array(
'name' => esc_html__( 'Masonry grid: Slideo out from right', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="slideInLeft"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2" featured_image=""][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2" featured_image="" css=".vc_custom_1419333716781{margin-bottom: 25px !important;padding-top: 20px !important;padding-left: 20px !important;background-color: #282828 !important;}"][vc_gitem_post_title link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.3" google_fonts="font_family:Montserrat%3Aregular%2C700|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryGrid_WithSideContent' => array(
'name' => esc_html__( 'Masonry grid: With side content', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="right" css=".vc_custom_1419334531994{background-color: #f4f4f4 !important;}"][vc_gitem_animated_block animation="blurScaleOut"][vc_gitem_zone_a height_mode="original" link="post_link" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="post_link" featured_image="" css=".vc_custom_1419334566318{background-color: rgba(255,255,255,0.2) !important;*background-color: rgb(255,255,255) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_date link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_btn link="post_link" title="' . esc_attr__( 'Read more', 'js_composer' ) . '" style="flat" shape="rounded" color="juicy-pink" size="md" align="left"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'mediaGrid_Default' => array(
'name' => esc_html__( 'Media grid: Default', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block][vc_gitem_zone_a height_mode="1-1" link="image_lightbox" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_SimpleOverlay' => array(
'name' => esc_html__( 'Media grid: Simple overlay', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="none"][vc_gitem_zone_a height_mode="1-1" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="yes" css=".vc_custom_1419000810062{margin: -15px !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_FadeInWithIcon' => array(
'name' => esc_html__( 'Media grid: Fade in with icon', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="fadeIn"][vc_gitem_zone_a height_mode="4-3" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419001011185{background-color: rgba(40,40,40,0.5) !important;*background-color: rgb(40,40,40) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_icon type="entypo" icon_fontawesome="fa fa-adjust" icon_openiconic="vc-oi vc-oi-eye" icon_typicons="typcn typcn-adjust-brightness" icon_entypo="entypo-icon entypo-icon-plus" icon_linecons="vc_li vc_li-heart" color="white" background_color="blue" size="lg" align="center"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_BorderedScaleWithTitle' => array(
'name' => esc_html__( 'Media grid: Bordered scale with title', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="3-4" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419001608026{margin-top: 5px !important;margin-right: 5px !important;margin-bottom: 5px !important;margin-left: 5px !important;border-top-width: 5px !important;border-right-width: 5px !important;border-bottom-width: 5px !important;border-left-width: 5px !important;border-left-color: #ffffff !important;border-left-style: solid !important;border-right-color: #ffffff !important;border-right-style: solid !important;border-top-color: #ffffff !important;border-top-style: solid !important;border-bottom-color: #ffffff !important;border-bottom-style: solid !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1419001517455{padding-right: 15px !important;padding-left: 15px !important;}"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.3" google_fonts="font_family:Open%20Sans%3A300%2C300italic%2Cregular%2Citalic%2C600%2C600italic%2C700%2C700italic%2C800%2C800italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_ScaleWithRotation' => array(
'name' => esc_html__( 'Media grid: Scale with rotation', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="1-1" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419001365234{background-color: rgba(0,0,0,0.3) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_SlideOutCaption' => array(
'name' => esc_html__( 'Media grid: Slide out caption', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="slideBottom"][vc_gitem_zone_a height_mode="1-1" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419002217534{padding-right: 20px !important;padding-left: 20px !important;background-color: #4f4f4f !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:30|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:100%20light%20regular%3A100%3Anormal"][vc_separator color="white" align="align_center" border_width="2" el_width="50"][vc_gitem_post_excerpt link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:14|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_HorizontalFlipWithFade' => array(
'name' => esc_html__( 'Media grid: Horizontal flip with fade', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="flipHorizontalFadeIn"][vc_gitem_zone_a height_mode="1-1" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419002089906{background-color: #4f4f4f !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1419002184955{padding-right: 15px !important;padding-left: 15px !important;}"][vc_gitem_post_date link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:12|color:%23e0e0e0|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:30|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:100%20light%20regular%3A100%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_BlurWithContentBlock' => array(
'name' => esc_html__( 'Media grid: Blur with content block', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block animation="blurScaleOut"][vc_gitem_zone_a height_mode="1-1" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419002895369{background-color: rgba(255,255,255,0.15) !important;*background-color: rgb(255,255,255) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1419240502350{background-color: #f9f9f9 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'mediaGrid_SlideInTitle' => array(
'name' => esc_html__( 'Media grid: Slide in title', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="slideTop"][vc_gitem_zone_a height_mode="4-3" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1419003984488{padding-right: 15px !important;padding-left: 15px !important;}"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:18|color:%23ffffff|line_height:1.3" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:500%20bold%20regular%3A500%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/2" featured_image=""][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'mediaGrid_ScaleInWithIcon' => array(
'name' => esc_html__( 'Media grid: Scale in with icon', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="scaleIn"][vc_gitem_zone_a height_mode="1-1" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_icon type="fontawesome" icon_fontawesome="fa fa-search" icon_openiconic="vc-oi vc-oi-dial" icon_typicons="typcn typcn-adjust-brightness" icon_entypo="entypo-icon entypo-icon-note" icon_linecons="vc_li vc_li-heart" color="white" background_color="white" size="lg" align="center"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_Default' => array(
'name' => esc_html__( 'Masonry media: Default', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block][vc_gitem_zone_a height_mode="original" link="image_lightbox" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_BorderedScale' => array(
'name' => esc_html__( 'Masonry media: Bordered scale', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="scaleIn"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1418993682046{border: 10px solid #e8e8e8 !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_SolidBlurOut' => array(
'name' => esc_html__( 'Masonry media: Solid blur out', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="blurOut"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1418993823084{background-color: rgba(0,0,0,0.4) !important;*background-color: rgb(0,0,0) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_icon type="typicons" icon_fontawesome="fa fa-adjust" icon_openiconic="vc-oi vc-oi-resize-full-alt" icon_typicons="typcn typcn-zoom-outline" icon_entypo="entypo-icon entypo-icon-note" icon_linecons="vc_li vc_li-heart" color="white" background_color="white" size="lg" align="center"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_ScaleWithRotationLight' => array(
'name' => esc_html__( 'Masonry media: Scale with rotation light', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1418994252440{background-color: rgba(255,255,255,0.2) !important;*background-color: rgb(255,255,255) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_SlideWithTitleAndCaption' => array(
'name' => esc_html__( 'Masonry media: Slide with title and caption', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="" position=""][vc_gitem_animated_block animation="slideBottom"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1" featured_image="" css=".vc_custom_1418995080777{padding-top: 15px !important;padding-right: 15px !important;padding-bottom: 15px !important;padding-left: 15px !important;background-color: rgba(45,45,45,0.8) !important;*background-color: rgb(45,45,45) !important;}"][vc_gitem_post_title link="none" font_container="tag:div|text_align:left" use_custom_fonts="yes" block_container="font_size:18|color:%23ffffff|line_height:1.2" google_fonts="font_family:Montserrat%3Aregular%2C700|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="yes" google_fonts="font_family:Roboto%3A100%2C100italic%2C300%2C300italic%2Cregular%2Citalic%2C500%2C500italic%2C700%2C700italic%2C900%2C900italic|font_style:400%20regular%3A400%3Anormal" block_container="font_size:14|color:%23ffffff|line_height:1.3"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_ScaleWithContentBlock' => array(
'name' => esc_html__( 'Masonry media: Scale with content block', 'js_composer' ),
'template' => '[vc_gitem c_zone_position="bottom"][vc_gitem_animated_block animation="scaleRotateIn"][vc_gitem_zone_a height_mode="original" link="image_lightbox" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="none" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][vc_gitem_zone_c css=".vc_custom_1418995850605{padding-top: 5px !important;padding-right: 15px !important;padding-bottom: 5px !important;padding-left: 15px !important;background-color: #f9f9f9 !important;}"][vc_gitem_row][vc_gitem_col width="1/1" featured_image=""][vc_gitem_post_title link="none" font_container="tag:h4|text_align:left" use_custom_fonts="" block_container="font_size:18|line_height:1.2" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][vc_gitem_post_excerpt link="none" font_container="tag:p|text_align:left" use_custom_fonts="" google_fonts="font_family:Abril%20Fatface%3Aregular|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_c][/vc_gitem]',
),
'masonryMedia_SimpleOverlay' => array(
'name' => esc_html__( 'Masonry media: Simple overlay', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="none"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419337784115{background-color: #262626 !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_gitem_post_title link="none" font_container="tag:div|text_align:center" use_custom_fonts="yes" block_container="font_size:24|color:%23ffffff|line_height:1.3" google_fonts="font_family:Montserrat%3Aregular%2C700|font_style:400%20regular%3A400%3Anormal"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_SlideTop' => array(
'name' => esc_html__( 'Masonry media: Slide top', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="slideTop"][vc_gitem_zone_a height_mode="original" link="none" featured_image="yes"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="image_lightbox" featured_image="" css=".vc_custom_1419337643064{background-color: rgba(10,10,10,0.5) !important;*background-color: rgb(10,10,10) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/1"][vc_icon type="fontawesome" icon_fontawesome="fa fa-search" icon_openiconic="vc-oi vc-oi-dial" icon_typicons="typcn typcn-adjust-brightness" icon_entypo="entypo-icon entypo-icon-note" icon_linecons="vc_li vc_li-heart" color="white" background_color="blue" size="md" align="center"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
'masonryMedia_SimpleBlurWithScale' => array(
'name' => esc_html__( 'Masonry media: Simple blur with scale', 'js_composer' ),
'template' => '[vc_gitem][vc_gitem_animated_block animation="blurScaleOut"][vc_gitem_zone_a height_mode="original" link="image_lightbox" featured_image="yes" css=".vc_custom_1419338012126{background-color: rgba(10,10,10,0.7) !important;*background-color: rgb(10,10,10) !important;}"][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_a][vc_gitem_zone_b link="none" featured_image=""][vc_gitem_row position="top"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="middle"][vc_gitem_col width="1/2"][/vc_gitem_col][vc_gitem_col width="1/2"][/vc_gitem_col][/vc_gitem_row][vc_gitem_row position="bottom"][vc_gitem_col width="1/1"][/vc_gitem_col][/vc_gitem_row][/vc_gitem_zone_b][/vc_gitem_animated_block][/vc_gitem]',
),
);