×
Ruby on Rails: постинг твитов через Twitter API (04 нояб 2017)

Практикуемся в Ruby on Rails.

Важно Форма обратной связи Joomla. Как прикрепить файл?

Больше
6 года 5 мес. назад - 6 года 5 мес. назад #1 от ralf
ralf создал эту тему: Форма обратной связи Joomla. Как прикрепить файл?
Как в joomla реализовать возможность прикрепления файлов к письму через посредство стандартной формы обратной связи? Рецепт ненов, но популярен и востребован (!J1.0.хх !J1.5).

Для этого будем использовать стандартную функцию mosMail, у которой, среди прочих, есть параметр $attachment, поскольку вся функция mosmail завязана на phpmailer. Итак по порядку.

Добавляем в
components\com_contact\contact.html.php
в форму обратной связи кнопку выбора файла
<input name="file" type="file" id="file">

Файл
components\com_contact\contact.php
в функции
function sendmail()
делаем что-то вроде
//USE STANDART ATTACHMENT FUNCTION
$tempdir = $mosConfig_absolute_path."/images/";
$namefile = $_FILES[‘file’][‘name’];
$filetemp = $tempdir.$namefile;
move_uploaded_file($_FILES[‘file’][‘tmp_name’], $tempdir.$namefile);
$attachment = $tempdir.$namefile;
$success = mosMail( $email, $name, $contact[0]->email_to, $mosConfig_fromname .‘: ‘. $subject, $text, $mode=0, $cc=NULL, $bcc=NULL, $attachment);
if (!$success) {
 mosErrorAlert( _CONTACT_FORM_NC );
}
Аспекты с загрузкой файла на сервер, проверки типа и формата и прочее – не затрагиваю, ибо пишем по необходимости в каждом конкретном случае.

То есть, самое главное – задать значением переменной $attachment как путь к файлу на сервере. В приведенном примере – это файл, загруженный из формы обратной связи.

Для Joomla 1.5 класса JMail все в принципе аналогично, почитать можно здесь - E-Mail Class. Provides a common interface to send e-mail from the Joomla! Framework

Чуть более подробно по 1.5:

1 – В саму форму не забываем добавить enctype=»multipart/form-data»
2 – не забываем про абсолютные пути к папке для временного файла
$tempdir = JPATH_ROOT."/images/";

3 – собственно функция вложения теперь упрощена, после того как мы получили файл в переменную $attachment достаточно написать
$mail->addAttachment( $attachment );

перед
$sent = $mail->Send();
Последнее редактирование: 6 года 5 мес. назад от ralf.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
5 года 2 нед. назад - 5 года 2 нед. назад #2 от Aleksej
Aleksej ответил в теме Форма обратной связи Joomla. Как прикрепить файл?
Получил письмо, которое без купюр цитирую ниже. Очень хотелось бы, чтобы на будущее форумчане были более внимательны к авторству тех материалов, что копируются из интернета; в большинстве случае вполне достаточно, на мой взгляд, просто ссылки.

Добрый день.
Прошу указать в статье меня как автора, оригинал текста находится у меня в блоге blog.pbelkov.net/2009/01/27/mosmail-attachment/
Заранее благодарен

--
С уважением, Белков Петр Константинович
Address: Российская Федерация, Севастополь
Blog: blog.pbelkov.net

Последнее редактирование: 5 года 2 нед. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.