Модуль - Форма обратной связи

Тема в разделе "Готовые модули и модификаторы. Бесплатно", создана пользователем Ravilr, 27 ноя 2016.

  1. VadimOd

    VadimOd Новичок

    Сообщения:
    5
    Симпатии:
    0
    Скачал, установил на 2.3.0.2 сделал макет, добавил в нужную статью, все получилось.
    Автору огромное спасибо !

    Вопросы:
    1. В настройках магазина - опции идет список защищаемых страниц. Как бы в этот список добавить еще и страницу формы обратной связи ? Чтобы заработала штатная рекапча (у меня выбрана в настройках гугловская рекапча).
    Я понимаю что нужно будет копаться в кодах касательно защищаемых страниц и подсмотреть как там вызывается защита от роботов и делать по аналогу для страницы обратной связи.
    Но вопрос - где находится сам список защищаемых страниц ?

    2. При приходе письма через форму обратной связи у меня упоминается в заголовках что Пересылка осуществляется с емейла хостера. Это нормально или у меня где-то что-то не до конца настроено в ОпенКарте ?
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.879
    Симпатии:
    1.064
    В модуле не предусмотрено вывод капчи. Если на странице обратной связи уже выведено и работает, то достаточно в контрроллер добавить
    PHP:
            // Captcha
            
    if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('contact', (array)$this->config->get('config_captcha_page'))) {
                
    $data['captcha'] = $this->load->controller('extension/captcha/' $this->config->get('config_captcha'), $this->error);
            } else {
                
    $data['captcha'] = '';
            }
    а в шаблон
    PHP:
    <?php echo $captcha?>
    Можно сказать что нормально, при условии если хостер ничего поделать не может. Обычно нормальные хостеры идут на встречу и устраняют это.
     
    karpov нравится это.
  3. VadimOd

    VadimOd Новичок

    Сообщения:
    5
    Симпатии:
    0
    Что я делаю не так ?
    или мне кажется что-то надо еще добавить в языковой файл ?
    Добавил в языковой файл еще строки
    // Captcha
    $_['entry_captcha'] = 'Введите проверочный код:';
    $_['error_captcha'] = 'Проверочный код не совпадает!';

    Но тоже не помогло ...

    Имеем - страница с обратной формой связи работает. Пытаюсь добавить капчу-рекапчу.

    1. Открыл файл контроллера (catalog\controller\extension\module\contactm.php)

    Где-то в районе 56й строчки, после этих строк

    ...
    $mail->setText($this->request->post['enquiry']);
    $mail->send();

    $json['success'] = $this->language->get('text_success');
    }

    // вставил код капчи:

    // Captcha
    if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('register', (array)$this->config->get('config_captcha_page'))) {
    $captcha = $this->load->controller('extension/captcha/' . $this->config->get('config_captcha') . '/validate');

    if ($captcha) {
    $this->error['captcha'] = $captcha;
    }
    }
    // т.е. перед этими строчками
    $this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));
    }

    }
    Сохранил, залил измененный файл на фтп ...

    2. Открыл файл шаблона = contactm.tpl (продублировал этот файл и в папку шаблона UniShop по аналогичному пути)

    Вставил строчку

    <?php echo $captcha; ?>

    таким образом:
    ...
    </fieldset>

    <?php echo $captcha; ?>

    <div class="buttons">
    <div class="pull-right">
    <input class="btn btn-primary submit" value="<?php echo $button_submit; ?>" />
    </div>
    </div>
    </form>

    Залил обновленные файлы, очистил кеш данных, обновил модификаторы.

    Получаю теперь в форме обратной связи внизу перед кнопкой отправки следующую строку:

    Notice: Undefined variable: captcha in /var/www/мой_домен/catalog/view/theme/unishop/template/extension/module/contactm.tpl on line 30

    Впечатление что контроллер не понял про то, что надо задействовать капчу ?

    Действительно похожим образом вызывается рекапча в других контроллерах, но тут облом ...
    Куда копать - подскажите плз...
     
    Последнее редактирование: 7 сен 2017
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.879
    Симпатии:
    1.064
    вставлять перед
    Код:
    return $this->load->view('extension/module/contactm', $data);
     
  5. VadimOd

    VadimOd Новичок

    Сообщения:
    5
    Симпатии:
    0
    Получилось, огромное спасибо !
     
  6. webstrike

    webstrike Пользователь

    Сообщения:
    40
    Симпатии:
    0
    Подскажите, на не стандартной теме будет работать? Версия 2.3
     
  7. Ravilr

    Ravilr Специалист

    Сообщения:
    3.879
    Симпатии:
    1.064
    Будет.
     
  8. webstrike

    webstrike Пользователь

    Сообщения:
    40
    Симпатии:
    0
    Установили, и в модулях нет. Пути несколько раз проверяли. http://makorhaor.com
    Еще вопрос, что с мультиязычностью?
     
  9. Ravilr

    Ravilr Специалист

    Сообщения:
    3.879
    Симпатии:
    1.064
    Это скорей всего ваши проблемы, почему у вас не заработало. Не мне же разбираться.. в ваших проблемах??
     
  10. VadimOd

    VadimOd Новичок

    Сообщения:
    5
    Симпатии:
    0
    Работает 100% нормально на другом шаблоне (если правильно скопировать аналогичные файлы в свой шаблон).

    С мультиязычностью условно проблем у данного модуля нет = можно выкрутиться дав пояснения перед формой на нужном языке...

    Пример реализации для рус. и укр. _https://travelgps.com.ua/mail.html?_route_=mail.html

    Еща раз спасибо разработчику модуля !
     
  11. webstrike

    webstrike Пользователь

    Сообщения:
    40
    Симпатии:
    0
    Интересует как работает с ивритом, Itr - rtl
     
  12. webstrike

    webstrike Пользователь

    Сообщения:
    40
    Симпатии:
    0
    Может посмотрите за деньги наши проблемы?
     
  13. webstrike

    webstrike Пользователь

    Сообщения:
    40
    Симпатии:
    0
    Для не стандартной темы, файлы в свою тему складывать?
    catalog\view\theme\МОЯ ТЕМА\template\extension\module\contactm.tpl
    Да?
     
  14. webstrike

    webstrike Пользователь

    Сообщения:
    40
    Симпатии:
    0
    Уже и в свою и в дефолтную тему установили, несколько раз проверяли пути, модуль так и не появляется в списке всех установленных модулей....:(
     
  15. Zubrec

    Zubrec Новичок

    Сообщения:
    1
    Симпатии:
    0
    Спасибо, все работает, респект автору!
     
  16. Влад Михайлов

    Влад Михайлов Новичок

    Сообщения:
    2
    Симпатии:
    0
    выводит ошибку
    Длина текста должна быть от 10 до 3000 символов!

    версия 2.3.0.2.1
     
  17. Ravilr

    Ravilr Специалист

    Сообщения:
    3.879
    Симпатии:
    1.064
    Странно что выводит. Видимо что то у вас модифицирует модуль или все же не ввели ничего в форму. Других вариантов наугад я не знаю.
     
  18. Влад Михайлов

    Влад Михайлов Новичок

    Сообщения:
    2
    Симпатии:
    0
    вводил приличное колличество текста
     
  19. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    В контроллере данного модуля есть проверка
    PHP:
            if ((utf8_strlen($this->request->post['enquiry']) < 10) || (utf8_strlen($this->request->post['enquiry']) > 3000)) {
                
    $json['error'] = $this->language->get('error_enquiry');
            }
    Вы ее можете убрать, но разобраться почему не срабатывает, тоже не помешало бы..
     
  20. ddd

    ddd Пользователь

    Сообщения:
    84
    Симпатии:
    4
    опенкарт 2.3 установил моудль обратной связи , та не было поля телефон я дописал , настроил в файле контролера ,но теперь на почту приходит только одно поле или телефон или текс-ареа , вот файл самого контролера ,немогу понять как в одну переменную вместить два значения что бы переселало на почту и текстовое поле и телефон