Как копировать страницу Свяжитесь с нами в PS 1.7.3?

Автор Ivan45, 24 июля 2018, 09:39:58

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

Ivan45

Собственно, создал новый контроллер 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" - не переадресует, но получается вот это, вместо контактной формы:

Надо каким то образом копировать весь модуль?

PrestaMan

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.
Лучшие цены!!!

Ivan45

Так создается модуль или чего? Не совсем понятно, что делать дальше, подскажете?

PrestaMan

Так создают контроллер и шаблон для новой страницы.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Ivan45

Сделал, как вы сказали, прописал страницу через Трафик и СЕО, страница загрузилась (шапка, футер), но вместо контента страница 404...

Adik

Цитата: Ivan45 от 24 июля 2018, 12:38:37
Сделал, как вы сказали, прописал страницу через Трафик и СЕО, страница загрузилась (шапка, футер), но вместо контента страница 404...
Шаблон страницы не видит или в нем ошибки. Контроллер загружает 3 шаблона, шапку + контент + футер.
У вас 2 загружаются, а в третий нет.

mistral

Для контроллера модуля ненужно прописывать страницу через Трафик и СЕО. Удалите созданную запись.

Ivan45

mistral, хорошо, тогда как мне вывести созданный модуль на новой странице?

mistral

Цитата: Ivan45 от 24 июля 2018, 14:38:13
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');
}

Ivan45

mistral, я извиняюсь, но куда это вставлять? Я пытаюсь найти больше информации обо всем этом, на русском её мало, разъясните, пожалуйста, как мне скопировать страницу обратной связи, чтобы поменять в ней пару строк, опираясь на ваше сообщение?

Adik

Цитата: Ivan45 от 24 июля 2018, 17:24:17
как мне скопировать страницу обратной связи, чтобы поменять в ней пару строк, опираясь на ваше сообщение?
Пару строк можете добавить в файл /themes/classic/templates/contact.tpl

Ivan45

Adik, мне нужно изменить саму форму (удалить там несколько полей) и вставить её на другую страницу, но не трогать форму по ссылке /contact-us

Adik

Чтобы вставить форму на существующую страницу, нужно переопределить контроллер этой страницы и изменить шаблон tpl.
Чтобы создать новую страницу с новой формой, нужно создать контроллер и шаблон.
Создать контроллер и шаблон можно с помощью модуля.
В зависимости от этих условий разные варианты решения.

Ivan45

#13
Цитата: Adik от 25 июля 2018, 13:21:03
Чтобы создать новую страницу с новой формой, нужно создать контроллер и шаблон.
Создать контроллер и шаблон можно с помощью модуля.
Вот мне как раз нужно создать новую страницу и вывести на ней новую форму обратной связи.
Я более менее разобрался, как создать страницу, она открывается, но как мне скопировать форму обратной связи так, чтобы она не зависела от первоначальной формы (на странице /contact-us)?
Мне нужно убрать несколько полей и сверстать по другому, но я не хочу трогать уже существующую форму связи, мне нужна ее копия для моих экспериментов.
Если эта инфа стоит денег, назовите сумму, иначе направьте меня, пожалуйста, на путь истины! Как я понял из вашего ответа, мне как то нужно создать контроллер и шаблон с помощью модуля, а какого модуля и как?
Платным модулем я пока не хочу воспользоваться, иначе никогда так и не научусь этому.

Adik

За деньги в другом разделе. Есть раздел про работу, там можете создать тему и вам сделают.