Тема: Форма контактов с отправкой файла
Пытаюсь привязать файл к форме отправки сообщения (плагин contatcs) по этой схеме - http://www.php-mail.ru/?id=4.
В template-cms - все отлично получилось. Вот мой поправленный плагин - http://forum.template-cms.ru/post/4055/#p4055
Но для monstra не заработало в лоб. Может кто глянет чего не так. Вот код плагина с правками.
Сообщение отправляется, но не привязывается файл.
<?php /** * Contact plugin * * @package Monstra * @subpackage Plugins * @author Romanenko Sergey / Awilum * @copyright 2012 Romanenko Sergey / Awilum * @version 1.1.0 * */ // Register plugin Plugin::register( __FILE__, __('Contact', 'contact'), __('Contact plugin for Monstra', 'contact'), '1.1.0', 'Awilum', 'http://monstra.org/'); /** * Shorcode: {contact recipient="admin@site.org"} */ Shortcode::add('contact', 'Contact::_shorcode'); /** * Usage: <?php Contact::display('admin@site.org'); ?> */ class Contact { public static function _shorcode($attributes) { return Contact::form($attributes['recipient']); } public static function form($recipient) { $name = Request::post('contact_name'); $email = Request::post('contact_email'); $body = Request::post('contact_body'); $errors = array(); if (Request::post('contact_submit')) { if (Security::check(Request::post('csrf'))) { if (Request::post('contact_name') == '' || Request::post('contact_email') == '' || Request::post('contact_body') == '') { $errors['contact_empty_fields'] = __('Empty required fields!', 'contact'); } if ( ! Valid::email(Request::post('contact_email'))) { $errors['contact_email_not_valid'] = __('Email address is not valid!', 'contact'); } if (Option::get('captcha_installed') == 'true' && ! CryptCaptcha::check(Request::post('answer'))) { $errors['users_captcha_wrong'] = __('Captcha code is wrong', 'users'); } if (count($errors) == 0) { $time = date('H:i:s'); $date = date("d.m.y"); $mess = ' Дата отправки письма: '.$date.', время: '.$time.' <br/><br/> Имя: '.Request::post('contact_name').' E-mail: '.Request::post('contact_email').' Текст сообщения: '.Request::post('contact_body').' Отзыв: '.Request::post('review'); require 'class.phpmailer.php'; $mail = new PHPMailer(); $mail->From = 'mail@site.ru'; // от кого $mail->FromName = 'site.ru'; // от кого $mail->AddAddress('mne@gmail.com', 'Мне'); // кому - адрес, Имя $mail->IsHTML(true); // выставляем формат письма HTML $mail->Subject = 'С сайта'; // тема письма // если был файл, то прикрепляем его к письму if(isset($_FILES['foto'])) { if($_FILES['foto']['error'] == 0){ $mail->AddAttachment($_FILES['foto']['tmp_name'], $_FILES['foto']['name']); } } $mail->Body = $mess; if (!$mail->Send()) { Notification::set('error', __('A Letter was not sent!', 'contact')); } if (!empty($_POST['submit'])) { send_mail(); Notification::set('success', __('A letter has been sent!', 'contact')); Request::redirect(Page::url()); } } } else { die('csrf detected!'); } } return View::factory('contact/views/frontend/form') ->assign('name', $name) ->assign('email', $email) ->assign('body', $body) ->assign('errors', $errors) ->render(); } public static function display($recipient) { echo Contact::form($recipient); } }