: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
api.ModuleCallout = class extends api.Module {
img: 'callout_button_right',
img: 'callout_button_left',
img: 'callout_button_bottom',
img: 'callout_button_bottom_center',
value: 'button-bottom-center',
selector: '.callout-heading'
selector: '.tb_text_wrap'
id: 'appearance_callout',
id: 'action_btn_text_callout',
selector: '.tb_callout_text'
wrap_class:'callout_link_opt',
id: 'action_btn_link_callout',
id: 'open_link_new_tab_callout',
id: 'action_btn_color_callout',
classSelector: '.ui.builder_button'
id: 'action_btn_appearance_callout',
custom_css: 'css_callout'
heading_callout: i18n.calhead,
text_callout: i18n.caltext,
action_btn_text_callout: i18n.actbtn,
action_btn_link_callout: 'https://themify.me/',
action_btn_color_callout: 'blue'
static builderSave(settings){
layout_callout:'button-right',
action_btn_color_callout:'default',
action_btn_link_callout:'#',
open_link_new_tab_callout:'no',
appearance_callout:false,
action_btn_appearance_callout:false
if(settings[key]===def[key]){
if(settings.appearance_callout==='|' || settings.appearance_callout==='false'){
delete settings.appearance_callout;
if(settings.action_btn_appearance_callout==='|' || settings.action_btn_appearance_callout==='false'){
delete settings.action_btn_appearance_callout;
if(!settings.action_btn_text_callout){
'action_btn_appearance_callout',
'action_btn_color_callout',
'action_btn_link_callout',
'open_link_new_tab_callout'
for(let i=del.length-1;i>-1;--i){
if(settings[del[i]]!==undefined){
super.builderSave(settings);
const setting = data || this.get('mod_settings');
return api.Helper.limitString(setting.text_callout);
const module = createElement(),
inner =createElement('','callout-inner'),
content = createElement('', 'callout-content tf_left'),
color = data.color_callout && data.color_callout !== 'default' ? data.color_callout : 'tb_default_color',
classes = ['module', 'ui', color],
constructor=this.constructor;
if (data.layout_callout) {
classes.push(data.layout_callout);
classes.push(data.css_callout);
if (data.appearance_callout) {
classes.push(data.appearance_callout.split('|').join(' '));
module.className = classes.join(' ');
constructor._setEditableContent(createElement((data.title_tag || 'h3'), 'callout-heading'),'heading_callout',data.heading_callout),
constructor._setEditableContent(createElement('','tb_text_wrap'),'text_callout',data.text_callout));
inner.appendChild(content);
if (data.action_btn_text_callout) {
const btn_color_callout = data.action_btn_color_callout,
btnColor = btn_color_callout && 'default' !== btn_color_callout ? btn_color_callout : 'tb_default_color',
btn = createElement('','callout-button tf_right tf_textr'),
link = createElement('a',{href:data.action_btn_link_callout || '#',class: 'ui builder_button ' + btnColor});
if (data.action_btn_appearance_callout) {
link.className += ' ' + data.action_btn_appearance_callout.split('|').join(' ');
link.appendChild(constructor._setEditableContent(createElement('span', 'tb_callout_text'),'action_btn_text_callout',data.action_btn_text_callout));
if (data.mod_title_callout) {
module.appendChild(constructor.getModuleTitle(data.mod_title_callout,'mod_title_callout'));
module.appendChild(inner);