: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
exit; // Exit if accessed directly
* Module Name: Featured Image
class TB_Featured_Image_Module extends Themify_Builder_Component_Module {
parent::__construct(array(
'name' => __('Featured Image', 'tbp'),
'slug' => 'featured-image',
'category' => array('single')
public function get_assets() {
if(!defined('THEMIFY_BUILDER_CSS_MODULES')){
'css'=>THEMIFY_BUILDER_CSS_MODULES.'image.css'
public function get_icon(){
public function get_options() {
'label' => __('Image Width', 'tbp')
'id' => 'auto_fullwidth',
'options' => array(array('name' => '1', 'value' => __('Auto fullwidth image', 'tbp'))),
'wrap_class' => 'auto_fullwidth'
'label' => __('Image Height', 'tbp')
'id' => 'appearance_image',
'label' => __('Appearance', 'tbp'),
'label' => __('Image Caption', 'tbp'),
'type' => 'toggle_switch',
'on' => array( 'name' => 'yes', 'value' => 'en' ),
'off' => array( 'name' => 'no', 'value' => 'dis' ),
'yes' => array('show' => array('caption_layout')),
'no' => array('hide' => array('caption_layout','caption_on_overlay'))
'id' => 'caption_layout',
'label' => __('Caption Layout', 'tbp'),
array('img' => 'image_top', 'value' => 'image-top', 'label' => __('Image Top', 'tbp')),
array('img' => 'image_overlay', 'value' => 'image-overlay', 'label' => __('Partial Overlay', 'tbp')),
array('img' => 'image_centered_overlay', 'value' => 'image-full-overlay', 'label' => __('Full Overlay', 'tbp'))
'hide' => array('caption_on_overlay')
'image-overlay' => array(
'show' => array('caption_on_overlay')
'image-full-overlay' => array(
'show' => array('caption_on_overlay')
'id' => 'caption_on_overlay',
array('name' => 'yes', 'value' => __('Show caption overlay on hover only', 'tbp'))
array('type' => 'tbp_custom_css')
public function get_styling() {
self::get_expand('bg', array(
self::get_image('.module img', 'b_i','bg_c','b_r','b_p')
self::get_image('.module img', 'b_i','bg_c','b_r','b_p', 'h')
self::get_expand('p', array(
self::get_padding('.module img', 'p')
self::get_padding('.module img', 'p', 'h')
self::get_expand('m', array(
self::get_margin('.module img', 'm')
self::get_margin('.module img', 'm', 'h')
self::get_expand('b', array(
self::get_border('.module img', 'b')
self::get_border('.module img', 'b', 'h')
'options' => count($a = self::get_blend(' img'))>2 ? array($a) : $a
'options' => count($a = self::get_blend(' img','bl_m_h','h'))>2 ? array($a + array('ishover'=>true)) : $a
self::get_expand('w', array(
self::get_width('', 'w', 'h')
self::get_expand('r_c', array(
self::get_border_radius('.module img', 'r_c')
self::get_border_radius('.module img', 'r_c', 'h')
self::get_expand('sh', array(
self::get_box_shadow('.module img', 'sh')
self::get_box_shadow('.module img', 'sh', 'h')
self::get_expand('po', array( self::get_css_position())),
self::get_expand('disp', self::get_display())
$featured_caption = array(
self::get_expand('bg', array(
self::get_color(' .image-content', 'c_b_c', 'bg_c', 'background-color')
self::get_color(' .image-content', 'c_b_c', 'bg_c', 'background-color','h')
self::get_expand(__('Caption Overlay', 'tbp'), array(
self::get_color(array('.image-overlay .image-content', '.image-full-overlay .image-content::before', '.image-card-layout .image-content'), 'b_c_c', __('Overlay', 'tbp'), 'background-color'),
self::get_color(array('.image-overlay:hover .image-content', '.image-full-overlay:hover .image-content::before', '.image-card-layout:hover .image-content'), 'b_c_c_h', __('Overlay', 'tbp'), 'background-color'),
self::get_color(array('.image-overlay:hover .image-title', '.image-overlay:hover .image-caption', '.image-full-overlay:hover .image-title', '.image-full-overlay:hover .image-caption','.image-card-layout:hover .image-content', '.image-card-layout:hover .image-title'), 'f_c_c_h', __('Overlay Font Color', 'tbp'))
self::get_expand('f', array(
self::get_font_family('.module .image-caption', 'font_family_caption'),
self::get_color('.module .image-caption', 'font_color_caption'),
self::get_font_size('.module .image-caption', 'font_size_caption'),
self::get_line_height('.module .image-caption', 'line_height_caption'),
self::get_text_shadow('.module .image-caption', 't_sh_c'),
self::get_font_family('.module .image-caption', 'f_f_c', 'h'),
self::get_color(array('.module:hover .image-caption', '.module:hover .image-title'), 'f_c_c_h', NULL, NULL, ''),
self::get_font_size('.module .image-caption', 'f_s_c', '', 'h'),
self::get_line_height('.module .image-caption', 'l_h_c', 'h'),
self::get_text_shadow('.module .image-caption', 't_sh_c','h'),
self::get_expand('p', array(
self::get_padding(' .image-content','c_p')
self::get_padding(' .image-content','c_p','h')
self::get_expand('m', array(
self::get_margin(' .image-content', 'c_m')
self::get_margin(' .image-content', 'c_m','h')
self::get_expand('r_c', array(
self::get_border_radius(' .image-content', 'c_r_c')
self::get_border_radius(' .image-content', 'c_r_c', 'h')
self::get_expand('sh', array(
self::get_box_shadow(' .image-content', 'c_sh')
self::get_box_shadow(' .image-content', 'c_sh', 'h')
'label' => __('Image Caption', 'tbp'),
'options' => $featured_caption
public function get_live_default() {
'lightbox_w_unit' => '%',
'lightbox_h_unit' => '%',
public function get_visual_type() {
public function get_category() {
return array( 'single', 'archive', 'page' );
Themify_Builder_Model::register_module('TB_Featured_Image_Module');