В общем что надо было сделать, может все-таки кому-то понадобится
1. создать в корне папку uploads и дать права 777
2. в файле core/functions/functions.php примерно на 1071 строчке находим функцию function xMailTxtHTML. Заменяем ее на:
function xMailTxtHTML($_Email, $_Subject, $_Text, $path_of_uploaded_file, $castmail = CONF_GENERAL_EMAIL, $castname = CONF_SHOP_NAME)
{
if (!$_Email) return 0;
include_once ("core/classes/class.phpmailer.php");
$mail = new PHPMailer();
if (!CONF_MAIL_METHOD) $mail->IsSMTP();
else $mail->IsMail();
$mail->Host = CONF_MAIL_HOST;
$mail->Username = CONF_MAIL_LOGIN;
$mail->Password = CONF_MAIL_PASS;
$mail->SMTPAuth = true;
$mail->From = $castmail;
$mail->FromName = $castname;
$mail->CharSet = DEFAULT_CHARSET;
$mail->Encoding = "8bit";
$mail->SetLanguage("ru");
$mail->AddReplyTo($castmail, $castname);
$mail->IsHTML(false);
$mail->Subject = $_Subject;
$mail->Body = $_Text;
$mail->addAttachment($path_of_uploaded_file);
if (preg_match("/^[_\.a-z0-9-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/is",
$_Email))
{
$mail->ClearAddresses();
$mail->AddAddress($_Email, '');
return $mail->Send();
}
else return false;
}
3. В файле core/includes/feedback.php после
$message_text = "";
}
добавляем
// Настройки
$upload_folder = './uploads/'; //папка, в которую сохраняются файлы
$name_of_uploaded_file = basename($_FILES['upfile']['name']); //имя загружаемого файла
$path_of_uploaded_file = $upload_folder . $name_of_uploaded_file; // пусть к файлу
$tmp_path = $_FILES["upfile"]["tmp_name"];// аргумент, который нужен для is_uploaded_file
if(is_uploaded_file($tmp_path))
{
if(!copy($tmp_path,$path_of_uploaded_file))
{
$errors .= '\n error while copying the uploaded file';
}
}
4. В файле /core/tpl/user/шаблон/feedback.tpl.html
перед
{if $smarty.const.CONF_ENABLE_CONFIRMATION_CODE eq 1}
вставляем
<tr>
<td align="left">Прикрепите файл</td>
</tr>
<tr>
<td style="height: 2px;"></td>
</tr>
<tr>
<td align="left"><input name="upfile" type="file"></td>
</tr>
А также добавляем enctype="multipart/form-data" в <form> .
Все работает, но тут есть вопрос к форумчанам, по поводу проверки. В том примере откуда я взял это все, написана проверка размера файла и расширения. НО. Вот пример. Мы задаем в начале формаьы файлов, которые разрешаем загружать и пустую переменную ошибок.
$allowed_extensions = array("jpg", "jpeg", "gif", "bmp");
$errors ='';
После этого находим расширение уже загруженного файла:
$type_of_uploaded_file = substr($name_of_uploaded_file,
strrpos($name_of_uploaded_file, '.') + 1);
И проверяем, сходится он с теми, что мы разрешили пользователю залить:
$allowed_ext = false;
for($i=0; $i<sizeof($allowed_extensions); $i++)
{
if(strcasecmp($allowed_extensions[$i],$type_of_uploaded_file) == 0)
{
$allowed_ext = true;
}
}
if(!$allowed_ext)
{
$errors .= "\n The uploaded file is not supported file type. ".
" Only the following file types are supported: ".implode(',',$allowed_extensions);
}
Так вот этот еррор никак не высвечивается. Пробовал сделать так:
if(!$allowed_ext)
{
$smarty->assign("error",5);
}
прописал в russian.php
define('ERROR_TYPE', 'Загружаемый файл запрещен к загрузке')
А в файле feedback.tpl.html дописал {elseif $error eq 5}{$smarty.const.ERROR_TYPE}, но не проходит проверку, думаю, что не в том месте разместил.