На данной странице показан пример работы модуля комментариев к магазину (модуль загружает отзывы к магазину с Flamp и/или с Yandex, а также позволяет локальным посетителям оставлять свои комментарии к магазину).
Этот модуль я писал в своё время для Magento 1 (в то время еще можно было получать отзывы с Яндекса). А это порт под Magento 2.
Исходники модуля находится по адресу https://github.com/smirnov-a/emagento_comments
Там же описан процесс установки и настройки.
Подключение модуля и внешний вид зависит от вашей текущей темы.
Разместите в каталоге темы необходимые xml-файл(ы) - хэндлы Например, для отображения на опрделенной CMS-странице это будет файл app / design / frontend / <Vendorname> / <themename> /Magento_Theme/ layout / cms_page_view_id_< page_identitfier>.xml.
Допустим у вас двухколоночная верстка с шаблоном «2 columns with left bar». И вы хотите вывести блок с комментариями в левую колонку.
Тогда нужно в layout прописать:
<referenceContainer name="sidebar.main">
<block class="Emagento\Comments\Block\ReviewList" name="your_name" template="Emagento_Comments::review_list.phtml">
<!-- агрументы для javascript -->
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="components" xsi:type="array">
<item name="reviews" xsi:type="array">
<item name="component" xsi:type="string">Emagento_Comments/js/reviews</item>
<item name="config" xsi:type="array">
<item name="template" xsi:type="string">Emagento_Comments/reviews_template</item>
<!-- передать в яваскрипт параметр: кол-во комментариев для показа (без учета ответа на них) -->
<item name="count" xsi:type="string">2</item>
<!-- можно передавать и другие параметры в javascript
<item name="heading" xsi:type="string">Hello World!</item>
-->
</item>
</item>
</item>
</argument>
</arguments>
</block>
</referenceContainer>
Дальше в файле review_list.phtml происходит вывод блока для построения дорожки с комментариями (в данном случае <div id="review_list">):
<div id="reviews-list" data-bind="scope: 'reviews'">
<!-- ko template: getTemplate() --><!-- /ko -->
</div>
И собственно запуск Javascript: построение списка с помощью KnockoutJS (с параметрами, сформированными выше в layout в xml)
<script type="text/x-magento-init">
{
"#reviews-list": {
"Magento_Ui/js/core/app": <?= /* @escapeNotVerified */ $block->getJsLayout() ?>
}
}
</script>
Результат вы можете видеть в соседней слева колонке: дорожка с отзывами подгружается ajax'ом плюс есть возможность написать новый отзыв к магазину
Также есть возможность обойтись без Javascript'а и выводить комментарии в нужное место страницы с помощью соответсвюущего виджета (он принимает параметром кол-во отображаемых комментариев):
⎨⎨ widget type="Emagento\Comments\Block\Widget\Reviews" limit="10" ⎬⎬
В этом случае просто выведет дорожку с отзывами, но без формы добавления нового отзыва