Jump to content

Вывести статью во вкладке на странице товара


SiteMix
 Share

Go to solution Solved by Tom,

Recommended Posts

Понадобилось вывести статью во вкладке на странице товара (у всех товаров)...

 

В контроллер product.php добавляю

$this->load->model('catalog/information');
$data['article'] = $this->model_catalog_information->getInformation(4);

 

В product.twig добавляю

{% if article %}
<li><a href="#tab-article" data-toggle="tab">Article</a></li>
{% endif %}
...
{% if article %}
<div class="tab-pane" id="tab-article">{{ article }}</div>
{% endif %}

 

Вкладка появляется и открывается, но на ней:

Цитата

Notice: Array to string conversion in \www\system\library\template\Twig\Environment.php(403) : eval()'d code on line 187Array

 

Если в контроллере вместо 4 поставить несуществующий id статьи (например, 1), то на странице товара вкладка не появляется. То есть, частично работает.

 

Где ошибка?

Link to comment
Share on other sites

В 17.08.2023 в 18:54, SiteMix сказал:

Понадобилось вывести статью во вкладке на странице товара (у всех товаров)...   В контроллер product.php добавляю $this->load->model('catalog/information'); $data['article'] = $this->model_catalog_information->getInformation(4);   В product.twig добавляю {% if article %} <li><a href="#tab-article" data-toggle="tab">Article</a></li> {% endif %} ... {% if article %} <div class="tab-pane" id="tab-article">{{ article }}</div> {% endif %}   Вкладка появляется и открывается, но на ней:   Если в контроллере вместо 4 поставить несуществующий id статьи (например, 1), то на странице товара вкладка не появляется. То есть, частично работает.   Где ошибка?

Ошибка может быть связана с тем, что метод getInformation() модели catalog/information не возвращает нужную статью соответствующую переданному id. Убедитесь, что статья с id=4 существует в базе данных и правильно настроена.

Также, убедитесь, что вы правильно передаёте данные из контроллера в представление. Проверьте, что переменная $data['article'] действительно содержит данные. Для этого вы можете использовать функцию var_dump() или die() в контроллере, чтобы увидеть содержание переменной.

Если данные передаются правильно, проверьте шаблон product.twig. Убедитесь, что вам нужно отобразить только содержимое статьи, а не всю структуру HTML-кода.

Также, проверьте, что в вашей теме оформления существует файл product.twig и вы работаете с правильным файлом шаблона.

Если вы все еще не можете найти ошибку, можете предоставить более подробный код из контроллера и представления, чтобы я мог найти проблему.

Link to comment
Share on other sites

В 17.08.2023 в 23:54, SiteMix сказал:

Где ошибка?

 

ну вот же )

В 17.08.2023 в 23:54, SiteMix сказал:

Array to string conversion

 

откройте catalog\controller\information\information.php

и приглядитесь внимательно к строке

$data['description'] = html_entity_decode($information_info['description'], ENT_QUOTES, 'UTF-8');

Link to comment
Share on other sites

  • Solution

Делал как то по просьбе. Смысл  задачи был такой.

Выводим в карточке товара во вкладках статьи (Каталог - Статьи).

В качестве названия вкладки Заголовок статьи, ну и содержимое это Описание статьи.
При чём без привязки к конкретной статье , как в примере ТС. 
Добавил просто чекбокс "Показать в товаре", аналог "Отображать в футере".
Отмечаем чекбокс и статьи выводятся в товаре в любом количестве.

Так мне кажется логичнее и удобнее.

 

info_tabs.png

 

Статьи во Вкладках.ocmod.xml

Link to comment
Share on other sites

В 18.08.2023 в 04:53, Tom сказал:

Так мне кажется логичнее и удобнее.

Да, действительно, это гораздо лучше! Ведь может понадобиться вывести несколько статей.
Большое спасибо! hi.gif

 

Единственное что смутило, это радио-переключатель вместо чекбокса. Статья может понадобиться и там и там. Впрочем, он почему-то не сработал у меня и статья выводится и там, и там. Но вполне возможен сценарий, когда нужно вывести только в одной локации... В общем, два чекбокса был бы более удобный вариант...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...