: 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.ModuleLogin = class extends api.Module {
selector: '.tb_login_error'
selector: '.tb_login_username_text'
selector: '.tb_login_password_text'
selector: '.tb_login_remember_text'
selector: '.tb_login_submit button'
id: 'icon_forgotten_password',
id: 'label_forgotten_password',
selector: '.tb_login_form .tb_login_links a'
id: 'remember_me_display',
id: 'lostpasswordform_redirect_to',
id: 'lostpasswordform_icon_username',
id: 'lostpasswordform_label_username',
selector: '.tb_lostpassword_username_text'
id: 'lostpasswordform_icon_reset',
id: 'lostpasswordform_label_reset',
selector: '.tb_lostpassword_submit button'
label_username: i18n.unameemail,
label_password: i18n.pswd,
label_remember: i18n.rme,
label_forgotten_password: i18n.fpswd,
lostpasswordform_label_username: i18n.unameemail,
lostpasswordform_label_reset: i18n.rpswd,
static builderSave(settings){
remember_me_display:'show',
failAction=settings.fail_action;
if(settings[key]===def[key]){
if(settings.alignment==='undefined'){
delete settings.alignment;
delete settings.redirect_fail;
delete settings.msg_fail;
super.builderSave(settings);
const constructor=this.constructor,
module = createElement(),
wrap = createElement('','tb_login_wrap'),
loginForm=createElement('form',{class:'tb_login_form',name:'loginform'}),
resetForm=createElement('form',{class:'tb_lostpassword_form',name:'lostpasswordform'}),
loginLinks=createElement('','tb_login_links'),
forgotPswd=createElement('a',{href:'#'}),
loginSubmit=createElement('p','tb_login_submit tf_right'),
loginBtn=constructor._setEditableContent(createElement('button'),'label_log_in',data.label_log_in),
lostPswdSubmit=createElement('p','tb_lostpassword_submit tf_right'),
lostPswdSubmitBtn=constructor._setEditableContent(createElement('button'),'lostpasswordform_label_reset',data.lostpasswordform_label_reset),
lostLoginLinksWrap=createElement('','tb_login_links'),
lostLoginLinks=createElement('a',{href:'#'}),
classes = ['module', 'module-login'],
alignment = !data.alignment || data.alignment==='undefined' ||'left' === data.alignment ? '' : ('center' === data.alignment?' tb_login_c':' tf_right'),
const em=createElement('em');
em.appendChild(api.Helper.getIcon(icon));
module.className = classes.join(' ');
wrap.className = 'tb_login_wrap';
wrap.className+=' '+alignment;
if ( data.fail_action === 'm' ) {
loginForm.appendChild(constructor._setEditableContent(createElement('','tb_login_error'),'msg_fail',data.msg_fail));
for(let i=0,items=['username','password','lostpassword_username'];i<items.length;++i){
isLostpswd=k==='lostpassword_username',
label=createElement('label',isLostpswd?'tb_lostpassword_username':'tb_login_'+k);
if(data.lostpasswordform_icon_username){
label.appendChild(getIcon(data.lostpasswordform_icon_username));
else if ( data['icon_'+k] ) {
label.appendChild(getIcon(data['icon_'+k]));
constructor._setEditableContent(createElement('span',isLostpswd?'tb_lostpassword_username_text':'tb_login_'+k+'_text'),(isLostpswd?'lostpasswordform_label_username':'label_'+k),(isLostpswd?(data.lostpasswordform_label_username || ''):(data[ 'label_'+k] || ''))),
createElement('input',{class:'input',type:k==='password'?k:'text',name:k==='password'?'pwd':(isLostpswd?'user_login':'log')})
resetForm.appendChild(p);
loginForm.appendChild(p);
if ( data.icon_forgotten_password ) {
loginLinks.appendChild(getIcon(data.icon_forgotten_password));
loginLinks.appendChild(constructor._setEditableContent(forgotPswd,'label_forgotten_password',data.label_forgotten_password));
loginForm.appendChild(loginLinks);
if ( data.remember_me_display === 'show' ) {
const p=createElement('p','tb_login_remember tf_left tf_box tf_clear'),
label=createElement('label');
label.appendChild(createElement('input',{name:'rememberme',type:'checkbox',value:1}));
if ( data.icon_remember ) {
label.appendChild(getIcon(data.icon_remember));
label.appendChild(constructor._setEditableContent(createElement('span','tb_login_remember_text'),'label_remember',data.label_remember));
loginForm.appendChild(p);
if ( data.icon_log_in ) {
loginBtn.prepend(getIcon(data.icon_log_in));
loginSubmit.appendChild(loginBtn);
loginForm.appendChild(loginSubmit);
if ( data.lostpasswordform_icon_reset ) {
lostPswdSubmitBtn.prepend(getIcon(data.lostpasswordform_icon_reset));
lostPswdSubmit.appendChild(lostPswdSubmitBtn);
lostLoginLinksWrap.appendChild(constructor._setEditableContent(lostLoginLinks,'label_log_in',data.label_log_in));
resetForm.append(lostPswdSubmit,lostLoginLinksWrap);
module.appendChild(constructor.getModuleTitle(data.mod_title,'mod_title'));
resetForm.style.display='none';
wrap.append(loginForm,resetForm);
module.appendChild(wrap);