1 2012-11-10 12:03:00

Тема: Форма контактов с отправкой файла

Пытаюсь привязать файл к форме отправки сообщения (плагин 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);          
        }
    }

Сайт loader

Поделиться

2 2012-11-10 12:07:15

Re: Форма контактов с отправкой файла

смотрю есть require 'class.phpmailer.php';  -  подключается вообще ? путь к нему правильный ?

Follow me: Twitter | GitHub | Coderwall

Стань спонсором проекта.

Сайт Awilum

Поделиться

3

Re: Форма контактов с отправкой файла

Ну дальше используются функции send_mail() и Send(), которые в этом файлике объявлены. И раз письмо приходит - то наверняка файл подключается.

Сайт loader

Поделиться