: 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.ModuleSignupForm = class extends api.Module {
optin_label: i18n.sbscrbenws,
gdpr_label: i18n.gdpr_opt_msg
static builderSave(settings) {
if (settings[key] === def[key]) {
if (settings.success_action && settings.success_action!=='c') {
delete settings.redirect_to;
if (settings.success_action!=='m') {
delete settings.msg_success;
delete settings.gdpr_label;
if(settings.optin!=='yes'){
delete settings.optin_label;
delete settings.provider;
super.builderSave(settings);
const constructor=this.constructor,
spanClass='tb_signup_label',
module = createElement(),
form = createElement('form',{class:'tb_signup_form',name:'tb_signup_form'}),
lNameLabel=createElement('label'),
lName=constructor._setEditableContent(createElement('span',spanClass),'l_name',data.l_name),
spWrap=createElement('','tb_sp_name_wrapper'),
submit = constructor._setEditableContent(createElement('button',{name:'tb_submit'}),'l_submit',data.l_submit),
classes = ['module', 'module-signup-form'],
const em=createElement('em');
em.appendChild(api.Helper.getIcon(ic));
module.className = classes.join(' ');
lName.prepend(getIcon(data.i_name));
lNameLabel.appendChild(lName);
for(let fields=[{n:'first_n',k:'firstname'},{n:'last_n',k:'lastname'}],i=0;i<fields.length;++i){
label=createElement('label'),
span=constructor._setEditableContent(createElement('span'),'l_'+key,data['l_'+key]);
span.prepend(getIcon(data['i_'+key]));
label.append(createElement('input',{type:'text',name:fields[i].n}),span);
divWarp.append(lNameLabel,spWrap);
form.appendChild(divWarp);
for(let fields=[{n:'usr',k:'username'},{n:'email',k:'email'},{n:'pwd',k:'password'},{n:'bio',k:'bio'}],i=0;i<fields.length;++i){
label=createElement('label'),
input =createElement(key==='bio'?'textarea':'input'),
span=createElement('span',spanClass);
label.append(span,input);
input.type=key==='password' || key==='email'?key:'text';
input.autocomplete='current-password';
span.dataset.required='yes';
let p=createElement('p','',data.desc);
p.prepend(getIcon(data.i_desc));
constructor._setEditableContent(span,'l_'+key,data['l_'+key]);
span.prepend(getIcon(data['i_'+key]));
if ( data.optin==='yes' || data.gdpr==='on') {
fields.push({n:'optin',k:'optin_label'});
fields.push({n:'gdpr',k:'gdpr_label'});
for(let i=0;i<fields.length;++i){
label=createElement('label'),
input =createElement('input',{type:'checkbox',name:fields[i].n});
label.append(input,constructor._setEditableContent(createElement('span','tb_signup_'+fields[i].n),key,data[key]));
submit.prepend(getIcon(data.i_submit));
form.appendChild(submit);
module.appendChild(constructor.getModuleTitle(data.mod_title, 'mod_title'));
module.appendChild(form);