Автор Тема: Как копировать страницу Свяжитесь с нами в PS 1.7.3?  (Прочитано 992 раз)

24 Июль 2018, 09:39:58
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Собственно, создал новый контроллер NadieController.php в /controllers/front, прописал туда вот это из контроллера модуля обратной связи ContactController.php:

<?php

class NadieControllerCore extends FrontController
{
    public 
$php_self 'contact';
    public 
$ssl true;

    
/**
    * Assign template vars related to page content
    * @see FrontController::initContent()
    */
    
public function initContent()
    {
        
parent::initContent();

        
$this->setTemplate('contact');
    }
}

создал новую страницу nadie.tpl в /themes/classic/templates с кодом из /themes/classic/modules/contactform/views/templates/widget/contactform.tpl
потом в Трафик и SEO создал вот так, как на скриншоте:


Открываю ссылку мойсайт/list, а меня перекидывает на страницу мойсайт/contact-us
Понимаю, что в .php что то не то пишу, наверно, как нужно правильно?

В .php менял "contact" на "nadie" - не переадресует, но получается вот это, вместо контактной формы:

Надо каким то образом копировать весь модуль?
24 Июль 2018, 10:07:38
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
1. Контроллер
/modules/mymodule/controllers/front/mymodulefrontcontroller.php
class MyModuleFcontModuleFrontController extends ModuleFrontController
{
    public function initContent()
    {
        parent::initContent();
                $this->setTemplate('module:mymodule/views/templates/front/mytemplate.tpl');
    }
}

2. Шаблон
/modules/mymodule/views/templates/front/mytemplate.tpl
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
24 Июль 2018, 10:20:58
Ответ #2
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так создается модуль или чего? Не совсем понятно, что делать дальше, подскажете?
24 Июль 2018, 11:35:27
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Так создают контроллер и шаблон для новой страницы.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
24 Июль 2018, 12:38:37
Ответ #4
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сделал, как вы сказали, прописал страницу через Трафик и СЕО, страница загрузилась (шапка, футер), но вместо контента страница 404...
24 Июль 2018, 12:52:42
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Сделал, как вы сказали, прописал страницу через Трафик и СЕО, страница загрузилась (шапка, футер), но вместо контента страница 404...
Шаблон страницы не видит или в нем ошибки. Контроллер загружает 3 шаблона, шапку + контент + футер.
У вас 2 загружаются, а в третий нет.
24 Июль 2018, 13:52:04
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Для контроллера модуля ненужно прописывать страницу через Трафик и СЕО. Удалите созданную запись.
24 Июль 2018, 14:38:13
Ответ #7
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
mistral, хорошо, тогда как мне вывести созданный модуль на новой странице?
24 Июль 2018, 15:27:28
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
mistral, хорошо, тогда как мне вывести созданный модуль на новой странице?
Через хуки, для такой задачи контроллер не нужно создавать.
public function install()
{
  if (Shop::isFeatureActive())
    Shop::setContext(Shop::CONTEXT_ALL);
 
  return parent::install() &&
    $this->registerHook('leftColumn') &&
    $this->registerHook('header');
}

public function hookDisplayLeftColumn($params)
{
  $this->context->smarty->assign(
      array(
          'my_module_link' => $this->context->link->getModuleLink('mymodule', 'display')
      )
  );
  return $this->display(__FILE__, 'mymodule.tpl');
}
 
public function hookDisplayRightColumn($params)
{
  return $this->hookDisplayLeftColumn($params);
}
 
public function hookDisplayHeader()
{
  $this->context->controller->addCSS($this->_path.'css/mymodule.css', 'all');
}
24 Июль 2018, 17:24:17
Ответ #9
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
mistral, я извиняюсь, но куда это вставлять? Я пытаюсь найти больше информации обо всем этом, на русском её мало, разъясните, пожалуйста, как мне скопировать страницу обратной связи, чтобы поменять в ней пару строк, опираясь на ваше сообщение?
24 Июль 2018, 17:59:00
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
как мне скопировать страницу обратной связи, чтобы поменять в ней пару строк, опираясь на ваше сообщение?
Пару строк можете добавить в файл /themes/classic/templates/contact.tpl
25 Июль 2018, 11:04:53
Ответ #11
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Adik, мне нужно изменить саму форму (удалить там несколько полей) и вставить её на другую страницу, но не трогать форму по ссылке /contact-us
25 Июль 2018, 13:21:03
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Чтобы вставить форму на существующую страницу, нужно переопределить контроллер этой страницы и изменить шаблон tpl.
Чтобы создать новую страницу с новой формой, нужно создать контроллер и шаблон.
Создать контроллер и шаблон можно с помощью модуля.
В зависимости от этих условий разные варианты решения.
25 Июль 2018, 17:04:02
Ответ #13
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Чтобы создать новую страницу с новой формой, нужно создать контроллер и шаблон.
Создать контроллер и шаблон можно с помощью модуля.
Вот мне как раз нужно создать новую страницу и вывести на ней новую форму обратной связи.
Я более менее разобрался, как создать страницу, она открывается, но как мне скопировать форму обратной связи так, чтобы она не зависела от первоначальной формы (на странице /contact-us)?
Мне нужно убрать несколько полей и сверстать по другому, но я не хочу трогать уже существующую форму связи, мне нужна ее копия для моих экспериментов.
Если эта инфа стоит денег, назовите сумму, иначе направьте меня, пожалуйста, на путь истины! Как я понял из вашего ответа, мне как то нужно создать контроллер и шаблон с помощью модуля, а какого модуля и как?
Платным модулем я пока не хочу воспользоваться, иначе никогда так и не научусь этому.
26 Июль 2018, 09:22:58
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
За деньги в другом разделе. Есть раздел про работу, там можете создать тему и вам сделают.