Как создать и настроить свой веб-сервер на VDS (05 сен 2024)

Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?

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

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

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

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

Файл
Code:
components\com_contact\contact.php
в функции
Code:
function sendmail()
делаем что-то вроде
Code:
//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();
Последнее редактирование: 13 года 5 мес. назад пользователем ralf.

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

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

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

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

Последнее редактирование: 12 года 3 нед. назад пользователем Aleksej.

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

Работает на Kunena форум