76 (2012-12-12 18:32:04 отредактировано olsv64)

Re: Контакт

есть же плагин lightbox, его и приспособьте

Сайт olsv64

Поделиться

77 (2012-12-13 13:37:43 отредактировано greddyz)

Re: Контакт

RomanArt пишет:

и как я понимаю у всех проблемы с отображением писем когда они приходят на вашу доменную почту ?
попробуйте gmail.com или mail.ru, если все ок, то бейте своих хостеров smile

В том то и дело, что письма у меня приходят на @mail.ru и в кривой кодировке.
Причем выкладывал сайт на двух разных хостингах, без изменений. Значит хостеры здесь не причем.

Переустановил плагин заново. Тоже самое...

Поделиться

78

Re: Контакт

У меня был скрипт обратной связи, где было прописано примерно это

Content-type:text/plain; charset=utf-8\r\n

В нашем же плагине я не нашел подобного.

Может кто подскажет куда можно подставить такую строчку в наше плагин?

Поделиться

79 (2012-12-13 14:26:12 отредактировано artapp-ds)

Re: Контакт

надо смотреть код отправки почты, поищите там строчку со словом mail, в теле этой функции есть место под метатеги

Поделиться

80 (2012-12-13 14:25:54 отредактировано artapp-ds)

Re: Контакт

Update.. найди

$header

и на следующей строке вставьте это -

$header .= "Content-type: text/plain; charset=\"utf-8\"";

Поделиться

81

Re: Контакт

artapp-ds пишет:

надо смотреть код отправки почты, поищи там строчку со словом mail, в теле этой функции есть место под метатеги

Это?

if (mail($recipient, $subject, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());

Поделиться

82

Re: Контакт

greddyz пишет:
artapp-ds пишет:

надо смотреть код отправки почты, поищи там строчку со словом mail, в теле этой функции есть место под метатеги

Это?

if (mail($recipient, $subject, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());

да, теперь выше там найдите $header и вставьте на следующей строке что я писал пост назад. Должно помочь:)

Поделиться

83

Re: Контакт

artapp-ds пишет:

да, теперь выше там найдите $header и вставьте на следующей строке что я писал пост назад. Должно помочь:)

Спасибо большое, вопрос решен добавлением этой строчки

$header .= "Content-type: text/plain; charset=\"utf-8\"";

Поделиться

84

Re: Контакт

greddyz пишет:
artapp-ds пишет:

да, теперь выше там найдите $header и вставьте на следующей строке что я писал пост назад. Должно помочь:)

Спасибо большое, вопрос решен добавлением этой строчки

$header .= "Content-type: text/plain; charset=\"utf-8\"";

Все работает?:)

Поделиться

85

Re: Контакт

Да. Помогло.

Поделиться

86

Re: Контакт

Хм.. У меня не работает.. Пишу всё правильно. Ответ: "Неверный код каптча!".
Что делать?

Поделиться

87

Re: Контакт

