×
Покер бот на Ruby on Rails (12 сен 2018)

Третья ипостась покера на ruby. Искреннее спасибо всем, кто прислал замечания по предыдущим релизам.

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

Больше
7 года 3 мес. назад - 7 года 3 мес. назад #1 от ralf
Как в 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();
Последнее редактирование: 7 года 3 мес. назад пользователем ralf.

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

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

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

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

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

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