Добавить отправление картинок к форме обратной связи
#1
Отправлено 08 February 2014 - 06:47 PM
#2
Отправлено 09 February 2014 - 12:11 AM
2. добавить в эту форму input для файла с картинкой (<input type="file" name="myname"....> )
3. в feedback.php добавить обработку $_FILE['myname'] (копирование в постоянное место и вставка ссылки в текст письма, $message_text)
4. в functions.php в функцию xMailTxtHTML добавить то же самое, что описано тут:
http://vsupport.club...dpost__p__29878
PS. Несколько позже:
1. в файле feedback.tpl.html
1.1. строку
<form name="formfeedback" id="formfeedback" method="post" action="index.php">
заменяем
{* BEGIN picture-in-feedback *}
{*<form name="formfeedback" id="formfeedback" method="post" action="index.php">*}
<form enctype="multipart/form-data" name="formfeedback" id="formfeedback" method="post" action="index.php">
{* END picture-in-feedback *}
1.2. перед строкой
{if $smarty.const.CONF_ENABLE_CONFIRMATION_CODE eq 1}
вставляем
{* BEGIN picture-in-feedback *}
<tr><td style="height: 6px;"></td></tr>
<tr><td align="left">Присоединить картинку</td></tr>
<tr><td style="height: 2px;"></td></tr>
<tr><td align="left"><input name="picture" type="file"></td></tr>
<tr><td style="height: 6px;"></td></tr>
{* END picture-in-feedback *}
2. в файле feedback.php перед строкой
if(CONF_ENABLE_CONFIRMATION_CODE){
вставляем
# BEGIN picture-in-feedback
if($_FILES['picture']['name'])
{
copy($_FILES['picture']['tmp_name'], 'core/temp/'.$_FILES['picture']['name']);
$message_text .= '<img src="/core/temp/'.$_FILES['picture']['name'].'">';
}
# BEGIN picture-in-feedback
3. в файле functions.php в функции xMailTxtHTML перед строкой
$mail->Body = $_Text;
вставляем
# BEGIN picture-in-feedback
if (preg_match_all('/src="\/(\S+\/(\S+?\.(jpg|gif|jpeg|png|bmp)))"/', $_Text, $match, PREG_SET_ORDER))
foreach ($match as $m)
{
$_Text = str_replace($m[0],'src="cid:'.$m[2].'"',$_Text);
$mail->AddEmbeddedImage($m[1],$m[2]);
}
# END picture-in-feedback
3.1 если хотим, чтобы картинка была не аттачем (вложением), а показывалась в письме, то меняем в этой же функции
$mail->IsHTML(false);
на
$mail->IsHTML(true);
Либо можно в feedback.php заменить xMailTxtHTML на xMailTxtHTMLDATA, которая только этим и отличается.
#3
Отправлено 09 February 2014 - 06:53 AM
на локале увидел фото в темпе, в письме изображение заблокировано.
#4
Отправлено 09 February 2014 - 08:30 AM
4. в functions.php в функцию xMailTxtHTML добавить то же самое, что описано тут:
http://vsupport.club...dpost__p__29878
перенес с локали, отправляю тестовое письмо, а там ссылка на картинку. почитал, не пойму, почему не добавляется картинка в тело письма?
#5
Отправлено 09 February 2014 - 04:23 PM
Модификация функции xMailTxtHTML в том и состоит, чтобы выловить в тексте эту локальную ссылку (по регулярному выражению) и сделать два действия:перенес с локали, отправляю тестовое письмо, а там ссылка на картинку
1. заменить подстроку <img src="/aaa/bbb.jpg"> на <img src="cid:bbb.jpg">
2. присоединить к письму файл /aaa/bbb.jpg в виде аттача с именем bbb.jpg
Не представляю, что там может не работать, две строки кода. Если, конечно, Вы не файл с русскоязычным названием присоединяете, там код будет чуть другой. Но именно чуть, на пару iconv-ов. Собственно, я ведь выложил подробную инструкцию. Неужели по ней тоже не получилось?
#6
Отправлено 09 February 2014 - 06:02 PM
Модификация функции xMailTxtHTML в том и состоит, чтобы выловить в тексте эту локальную ссылку (по регулярному выражению) и сделать два действия:перенес с локали, отправляю тестовое письмо, а там ссылка на картинку
1. заменить подстроку <img src="/aaa/bbb.jpg"> на <img src="cid:bbb.jpg">
2. присоединить к письму файл /aaa/bbb.jpg в виде аттача с именем bbb.jpg
Не представляю, что там может не работать, две строки кода. Если, конечно, Вы не файл с русскоязычным названием присоединяете, там код будет чуть другой. Но именно чуть, на пару iconv-ов. Собственно, я ведь выложил подробную инструкцию. Неужели по ней тоже не получилось?
а что нужно изменить при присоединении файла с русским названием?
попробую еще раз прочитать, может что упустил. но пока в письме так: <img src="/aaa/bbb.jpg">
#7
Отправлено 14 May 2016 - 11:53 AM
А не подскажете, пожалуйста, как то же самое реализовать на DLE используя встроенную в DLE форму обратной связи?PS. Несколько позже:
Заранее благодарен за ответ!!!
#8
Отправлено 14 May 2016 - 12:08 PM
Как минимум, задать вопрос в разделе о DLE, а не о ShopCMS.как то же самое реализовать на DLE используя встроенную в DLE форму
Если кто-то знает, как это сделать на DLE, то он раздел о DLE читает.