Добрый день. Тут ( http://forum.template-cms.ru/post/6832/#p6832 ) был описан простой способ прикрепления файлов к сообщению.
Я смог разобраться в форме и языковом файле, но нужно же, чтобы все работало:

    <?php echo (Form::hidden('csrf', Security::token())); ?>
    <label><?php echo __('Name', 'contact'); ?></label>
    <input  type="text" name="contact_name" class="input-xlarge" value="<?php echo $name; ?>" /><br />
    <label><?php echo __('Email', 'contact'); ?></label>
    <input  type="text" name="contact_email" class="input-xlarge" value="<?php echo $email; ?>" /><br />
    <label><?php echo __('Phone', 'contact'); ?></label>
    <input  type="text" name="contact_email" class="input-xlarge" value="<?php echo $phone; ?>" /><br />
    <label><?php echo __('Anketa', 'contact'); ?></label>
    <input type="file" name="cffile" />

Что нужно дописать в файле плагина, чтобы все заработало?

Поделиться

88 (2013-03-13 05:31:44 отредактировано Faust)

Re: Контакт

С телефоном просто.
Идете в contact.plugin.php копируйте и вставляйте между имени и емаилом в виде все, что связанно с Name и заменяете name на phone в только что вставленных Вами данных.

Что касается файлов - это сложнее, нужно ставить проверки, ограничения на форматы, заливку и отправку в виде письма. Тут уж лучше попросить, кого  конкретно дописать плагин, со всеми проверками.

Хотя согласен Добаление к форме Phone и прикрепление файла типа xlsx docx pdf zip jpg png с ограничением на 5 метров было бы удобным.

Ex ungue leonem

Поделиться

89

Re: Контакт

Всем здравия!
Уже несколько дней мучаюсь с одной проблемой в форме обратной связи. Добавил в нее поле ввода телефонного номера.

/**
     * 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');
            $phone = Request::post('contact_phone'); 
            $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_phone') == '' || 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) {
                    
                        $recipient = $recipient;
                        $subject = $name;
                        $header = "From: ". $name . " <" . $email . ">\r\n";

                        if (mail($recipient, $subject, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
                        }

                    }

                } else { die('csrf detected!'); }

            }

            return View::factory('contact/views/frontend/form')
                    ->assign('name', $name)
                    ->assign('phone', $phone)
                    ->assign('email', $email)
                    ->assign('body', $body)
                    ->assign('errors', $errors)
                    ->render();            
        }


        public static function display($recipient) {
            echo Contact::form($recipient);          
        }

    }

Поле успешно добавилось. Номер можно ввести, и даже попытаться отправить smile НО!
При заполнении формы данными получаем такой результат:
http://i.piccy.info/i7/d11dc698f823668817f14426be397700/4-56-795/55195977/mail1.jpg

А при отправке номер прыгает в поле "Имя" и данные из формы не посылаются на мыло. При этом внизу сообщается, что "Пустые поля обязательны для заполнения":
http://i.piccy.info/i7/baf3c831eb1f1ac5f3b49045647fd235/4-56-795/59621602/mail2.jpg

Заранее благодарен за любой совет и помощь!

Поделиться

90 (2013-03-16 05:08:30 отредактировано sergeyterr)

Re: Контакт

Вы написали как вы ловите данные, а что вы с ними делаете дальше и что у вас прописано в полях вьюхи известно только вам и ГБ. Какой совет вы хотите получить?

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

91

Re: Контакт

Вы добавили телефон только в класс вывода, и повесили на него проверку ошибок, а также в шаблон вывода.

Однако в том же файле ДО шорткода и класса, вы не добавили соответсвующую верификацию поля ТЕЛЕФОН: его запись и отправку. По аналогии с Именем требовалось копировать ВСЕ возможные функции или строки в файле плагина.

Ex ungue leonem

Поделиться

92

Re: Контакт

Пробема с формой обратной связи.

Вставляю шорткод в контент на странице второго уровня - /blabla/feedback

После нажатия на кнопку Отправить меня переправляет на страницу /feedback - которой не существует, т.е. не учитывается что страница на втором уровне находится.

Сайт loader

Поделиться

93 (2013-03-17 14:45:10 отредактировано zhyvchik)

Re: Контакт

Faust
Однако в том же файле ДО шорткода и класса, вы не добавили соответсвующую верификацию поля ТЕЛЕФОН: его запись и отправку. По аналогии с Именем требовалось копировать ВСЕ возможные функции или строки в файле плагина.

До шорткода в этом файле присутствуют только эти строчки:

<?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/');

Я хочу разобраться сам, мне бы просто ткнуть носом, где именно прописывать функции телефона. Код имеющегося файла для меня не очевиден smile
Большое спасибо!

Поделиться

94 (2013-04-01 05:51:02 отредактировано Faust)

Re: Контакт

if (mail($recipient, $subject, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
                        }

Не вижу здесь телефона

Конкретно в Этом файле требовалось добавить 4 раза:

*** Первый ***

$name  = Request::post('contact_name'); 
$phone  = Request::post('contact_phone');
$email = Request::post('contact_email');                    
$body  = Request::post('contact_body'); 

*** Второй ***

if (Request::post('contact_name') == '' || Request::post('contact_phone') == '' || Request::post('contact_email') == '' || Request::post('contact_body') == '') {
                        $errors['contact_empty_fields'] = __('Empty required fields!', 'contact');
                    }

                   

*** Третий ***

if (mail($recipient, $subject, $phone, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
                        }

*** Четвертый ***

return View::factory('contact/views/frontend/form')
                    ->assign('name', $name)
                    ->assign('phone', $phone)
                    ->assign('email', $email)
                    ->assign('body', $body)
                    ->assign('errors', $errors)
                    ->render(); 

P.S. А все же 5 сам пропустил

              $recipient = $recipient;
                        $subject = $name;
                        $phone = $phone;
                        $header = "From: ". $name . " <" . $email . ">\r\n";
Ex ungue leonem

Поделиться

95

Re: Контакт

А без каких-либо проверок реально написать?

Поделиться

96

Re: Контакт

А без каких-либо проверок реально написать?

Ну телефон вы ввели уже.

if (Request::post('contact_name') == '' || Request::post('contact_phone') == '' || Request::post('contact_email') == '' || Request::post('contact_body') == '') {
                        $errors['contact_empty_fields'] = __('Empty required fields!', 'contact');
                    }

Если отсюда исключите телефон, то проверка заполненного поля на него не потребуется (теоритически отправиться должен он и без проверки, нужно проверять)


а на счет файлов, очень не советую, без проверок вы открываете дыру в безопасности, зальют через него скрипт, что потом делать будите?

Ex ungue leonem

Поделиться

97

Re: Контакт

Как заставить форму работать? smile http://izhdating.ru

Поделиться

98 (2013-03-28 18:22:19 отредактировано zhyvchik)

Re: Контакт

Faust, большое Вам человеческое спасибо. Я все именно так и сделал изначально, символ в символ с написанным Вами.

Но, не работает... "Пустые поля обязательны для заполнения". Причем, если телефонное поле убрать - то все отлично отправляет smile. Мне кажется, что поле не проходит проверку по каким-то критериям. Но ограничений по типу вводимых символов в форме нет! В чем тогда дело?..

UPD: Нашел свою ошибку в form.view.php, вместо

<p><input  type="text" name="contact_phone" class="form_contacts" value="<?php echo $phone; ?>" /></p>

был

<p><input  type="text" name="contact_name" class="form_contacts" value="<?php echo $phone; ?>" /></p>

И тем не менее, письмо все равно не отправляет. Просто выдает ошибку.

UPD2: Еще выявлено, что отправка не реагирует на капчу. Можно ввести символы отличные от тех, что сгенерированы - и капча их примет.
UPD3: Капчу исправил, работает. Видимо при копипасте кода где-то кавычку убрало.

На данный момент ситуация следующая: письмо просто не отправляет.
http://i.piccy.info/i7/4c22278bac34ce306313ddc714e4c391/4-57-443/57467934/Snymok.jpg

На всякий пожарный вложу коды.

contact.plugin.php

<?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');
            $phone = Request::post('contact_phone'); 
            $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_phone') == '' || 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) {
                    
                        $recipient = $recipient;
                        $subject = $name;
                        $header = "From: ". $name . " <" . $email . ">\r\n";

                        if (mail($recipient, $subject, $phone, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
                        }

                    }

                } else { die('csrf detected!'); }

            }

            return View::factory('contact/views/frontend/form')
                    ->assign('name', $name)
                    ->assign('phone', $phone)
                    ->assign('email', $email)
                    ->assign('body', $body)
                    ->assign('errors', $errors)
                    ->render();            
        }


        public static function display($recipient) {
            echo Contact::form($recipient);          
        }

    }

form.view.php

<h2><?php if (Notification::get('success')) Alert::success(Notification::get('success')); ?></h2>
<h4><?php if (Notification::get('error')) Alert::error(Notification::get('error')); ?></h4>
<br />
<form method="post">
    <?php echo (Form::hidden('csrf', Security::token())); ?>
    <label><?php echo __('Name', 'contact'); ?></label>
    <p><input  type="text" name="contact_name" class="form_contacts" value="<?php echo $name; ?>" /></p>
    <label><?php echo __('Phone', 'contact'); ?></label>
    <p><input  type="text" name="contact_phone" class="form_contacts" value="<?php echo $phone; ?>" /></p>
    <label><?php echo __('Email', 'contact'); ?></label>
    <p><input  type="text" name="contact_email" class="form_contacts" value="<?php echo $email; ?>" /></p>
    <label><?php echo __('Message', 'contact'); ?></label>
    <p><textarea class="form_message" rows="10" name="contact_body"><?php echo $body; ?></textarea><br /></p>
    
    <?php if (Option::get('captcha_installed') == 'true') { ?>
    <label><?php echo __('Captcha', 'users'); ?><label>
    <input type="text" name="answer"><?php if (isset($errors['captcha_wrong'])) echo Html::nbsp(3).'<span class="error">'.$errors['captcha_wrong'].'</span>'; ?>
    <?php CryptCaptcha::draw(); ?><?php } ?><br />
    
    <?php if (count($errors) > 0) { ?>
    
    <ul>
    <?php foreach($errors as $error) { ?>
        <li><?php echo $error; ?></li>
    <?php } ?>             
    </ul>             
    <?php } ?>    
    <input type="submit" class="btn" value="<?php echo __('Send', 'contact'); ?>" name="contact_submit"/>
    <p><br /></p>
    <p><br /></p>
</form>

Поделиться

99

Re: Контакт

zhyvchik пишет:

На данный момент ситуация следующая: письмо просто не отправляет.

Откуда отправляете если с localhost то у вас скорее всего не установлен sendmail и не настроены данные для SMTP. Если с хостинга то там скорее всего отключена функция mail. Попробуйте hostinger.ru у них точно работает.

Поделиться

100

Re: Контакт

NBro, с хостинга все отправляется, в случае, если отключить поле ввода телефонного номера. То есть, плагин функционирует нормально до того момента, как в него внедряю ввод телефона smile

Поделиться