"Posts",
'base' => "cl_posts",
'show_settings_on_create' => true,
'category' => esc_html__("Aronia",'aronia'),
'icon' => 'icon-blog',
'description' => 'Use this element to add blog posts',
'admin_enqueue_js' => get_template_directory_uri() . '/includes/core/js/cl_posts_view.js',
'js_view' => 'ClPostsView',
'params' => array(
array(
"type" => "textfield",
"holder" => "h4",
"heading" => esc_attr__( "Title", "aronia" ),
"param_name" => "title",
"value" => esc_attr__( "", "aronia" ),
"description" => esc_attr__( "Widget Title, leave empty if you don't need one", "aronia" ),
'group' => esc_attr__( "General", "aronia" )
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Unique ID", "aronia" ),
"param_name" => "unique_id",
"std" => 'id' . str_replace( ".", '-', uniqid("", true) ),
"description" => esc_attr__( "If you need to modify this, please add an unique identifier", "aronia" ),
'group' => esc_attr__( "General", "aronia" )
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Module", "aronia" ),
"param_name" => "module",
"value" => array(
esc_attr__( 'Isotope', 'aronia' ) => 'isotope',
esc_attr__( 'Carousel', 'aronia' ) => 'carousel',
esc_attr__( 'Grid Blocks', 'aronia' ) => 'grid-blocks',
),
'edit_field_class' => 'vc_col-xs-4',
'group' => esc_attr__( "General", "aronia" ),
'std' => 'isotope',
'admin_label' => true,
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Isotope Type", "aronia" ),
"param_name" => "isotope_type",
"value" => array(
esc_attr__( 'Masonry', 'aronia' ) => 'masonry',
esc_attr__( 'Fit Rows', 'aronia' ) => 'fitRows',
esc_attr__( 'Vertical', 'aronia' ) => 'vertical',
esc_attr__( 'Packery', 'aronia' ) => 'packery',
),
'edit_field_class' => 'vc_col-xs-4',
'group' => esc_attr__( "General", "aronia" ),
'std' => 'masonry',
'dependency' => array(
'element' => 'module',
'value' => array( 'isotope' )
),
),
array(
"type" => "image_select",
"heading" => esc_attr__( "Grid Blocks", "aronia" ),
"param_name" => "grid_block_type",
"value" => array(
get_template_directory_uri() . '/img/grid/grid-1.png' => 'grid-1',
get_template_directory_uri() . '/img/grid/grid-2.png' => 'grid-2',
get_template_directory_uri() . '/img/grid/grid-3.png' => 'grid-3',
get_template_directory_uri() . '/img/grid/grid-4.png' => 'grid-4',
get_template_directory_uri() . '/img/grid/grid-5.png' => 'grid-5',
get_template_directory_uri() . '/img/grid/grid-6.png' => 'grid-6',
get_template_directory_uri() . '/img/grid/grid-7.png' => 'grid-7',
get_template_directory_uri() . '/img/grid/grid-8.png' => 'grid-8',
get_template_directory_uri() . '/img/grid/grid-9.png' => 'grid-9',
get_template_directory_uri() . '/img/grid/grid-10.png' => 'grid-10',
),
'edit_field_class' => 'vc_col-xs-12',
'group' => esc_attr__( "General", "aronia" ),
'description' => esc_attr__( "grid-1, grid-2, grid-3, grid-6, grid-8, grid-9, grid-10 - works only with Media Style, grid-4, grid-5, grid-7 - works with Media & Simple No Content, grid-6 works only with Deafault Style", "aronia" ),
'std' => '',
'dependency' => array(
'element' => 'module',
'value' => array( 'grid-blocks' )
),
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Columns", "aronia" ),
"param_name" => "columns",
"value" => array(
esc_attr__( '1 Column', 'aronia' ) => '1',
esc_attr__( '2 Columns', 'aronia' ) => '2',
esc_attr__( '3 Columns', 'aronia' ) => '3',
esc_attr__( '4 Columns', 'aronia' ) => '4',
esc_attr__( '5 Columns', 'aronia' ) => '5',
),
'edit_field_class' => 'vc_col-xs-4',
'group' => esc_attr__( "General", "aronia" ),
'std' => '3',
'dependency' => array(
'element' => 'module',
'value' => array( 'isotope', 'carousel' )
),
'admin_label' => true,
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Carousel Nav", "aronia" ),
"param_name" => "carousel_nav",
"value" => array(
esc_attr__( 'Yes', 'aronia' ) => 'yes',
esc_attr__( 'No', 'aronia' ) => 'no'
),
'edit_field_class' => 'vc_col-xs-4',
'group' => esc_attr__( "General", "aronia" ),
'std' => 'no',
'dependency' => array(
'element' => 'module',
'value' => array( 'carousel' )
),
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Article Style", "aronia" ),
'description' => esc_attr__( 'NOTE: Alternate Style is recommended to use with 1 - 2 columns only!', 'aronia' ),
"param_name" => "style",
"value" => array(
esc_attr__( 'Default', 'aronia' ) => 'default',
esc_attr__( 'Media', 'aronia' ) => 'media',
esc_attr__( 'Alternate', 'aronia' ) => 'alternate',
esc_attr__( 'Simple No Content', 'aronia' ) => 'simple-no_content',
esc_attr__( 'Headlines', 'aronia' ) => 'headlines',
esc_attr__( 'Headlines 2', 'aronia' ) => 'headlines-2',
esc_attr__( 'Big', 'aronia' ) => 'big',
),
'edit_field_class' => 'vc_col-xs-6',
'group' => esc_attr__( "General", "aronia" ),
'std' => 'default',
'admin_label' => true,
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Animations", "aronia" ),
'description' => esc_attr__( 'Animation for items', 'aronia' ),
"param_name" => "animation",
"value" => array(
'None' => 'none',
'Top to Bottom' => 'top-t-bottom',
'Bottom to Top' => 'bottom-t-top',
'Right to Left' => 'right-t-left',
'Left to Right' => 'left-t-right',
'Alpha' => 'alpha-anim',
'Zoom In' => 'zoom-in',
'Zoom Out' => 'zoom-out',
'Zoom Reverse' => 'zoom-reverse',
),
'edit_field_class' => 'vc_col-xs-6',
'group' => esc_attr__( "General", "aronia" ),
'std' => 'none'
),
/*array(
"type" => "textfield",
"holder" => "",
"heading" => esc_attr__( "Gap between Items", "aronia" ),
'description' => esc_attr__( "Example values: 20px, 4rem, 20%", "aronia" ),
"param_name" => "gap_items",
'group' => esc_attr__( "General", "aronia" ),
'edit_field_class' => 'vc_col-xs-6',
'std' => ''
),*/
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Pagination", "aronia" ),
"param_name" => "pagination",
"value" => array(
esc_attr__( 'Without Pagination', 'aronia' ) => 'none',
esc_attr__( 'With Numbers', 'aronia' ) => 'numbers',
esc_attr__( 'Next / Prev Arrows', 'aronia' ) => 'next_prev',
esc_attr__( 'Next / Prev Ajax', 'aronia' ) => 'next_prev_ajax',
esc_attr__( 'Load More', 'aronia' ) => 'load_more',
esc_attr__( 'Infinite Scroll', 'aronia' ) => 'infinite_scroll',
),
'group' => esc_attr__( "General", "aronia" ),
'std' => 'none',
'dependency' => array(
'element' => 'module',
'value' => array( 'isotope', 'grid-blocks' )
),
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Category Filters", "aronia" ),
"param_name" => "filters",
"value" => array(
esc_attr__( 'No Filters', 'aronia' ) => 'disabled',
esc_attr__( 'Isotope Filter', 'aronia' ) => 'isotope',
esc_attr__( 'Ajax', 'aronia' ) => 'ajax',
),
'group' => esc_attr__( "General", "aronia" ),
'std' => 'disabled',
'dependency' => array(
'element' => 'module',
'value' => array( 'isotope', 'grid-blocks' )
),
),
array(
"type" => "textfield",
"holder" => "",
"heading" => esc_attr__( "Image Size", "aronia" ),
'description' => esc_attr__( 'Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Find theme sizes here: Codeless -> Codeless Image Sizes', 'aronia' ),
"param_name" => "image_size",
"value" => '',
'group' => esc_attr__( "General", "aronia" ),
'std' => 'theme_default',
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Image Filter", "aronia" ),
"param_name" => "image_filter",
"value" => array(
'normal' => 'normal',
'darken' => 'darken',
'_1977' => '_1977',
'aden' => 'aden',
'brannan' => 'brannan',
'brooklyn' => 'brooklyn',
'clarendon' => 'clarendon',
'earlybird' => 'earlybird',
'gingham' => 'gingham',
'hudson' => 'hudson',
'inkwell' => 'inkwell',
'kelvin' => 'kelvin',
'lark' => 'lark',
'lofi' => 'lofi',
'maven' => 'maven',
'mayfair' => 'mayfair',
'moon' => 'moon',
'nashville' => 'nashville',
'perpetua' => 'perpetua',
'reyes' => 'reyes',
'rise' => 'rise',
'slumber' => 'slumber',
'stinson' => 'stinson',
'toaster' => 'toaster',
'valencia' => 'valencia',
'walden' => 'walden',
'willow' => 'willow',
'xpro2' => 'xpro2',
),
'group' => esc_attr__( "General", "aronia" ),
'std' => 'normal',
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Excerpt Length", "aronia" ),
"param_name" => "excerpt_length",
"std" => codeless_get_mod('blog_excerpt_length', 62),
"description" => esc_attr__( "Excerpt Length", "aronia" ),
'group' => esc_attr__( "General", "aronia" )
),
array(
'type' => 'autocomplete',
'heading' => esc_attr__( 'Narrow data source', 'aronia' ),
'param_name' => 'taxonomies',
'settings' => array(
'multiple' => true,
'min_length' => 1,
'groups' => true,
// In UI show results grouped by groups, default false
'unique_values' => true,
// In UI show results except selected. NB! You should manually check values in backend, default false
'display_inline' => true,
// In UI show results inline view, default false (each value in own line)
'delay' => 500,
// delay for search. default 500
'auto_focus' => true,
// auto focus input, default true
),
'param_holder_class' => 'vc_not-for-custom',
'description' => esc_attr__( 'Enter categories, tags or custom taxonomies.', 'aronia' ),
'group' => esc_attr__( "Data Settings", "aronia" ),
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Post Count", "aronia" ),
'description' => esc_attr__( "Number of posts to show, if pagination is active, represent number of posts per page", "aronia" ),
"param_name" => "count",
'group' => esc_attr__( "Data Settings", "aronia" ),
'std' => '12'
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Order By", "aronia" ),
"param_name" => "order_by",
"value" => array(
esc_attr__( 'None', 'aronia' ) => 'none',
esc_attr__( 'Date', 'aronia' ) => 'date',
esc_attr__( 'Post ID', 'aronia' ) => 'ID',
esc_attr__( 'Title', 'aronia' ) => 'title',
esc_attr__( 'Random', 'aronia' ) => 'rand',
esc_attr__( 'Preserve Include Order', 'aronia' ) => 'post__in'
),
'group' => esc_attr__( "Data Settings", "aronia" ),
'std' => 'date',
'edit_field_class' => 'vc_col-xs-6',
),
array(
"type" => "dropdown",
"holder" => "",
"heading" => esc_attr__( "Order", "aronia" ),
"param_name" => "order",
"value" => array(
esc_attr__( 'DESC', 'aronia' ) => 'desc',
esc_attr__( 'ASC', 'aronia' ) => 'asc'
),
'group' => esc_attr__( "Data Settings", "aronia" ),
'std' => 'date',
'edit_field_class' => 'vc_col-xs-6',
),
array(
'type' => 'autocomplete',
'heading' => esc_attr__( 'Include only', 'aronia' ),
'param_name' => 'include',
'description' => esc_attr__( 'Add posts, pages, etc. by title. Leave empty otherwise', 'aronia' ),
'settings' => array(
'multiple' => true,
'sortable' => true,
'groups' => true,
),
'group' => esc_attr__( 'Data Settings', 'aronia' ),
),
array(
'type' => 'autocomplete',
'heading' => esc_attr__( 'Exclude', 'aronia' ),
'param_name' => 'exclude',
'description' => esc_attr__( 'Exclude posts, pages, etc. by title. Leave empty otherwise', 'aronia' ),
'group' => esc_attr__( 'Data Settings', 'aronia' ),
'settings' => array(
'multiple' => true,
),
'param_holder_class' => 'vc_grid-data-type-not-ids',
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Custom Width", "aronia" ),
"param_name" => "custom_width",
"std" => '',
"description" => esc_attr__( "Set a custom width for blog items of this element. Leave empty to use the default. For example 600px", "aronia" ),
'group' => esc_attr__( "Custom Design", "aronia" )
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Custom Heading Size", "aronia" ),
"param_name" => "custom_heading_size",
"std" => '',
"description" => esc_attr__( "Set a custom heading size for blog items of this element. Leave empty to use the default. Use example: 24px. This is applicable only on large screens.", "aronia" ),
'group' => esc_attr__( "Custom Design", "aronia" )
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Custom Wrapper Padding", "aronia" ),
"param_name" => "custom_wrapper_padding",
"std" => '',
"description" => esc_attr__( "Set a custom entry wrapper padding for blog items of this element. Leave empty to use the default. Use example: 24px. This is applicable only on large screens.", "aronia" ),
'group' => esc_attr__( "Custom Design", "aronia" )
),
array(
"type" => "colorpicker",
"heading" => esc_attr__( "Custom Wrapper BG Color", "aronia" ),
"param_name" => "custom_wrapper_color",
"std" => '',
"description" => esc_attr__( "Set a custom color for content wrapper on each item of this element", "aronia" ),
'group' => esc_attr__( "Custom Design", "aronia" )
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Custom Grid Gap", "aronia" ),
"param_name" => "custom_grid_gap",
"std" => '',
"description" => esc_attr__( "Set custom grid gap between grid-blocks or isotope items, ex: 5px", "aronia" ),
'group' => esc_attr__( "Custom Design", "aronia" ),
'dependency' => array(
'element' => 'module',
'value' => array( 'grid-blocks', 'isotope' )
),
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Title Design", "aronia" ),
"param_name" => "title_design",
"value" => array(
esc_attr__( 'Only Text', 'aronia' ) => 'only_text',
esc_attr__( 'With BG and Border', 'aronia' ) => 'with_bg',
),
'group' => esc_attr__( "Custom Design", "aronia" ),
'std' => 'only_text'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Custom Posts Text Color", "aronia" ),
"param_name" => "post_text_color",
"value" => array(
esc_attr__( 'Dark', 'aronia' ) => 'dark',
esc_attr__( 'Light', 'aronia' ) => 'light',
),
'group' => esc_attr__( "Custom Design", "aronia" ),
'std' => 'dark'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Carousel Nav Position", "aronia" ),
"param_name" => "carousel_nav_position",
"value" => array(
esc_attr__( 'Left', 'aronia' ) => 'left',
esc_attr__( 'Center', 'aronia' ) => 'center',
),
'group' => esc_attr__( "Custom Design", "aronia" ),
'std' => 'left'
),
)
));
class WPBakeryShortCode_cl_posts extends WPBakeryShortCode {}
vc_map(array(
'name' => "Video Posts Gallery",
'base' => "cl_video_gallery",
'show_settings_on_create' => true,
'category' => esc_html__("Aronia",'aronia'),
'icon' => 'icon-blog',
'description' => 'Use this element to add video post gallery',
'js_view' => '',
'params' => array(
array(
"type" => "textfield",
"holder" => "h3",
"heading" => esc_attr__( "Title", "aronia" ),
"param_name" => "title",
"value" => esc_attr__( "", "aronia" ),
"description" => esc_attr__( "Widget Title, leave empty if you don't need one", "aronia" )
),
array(
'type' => 'autocomplete',
'heading' => esc_attr__( 'Data Source', 'aronia' ),
'param_name' => 'taxonomies',
'settings' => array(
'multiple' => true,
'min_length' => 1,
'groups' => true,
// In UI show results grouped by groups, default false
'unique_values' => true,
// In UI show results except selected. NB! You should manually check values in backend, default false
'display_inline' => true,
// In UI show results inline view, default false (each value in own line)
'delay' => 500,
// delay for search. default 500
'auto_focus' => true,
// auto focus input, default true
),
'param_holder_class' => 'vc_not-for-custom',
'description' => esc_attr__( 'Enter categories, tags or custom taxonomies.', 'aronia' ),
),
array(
'type' => 'autocomplete',
'heading' => esc_attr__( 'Featured Video Post', 'aronia' ),
'param_name' => 'featured',
'description' => esc_attr__( 'Select the Featured Video that will display as default', 'aronia' ),
'settings' => array(
'multiple' => false,
'sortable' => false,
'groups' => true,
)
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Video Post Count", "aronia" ),
'description' => esc_attr__( "Number of video posts to show.", "aronia" ),
"param_name" => "count",
'std' => '12'
),
)
));
class WPBakeryShortCode_cl_video_gallery extends WPBakeryShortCode {}
vc_map(array(
'name' => "Codeless Button",
'base' => "cl_button",
'show_settings_on_create' => true,
'category' => esc_html__("Aronia",'aronia'),
'icon' => 'icon-blog',
'description' => 'Use this element to add codeless button. Different from visual composer button',
'js_view' => '',
'params' => array(
array(
"type" => "textfield",
"heading" => esc_attr__( "Text", "aronia" ),
'description' => esc_attr__( "Text of the button", "aronia" ),
"param_name" => "text",
'std' => 'Click Me'
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Link", "aronia" ),
"param_name" => "link",
'std' => '#'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Button Color", "aronia" ),
"param_name" => "button_color",
"value" => array(
esc_attr__( 'Default', 'aronia' ) => 'default',
esc_attr__( 'Normal', 'aronia' ) => 'normal',
esc_attr__( 'Alternate', 'aronia' ) => 'alternate',
),
'std' => 'default'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Button Size", "aronia" ),
"param_name" => "button_size",
"value" => array(
esc_attr__( 'Default', 'aronia' ) => 'default',
esc_attr__( 'Small', 'aronia' ) => 'small',
esc_attr__( 'Medium', 'aronia' ) => 'medium',
esc_attr__( 'Large', 'aronia' ) => 'large',
),
'std' => 'default'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Button Style", "aronia" ),
"param_name" => "button_style",
"value" => array(
esc_attr__( 'Default', 'aronia' ) => 'default',
esc_attr__( 'Square', 'aronia' ) => 'square',
esc_attr__( 'Small Radius', 'aronia' ) => 'small-radius',
esc_attr__( 'Rounded', 'aronia' ) => 'rounded',
),
'std' => 'default'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Align", "aronia" ),
"param_name" => "align",
"value" => array(
esc_attr__( 'Left', 'aronia' ) => 'left',
esc_attr__( 'Center', 'aronia' ) => 'center',
esc_attr__( 'Right', 'aronia' ) => 'right',
),
'std' => 'center'
),
)
));
class WPBakeryShortCode_cl_button extends WPBakeryShortCode {}
vc_map(array(
'name' => "Featured Box",
'base' => "cl_featured_box",
'show_settings_on_create' => true,
'category' => esc_html__("Aronia",'aronia'),
'icon' => 'icon-blog',
'description' => 'Add a featured box with Image and Link',
'js_view' => '',
'params' => array(
array(
"type" => "textfield",
"heading" => esc_attr__( "Text", "aronia" ),
'description' => esc_attr__( "Text of the box", "aronia" ),
"param_name" => "text",
'std' => 'Click Me'
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Description", "aronia" ),
'description' => esc_attr__( "Description (available only in some styles)", "aronia" ),
"param_name" => "description",
'std' => 'Click Me'
),
array(
"type" => "textfield",
"heading" => esc_attr__( "Link", "aronia" ),
"param_name" => "link",
'std' => '#'
),
array(
"type" => "dropdown",
"heading" => esc_attr__( "Box Style", "aronia" ),
"param_name" => "style",
"value" => array(
esc_attr__( 'Style 1', 'aronia' ) => 'style-1',
),
'std' => 'style-1'
),
array(
"type" => "attach_image",
"heading" => esc_attr__( "Image", "aronia" ),
"param_name" => "image",
),
array(
"type" => "textfield",
"holder" => "",
"heading" => esc_attr__( "Image Size", "aronia" ),
'description' => esc_attr__( 'Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Find theme sizes here: Codeless -> Codeless Image Sizes', 'aronia' ),
"param_name" => "image_size",
"value" => '',
'std' => 'theme_default',
),
)
));
class WPBakeryShortCode_cl_featured_box extends WPBakeryShortCode {}
/*vc_map(array(
'name' => "Portfolio",
'base' => "cl_portfolio",
'show_settings_on_create' => true,
'category' => esc_html__("Aronia",'aronia'),
'icon' => 'icon-blog',
'description' => '',
'js_view' => '',
'params' => array(
)
));
class WPBakeryShortCode_cl_portfolio extends WPBakeryShortCode {}*/
vc_add_param( 'vc_widget_sidebar', array(
"type" => "textfield",
"heading" => esc_attr__( "Sticky Widgets from Bottom", "aronia" ),
'description' => esc_attr__( "Number of widgets to make sticky on this sidebar.", "aronia" ),
"param_name" => "sticky_widgets",
'std' => 0
));
add_filter( 'vc_autocomplete_cl_posts_taxonomies_callback', 'cl_autocomplete_taxonomies_field_search', 10, 1 );
add_filter( 'vc_autocomplete_cl_posts_taxonomies_render', 'cl_autocomplete_taxonomies_field_render', 10, 1 );
add_filter( 'vc_autocomplete_cl_video_gallery_taxonomies_callback', 'cl_autocomplete_taxonomies_field_search', 10, 1 );
add_filter( 'vc_autocomplete_cl_video_gallery_taxonomies_render', 'cl_autocomplete_taxonomies_field_render', 10, 1 );
add_filter( 'vc_autocomplete_cl_posts_exclude_callback', 'cl_exclude_field_search', 10, 1 ); // Get suggestion(find). Must return an array
add_filter( 'vc_autocomplete_cl_posts_exclude_render', 'cl_exclude_field_render', 10, 1 );
add_filter( 'vc_autocomplete_cl_posts_include_callback', 'cl_include_field_search', 10, 1 ); // Get suggestion(find). Must return an array
add_filter( 'vc_autocomplete_cl_posts_include_render', 'cl_include_field_render', 10, 1 );
add_filter( 'vc_autocomplete_cl_video_gallery_featured_callback', 'cl_include_field_search', 10, 1 ); // Get suggestion(find). Must return an array
add_filter( 'vc_autocomplete_cl_video_gallery_featured_render', 'cl_include_field_render', 10, 1 );
function cl_autocomplete_taxonomies_field_render( $term ) {
$terms = get_terms( array('category', 'post_tag'), array(
'include' => array( $term['value'] ),
'hide_empty' => false,
) );
$data = false;
if ( is_array( $terms ) && 1 === count( $terms ) ) {
$term = $terms[0];
$data = vc_get_term_object( $term );
}
return $data;
}
function cl_autocomplete_taxonomies_field_search( $search_string ) {
$data = array();
$vc_filter_by = vc_post_param( 'vc_filter_by', '' );
$vc_taxonomies = get_terms( array('category', 'post_tag'), array(
'hide_empty' => false,
'search' => $search_string,
) );
if ( is_array( $vc_taxonomies ) && ! empty( $vc_taxonomies ) ) {
foreach ( $vc_taxonomies as $t ) {
if ( is_object( $t ) ) {
$data[] = vc_get_term_object( $t );
}
}
}
return $data;
}
function cl_include_field_search( $search_string ) {
$query = $search_string;
$data = array();
$args = array(
's' => $query,
'post_type' => 'post',
);
$args['vc_search_by_title_only'] = true;
$args['numberposts'] = - 1;
if ( 0 === strlen( $args['s'] ) ) {
unset( $args['s'] );
}
add_filter( 'posts_search', 'vc_search_by_title_only', 500, 2 );
$posts = get_posts( $args );
if ( is_array( $posts ) && ! empty( $posts ) ) {
foreach ( $posts as $post ) {
$data[] = array(
'value' => $post->ID,
'label' => $post->post_title,
'group' => $post->post_type,
);
}
}
return $data;
}
function cl_include_field_render( $value ) {
$post = get_post( $value['value'] );
return is_null( $post ) ? false : array(
'label' => $post->post_title,
'value' => $post->ID,
'group' => $post->post_type,
);
}
function cl_exclude_field_search( $data_arr ) {
$query = isset( $data_arr['query'] ) ? $data_arr['query'] : null;
$term = isset( $data_arr['term'] ) ? $data_arr['term'] : '';
$data = array();
$args = ! empty( $query ) ? array(
's' => $term,
'post_type' => 'post',
) : array(
's' => $term,
'post_type' => 'post',
);
$args['vc_search_by_title_only'] = true;
$args['numberposts'] = - 1;
if ( 0 === strlen( $args['s'] ) ) {
unset( $args['s'] );
}
add_filter( 'posts_search', 'vc_search_by_title_only', 500, 2 );
$posts = get_posts( $args );
if ( is_array( $posts ) && ! empty( $posts ) ) {
foreach ( $posts as $post ) {
$data[] = array(
'value' => $post->ID,
'label' => $post->post_title,
'group' => $post->post_type,
);
}
}
return $data;
}
function cl_exclude_field_render( $value ) {
$post = get_post( $value['value'] );
return is_null( $post ) ? false : array(
'label' => $post->post_title,
'value' => $post->ID,
'group' => $post->post_type,
);
}
remove_action( 'vc_activation_hook', 'vc_page_welcome_set_redirect' );
remove_action( 'admin_init', 'vc_page_welcome_redirect' );
add_filter( 'vc_get_all_templates', 'codeless_modify_default_template_name', 999 );
function codeless_modify_default_template_name($data){
$data[1]['category_name'] = esc_attr__('Aronia Templates', 'aronia');
$data[1]['category_description'] = esc_attr__( 'Append predefined Aronia Templates to the actual layout', 'aronia' );
$default_templates = visual_composer()->templatesPanelEditor()->getDefaultTemplates();
foreach( $data[1]['templates'] as $index => $template_data ){
if( isset( $template_data['unique_id'] ) && isset( $default_templates[ $template_data['unique_id'] ] ) ){
$data[1]['templates'][$index]['cat_display_name'] = isset( $default_templates[ $template_data['unique_id'] ]['cat_display_name'] ) ? $default_templates[$template_data['unique_id']]['cat_display_name'] : '';
}
}
$data[1]['category_weight'] = 5;
return $data;
}
add_filter( 'vc_templates_render_category', 'codeless_templates_render_category', 999 );
function codeless_templates_render_category($category){
if( $category['category'] == 'default_templates' ){
$output = $category['output'];
$category['output'] = '';
$category['output'] .= '
';
$codeless_library_cats = codeless_vc_cat_list();
$category['output'] .= '- '.esc_attr__('All', 'aronia').'
';
foreach($codeless_library_cats as $cat_id => $cat_name) {
$category['output'] .= '- '.$cat_name.'
';
}
$category['output'] .= '
';
$category['output'] .= '
';
$category['output'] .= '';
$category['output'] .= $output;
$category['output'] .= '
';
}
return $category;
}
add_filter( 'vc_templates_render_template', 'codeless_templates_render_template', 99, 2 );
function codeless_templates_render_template($name, $template){
$name = $template['name'];
$cat_display_name = isset( $template['cat_display_name'] ) ? $template['cat_display_name'] : '';
$output = '';
$output .= '';
if( isset( $template['image'] ) && !empty( $template['image'] ) )
$output .= '
';
$output .= '
';
$output .= '
'.$cat_display_name.'
';
$output .= $name;
$output .= '
';
$output .= '
';
$output .= '
';
return $output;
}
add_action( 'vc_load_default_templates_action','codeless_templates_for_vc' );
function codeless_vc_cat_list(){
$cat_display_names = array(
'ajax' => __('Ajax', 'aronia'),
'blog' => __('Blog', 'aronia'),
'block' => __('Posts Block', 'aronia'),
'carousel' => __('Carousel', 'aronia'),
'featured' => __('Featured', 'aronia'),
'grid' => __('Grid', 'aronia'),
'masonry' => __('Masonry', 'aronia'),
'magazine' => __('Magazine', 'aronia'),
);
return $cat_display_names;
}
function codeless_templates_for_vc() {
$cat_display_names = codeless_vc_cat_list();
// Blog Masonry 2 Columns
$data = array();
$data['name'] = __( 'Blog Masonry 2 Columns', 'aronia' );
$data['cat_display_name'] = $cat_display_names['blog'] .', '. $cat_display_names['masonry'];
$data['custom_class'] = 'blog masonry';
$data['image_path'] = preg_replace( '/\s/', '%20', get_template_directory_uri() .'/img/templates/blog-masonry-two-columns.jpg' );
$data['content'] = <<