Отобразить страницу cms на странице модуля - PullRequest
0 голосов
/ 08 декабря 2018

Я использую сторонний модуль для обслуживания клиентов моего сайта.В этом модуле есть отдельная страница для создания заявки.

Я пытаюсь добавить страницу cms (уже созданную в Pages of Prestashop) слева от формы этой страницы.

Для этого я создаю функцию в модулях / {THEmodule} /controllers/front/function.php

  public function getFAQ($id_cms, $id_lang = null, $id_shop = null){
        if (is_null($id_lang)) {
            $id_lang = (int)Configuration::get('PS_LANG_DEFAULT');
        }
        if (is_null($id_shop)) {
            $id_shop = (int)Configuration::get('PS_SHOP_DEFAULT');
        }


        $sql = new DbFAQ();
        $sql->select('content');
        $sql->from('cms_lang');
        $sql->where('id_cms = .(int)$id_cms.' AND 'id_lang = .(int)$id_lang.' AND 'id_shop = .(int)$id_shop');
        return Db::getInstance()->executeS($sql);
    }

Затем вызываю функцию в .tpl

<div id="support-getFAQ">
    {$getFAQ=12} {* 12 is the id of the cms page that I want display *}
</div>

Но когдаЯ проверяю страницу, ничего не отображается, поэтому я думаю, что это не очень хороший способ.

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Спасибо @ marcin-jaworski, который дал мне путь.

Решение простое.Не нужно добавлять функцию, просто напишите в tpl:

{assign var=new_smarty_var value=CMS::getCMSContent(12)}
      {$new_smarty_var.content nofilter}

Не забудьте "nofilter", чтобы напечатать html.

0 голосов
/ 11 декабря 2018

Из-за хорошей практики вы должны назначить переменную smarty в контроллере вашего модуля или функцию отображения для ловушки.

PrestaShop DevDocs

Отображение содержимого на передней панелиoffice

Вы можете получить контент CMS, используя функцию, уже созданную в классе CMS (/classes/CMS.php):

public static function getCMSContent($id_cms, $id_lang = null, $id_shop = null)

public static function getCMSPages($id_lang = null, $id_cms_category = null, $active = true, $id_shop = null)

Также у меня есть небольшая хитрость, которую вы можете использоватьв .tpl

  {assign var=new_smarty_var value=(CMS::getOneCMS(11, $language.id)}
  {$new_smarty_var.content}
...