Prestashop FAQ - как изменить форму контактов

Автор Виталий, 05 марта 2015, 16:07:40

« назад - далее »

Виталий

Для Prestashop 1.6

1. Измените шаблон contact-form.tpl в папке /themes/ваша тема/...
Добавьте новое поле:
<p class="form-group">
<label for="myvar">{l s='My var'} : <sup>(*)</sup></label>
<input class="form-control grey" type="text" id="myvar" name="contact_myvar" value="{$contact_myvar}" />
</p>


2.  Измените контроллер /controllers/front/ContactController.php, добавьте новое поле
public function postProcess()
{
if (Tools::isSubmit('submitMessage'))
{
....
        else if (!($contact_myvar = trim(Tools::getValue('contact_myvar'))) || (!($contact_myvar = nl2br2($contact_myvar))))
        $this->errors[] = Tools::displayError('Заполните поле myvar.');
....
        if (!count($this->errors))
{
$var_list = array(
....
'{contact_myvar}' => $contact_myvar,
...
public function initContent()
{
parent::initContent();
....
        $this->context->smarty->assign(array(
'contacts' => Contact::getContacts($this->context->language->id),
'message' => html_entity_decode(Tools::getValue('message')),
                'contact_myvar'=>Tools::getValue('contact_myvar'),
));


3.  Измените шаблоны писем contact.html и contact.txt. в папке /mails/ru/...
Добавьте в шаблоны вывод переменной
MyVar: {contact_myvar}

Cоздание интернет сайтов Webstudio UwK

Skam

как эту форму перенести на главную страницу в поп ап окно?

Миколас

Только модулем. Нужем модуль с контоллреом от ContactController.php , тогда можно Ajax запросы обработать.

Skam


izida

#4
Вроде все заполнил как написано. но на почту приходит значение поля: {contact_myvar}.   Подскажите у всех все нормально?

DarinSr

Должно приходить значение этой переменой или ничего не показывать. Если приходит {contact_myvar}, значит переменная не определена в контроллере.
У вас может быть уже переопределен контроллер ContactController.php. Проверьте есть ли файл в /override/controllers/front/ContactController.php.

izida

В данной папке override/controllers/front/ только index.php

izida

Цитата: izida от 04 февраля 2016, 11:31:10
В данной папке override/controllers/front/ только index.php
Что-то в контролере наверное.

DarinSr

Название файла не правильное. Файл доджен называться как в примере "ContactController.php".
Кирилицу в названии нельзя использовать.

alice_inw

#9
В инструкции для контролера маленькая ошибка:
вместо:
'{order_myvar}' => $contact_myvar,
нужно:
'{contact_myvar}' => $contact_myvar,

Виталий

Cоздание интернет сайтов Webstudio UwK

dmstarchikov

#11
Верно ли я понял, что строка
Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $fileAttachment);

из файла ContactController.php, не только сообщает, что сообщение успешно отправлено, но и отправляет письмо на указанный адрес?

Adik

Все так, функция Mail::Send отправляет email.

dmstarchikov

Не смогу я поправить сам данный модуль, платить не хочу. Бесплатных модулей нет?

-SiGi-

Бесплатных модулей нет. Еще есть темы в которые входит модуль для персонализации страницы контактов. Скачать бесплатно тему и модуль можно на варезных сайтах.