: 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.ModuleVideo = class extends api.Module {
hide: 'tb_video_local_wrap',
show: ['tb_video_container', 'tb_video_external_wrap']
hide: 'tb_video_external_wrap',
show: ['tb_video_container', 'tb_video_local_wrap']
wrap_class: 'tb_video_container',
wrap_class: 'tb_video_external_wrap',
wrap_class: 'tb_video_external_wrap',
wrap_class: 'tb_video_local_wrap',
wrap_class: 'tb_v_autoplay',
selector: '.video-caption'
url_video: 'https://www.youtube.com/watch?v=FPPce2D8pYI'
const setting = data || this.get('mod_settings'),
videoUrl=setting.url_video,
let provider=Themify.parseVideo(videoUrl),
imgUrl='https://img.youtube.com/vi/'+provider.id+'/default.jpg';
imgUrl='https://vumbnail.com/'+provider.id+'.jpg';
return super.getImage(setting);
const setting = data || this.get('mod_settings');
return api.Helper.limitString(setting.title_video);
static builderSave(settings) {
style_video: 'video-top',
units=['font_size_caption','line_height_caption','f_s_c_h'];
if (settings[key] === def[key]) {
if (settings.width_video <= 0) {
delete settings.unit_video;
if (settings.ext_hide_ctrls) {
delete settings.autoplay_video;
for(let bps=api.breakpointsReverse,i=bps.length-1;i>-1;--i){
this.clearFontColor('font_color_type','font_color','font_gradient_color',bp,settings);
this.clearFontColor('f_c_h_f_c_t_h','f_g_c_h_f_c_t_h','f_g_c_f_c_t_h',bp,settings);
this.clearShadow('text-shadow',0,bp,settings);
this.clearShadow('t_sh_h',0,bp,settings);
this.clearShadow('t_sh_m_t',0,bp,settings);
this.clearShadow('t_sh_m_t_h',0,bp,settings);
this.clearShadow('t_sh_t',0,bp,settings);
this.clearShadow('t_sh_t_h',0,bp,settings);
this.clearShadow('t_sh_c',0,bp,settings);
this.clearShadow('t_sh_c_h',0,bp,settings);
this.clearPadding('padding',bp,settings);
this.clearPadding('p_h',bp,settings);
this.clearPadding('p_o_i',bp,settings);
this.clearPadding('p_o_i_h',bp,settings);
this.clearPadding('margin',bp,settings);
this.clearPadding('m_h',bp,settings);
this.clearPadding('m_o_i',bp,settings);
this.clearPadding('m_o_i_h',bp,settings);
this.clearPadding('b_ra',bp,settings);
this.clearPadding('r_c_h',bp,settings);
this.clearPadding('r_c_o_i',bp,settings);
this.clearPadding('r_c_o_i_h',bp,settings);
this.clearBorder('border',bp,settings);
this.clearBorder('b_h',bp,settings);
this.clearBorder('b_o_i',bp,settings);
this.clearBorder('b_o_i_h',bp,settings);
this.clearFilter('bl_m','css_f',bp,settings);
this.clearFilter('_h','css_f_h',bp,settings);
this.clearWidth('w',bp,settings);
this.clearWidth('ht',bp,settings,1);
this.clearShadow('b_sh',1,bp,settings);
this.clearShadow('sh_h',1,bp,settings);
this.clearShadow('b_sh_o_i',1,bp,settings);
this.clearShadow('b_sh_o_i_h',1,bp,settings);
this.clearTransform('tr',bp,settings);
this.clearTransform('tr-h',bp,settings);
this.clearUnits(units,bp,settings);
super.builderSave(settings);
const module=createElement(),
outer=createElement('','video-wrap-outer'),
wrap=createElement('','video-wrap tf_rel tf_overflow'),
classes=['module','module-video', data.style_video || 'video-top'],
constructor=this.constructor;
const provider = Themify.parseVideo(url),
isLocal=type!== 'youtube' && type !== 'vimeo',
isOverlay=data.o_i && ~~data.o_i_c===1;
classes.push(data.css_video);
if(data.autoplay_video==='yes'){
classes.push('video-autoplay');
outer.style.maxWidth= data.width_video+(data.unit_video || 'px');
const video=createElement('video',{src:url,preload:'none','webkit-playsinline':1,playsinline:1}),
if(video.loop === 'yes'){
if(data.mute_video === 'yes'){
if(data.hover_play === 'yes'){
classes.push('tb_hover_play');
else if(data.autoplay_video === 'yes'){
if(data.ext_hide_ctrls === 'yes'){
const lazy=createElement('','tf_vd_lazy tf_w tf_box tf_rel');
wrap.className+=' tf_local_video';
noscript=createElement('noscript');
if (provider.h) {//h query argument should be first in vimeo
queryArgs.h = provider.h;
queryArgs.pip=queryArgs.playsinline=1;
for(let [key,val] of params.searchParams.entries()){