У меня после отправки через эту форму, приходит письмо которое содержит email и сообщение. Как оставить только сообщение ?
Я Вам советую читать документацию: http://allforjoomla.ru/xmodules/mod-simpleform2 Код (html): {form} <p>{element label="Ваше имя" class="form-field" type="text" required="required" error="Введите ваше имя" /}</p> <p>{element label="Email" class="form-field" type="text" required="required" error="Введите ваш e-mail" /}</p> <p>{element label="Сообщение" class="form-field" type="textarea" required="required" error="Введите ваше сообщение" /}</p> <p class="submit-container">{element value="Отправить" class="form-button" type="submit" /}</p> {/form}
Я читал. Я понял как добавлять поля и убирать. Если я уберу строку Код (html): <p>{element label="Email" class="form-field" type="text" required="required" error="Введите ваш e-mail" /}</p> то куда будут приходить письма? Тк email получателя указан как {sender} а в строке Код (html): <p>{element label="Email" class="form-field" name="sender" type="text" required="required" error="Введите ваш e-mail" /}</p> name="sender". И вот как раз этот sender приходит в письме вместе с сообщением
я хочу чтобы пользователь ввел email на который хочет отправить сообщение. Поэтому в настройках модуля к строке E-mail получателя я указал {sender}, тоесть письмо отправится на тот адрес который указал пользователь
Вам надо чтобы получатель получал только текст? В модуле есть хелпер - который интерпретирует данные. tmpl - > mail_form.php Код (CODE): <p><?php echo JTEXT::_('Hello');?></p> <p><?php echo JTEXT::_('Sent from page');?>: <?php echo $url;?>.</p> <p><?php echo JTEXT::_('Date');?>: <?php echo $date;?>.</p> <p><?php echo JTEXT::_('User ip');?>: <?php echo $ip;?>.</p> <table cellpadding="5" cellspacing="0"> <tr> <th colspan="2"><font size="+1"><?php echo JTEXT::_('Form content');?>:</font></th> </tr> <?php echo $rows;?> </table> Вам видимо надо будет тут ловить мыло и удалять для вывода.
он берется из $result - попробуйте изменить цикл: Код (PHP): function renderElement($elem) т.к. потом идет: Код (CODE): function sendEmail($result,$params){ Я бы попробовал изменить: Код (PHP): case 'email': $onchange = @$elem->onchange; if(count($elem->requests)) $default = $elem->requests[0]; $attribs = array(); $attribs[] = 'name="'.$name.'"'; $attribs[] = 'id="'.$id.'"'; if($class) $attribs[] = 'class="'.$class.'"'; if($onchange) $attribs[] = 'onchange="'.$onchange.'"'; if($placeholder) $attribs[] = 'placeholder="'.$placeholder.'"'; $result.= '<input type="email" '.implode(' ',$attribs).' value="'.htmlspecialchars($default).'" />'; на Код (PHP): case 'email': $onchange = @$elem->onchange; if(count($elem->requests)) $default = $elem->requests[0]; $attribs = array(); $attribs[] = 'name="'.$name.'"'; $attribs[] = 'id="'.$id.'"'; if($class) $attribs[] = 'class="'.$class.'"'; if($onchange) $attribs[] = 'onchange="'.$onchange.'"'; if($placeholder) $attribs[] = 'placeholder="'.$placeholder.'"'; $noecho.= '<input type="email" '.implode(' ',$attribs).' value="'.htmlspecialchars($default).'" />'; Если ругнется - то Код (PHP): function renderElement($elem){ $result = $elem->code; добавьте: Код (PHP): function renderElement($elem){ $result = $elem->code; $noecho = $elem->code;
вот все что в нем есть, того что вы написали там нет Код (PHP): <?php case 'text': $onchange = @$elem->onchange; if(count($elem->requests)) $default = $elem->requests[0]; $attribs = array(); $attribs[] = 'name="'.$name.'"'; $attribs[] = 'id="'.$id.'"'; if($class) $attribs[] = 'class="'.$class.'"'; if($onchange) $attribs[] = 'onchange="'.$onchange.'"'; if($placeholder) $attribs[] = 'placeholder="'.$placeholder.'"'; $result.= '<input type="text" '.implode(' ',$attribs).' value="'.htmlspecialchars($default).'" />'; break; case 'textarea': $onchange = @$elem->onchange; if(count($elem->requests)) $default = $elem->requests[0]; $attribs = array(); $attribs[] = 'name="'.$name.'"'; $attribs[] = 'id="'.$id.'"'; if($class) $attribs[] = 'class="'.$class.'"'; if($onchange) $attribs[] = 'onchange="'.$onchange.'"'; if($placeholder) $attribs[] = 'placeholder="'.$placeholder.'"'; $result.= '<textarea '.implode(' ',$attribs).' >'.htmlspecialchars($default).'</textarea>'; break; case 'select': $multi = @$elem->multiple; $onchange = @$elem->onchange; $result = '<select'.($multi?' multiple="multiple"':'').' name="'.$name.($multi?'[]':'').'" id="'.$id.'"'.($class?' class="'.$class.'"':'').($onchange?' onchange="'.$onchange.'"':'').'>'.$result; foreach($elem->options as $option){ $sel = ''; if($option->selected || (count($elem->requests)&&in_array($option->value,$elem->requests))) $sel = ' selected="selected"'; $optionCode = '<option value="'.$option->value.'"'.$sel.'>'.$option->label.'</option>'; $result = str_replace($option->code,$optionCode,$result); } $result.= '</select>'; break; case 'radio': foreach($elem->options as $option){ $id = md5($name.'_'.$option->label); $onclick = @$option->onclick; $sel = ''; if($option->selected || (count($elem->requests)&&in_array($option->value,$elem->requests))) $sel = ' checked="checked"'; $optionCode = '<input type="radio" name="'.$name.'" id="'.$id.'" value="'.$option->value.'"'.($class?' class="'.$class.'"':'').($onclick?' onclick="'.$onclick.'"':'').$sel.' /><label for="'.$id.'">'.$option->label.'</label>'; $result = str_replace($option->code,$optionCode,$result); } break; case 'button': $default = @$elem->value; $onclick = @$elem->onclick; $result.= '<input type="button"'.($class?' class="'.$class.'"':'').($onclick?' onclick="'.$onclick.'"':'').' value="'.$default.'" />'; break; case 'submit': $default = @$elem->value; $result.= '<input'.($class?' class="'.$class.'"':'').' type="submit" value="'.$default.'" />'; break; case 'reset': $default = @$elem->value; $onclick = @$elem->onclick; $result.= '<input type="reset"'.($name?' name="'.$name.'"':'').($class?' class="'.$class.'"':'').($onclick?' onclick="'.$onclick.'"':'').' value="'.$default.'" />'; break; case 'checkbox': $default = @$elem->value; $single = false; if(count($elem->options)==0){ $elem->options = array($elem); $single = true; }
ах да) я под себя писал вагончик с тележкой) Добавьте по аналогии email в форме в модуле укажите тип: Код (CODE): <p>{element label="Email" class="form-field" type="email" required="required" error="Введите ваш e-mail" /}</p>
Видимо там там проверку писать надо для вывода, увы не помогу. Советую присмотреться: https://joomla-support.ru/thread/46398/#post-184307 там вроде попроще