Я изменил оформительскую тему и теперь не могу вывести сообщение о начислении баллов накопительной программы за написание отзыва к товару (повтор)

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Артём Пугачёв
  • Группа: Официальный партнёр
  • Сообщений: 61
  • Регистрация: 01.07.2012

09.12.2012 00:55

Добрый день.
У нас сайт работает на нестандартном шаблоне.
И почему-то не выводяться сообщения накопительной системы возле отзывов, на странице товара.

Как можно проверить, что с темой не так? и вывести это сообщение?

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

09.12.2012 11:52

  • Открываете эталонный работающий пример накопительной программы.
  • Выделяете мышкой фразу "Напишите к товару отзыв и получите".
  • Нажимаете CTRL+C.
  • Открываете среду разработки.
  • Ищете полнотекстовым поиском англоязычный вариант данной фразы "Submit a review now and earn".
  • Выделяете его мышкой.
  • Нажимаете CTRL+C.
  • Ищете полнотекстовым поиском его единственное вхождение в программный код:
  • <review_product_list>
        <reference name='product.review.form.fields.before'>
            <block type='df_reward/tooltip' name='reward.hint.review' template='df/reward/tooltip.phtml' after='product.info'>
                <action method='initRewardType'><type>df_reward/action_review</type></action>
                <action method='setWrapperClass'><class>reward-review</class></action>
                <action method='setRewardMessage' translate='message' module='df_reward'><message>Submit a review now and earn %s once the review is approved.</message></action>
                <action method='setRewardQtyLimitationMessage' translate='message' module='df_reward'><message>Up to %s new review(s) can be rewarded.</message></action>
                <action method='setIsGuestNote'><value>1</value></action>
            </block>
        </reference>
    </review_product_list>

  • Принимаете решение подумать.
  • Выделяете мышкой фразу product.review.form.fields.before
  • Нажимаете CTRL+C.
  • Ищете полнотекстовым поиском единственное место создания этого блока
  • <block type="review/form" name="product.review.form" as="review_form">
        <block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
            <label>Review Form Fields Before</label>
            <action method="setMayBeInvisible"><value>1</value></action>
        </block>
    </block>

  • Открываете класс блока Mage_Review_Block_Form
  • Находите шаблон этого блока:
    $this->setTemplate('review/form.phtml')

  • Открываете шаблон
  • Убеждаетесь, что шаблон вызывает
    echo $this->getChildHtml('form_fields_before')


#3 Артём Пугачёв
  • Группа: Официальный партнёр
  • Сообщений: 61
  • Регистрация: 01.07.2012

09.12.2012 14:57

Спасибо.

Проверили. По файлам вроде все хорошо, но блок так и не выводится...

файл /app/design/frontend/rm/default/layout/df/reward.xml, в нем фрагмент:
<review_product_list>
        <reference name='product.review.form.fields.before'>
            <block type='df_reward/tooltip' name='reward.hint.review' template='df/reward/tooltip.phtml' after='product.info'>
                <action method='initRewardType'><type>df_reward/action_review</type></action>
                <action method='setWrapperClass'><class>reward-review</class></action>
                <action method='setRewardMessage' translate='message' module='df_reward'><message>Submit a review now and earn %s once the review is approved.</message></action>
                <action method='setRewardQtyLimitationMessage' translate='message' module='df_reward'><message>Up to %s new review(s) can be rewarded.</message></action>
                <action method='setIsGuestNote'><value>1</value></action>
            </block>
        </reference>
    </review_product_list>


сайт использует шаблон se105, в нем файл конфигурации шаблона каталога app/design/frontend/default/se105/layout/catalog.xml, в нем фрагмент кода:
<block type="review/product_view_list" name="product.info.product_additional_data" as="product_review" template="review/product/view/list.phtml">
                    <block type="review/form" name="product.review.form" as="review_form">
                        <block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
                            <label>Review Form Fields Before</label>
                            <action method="setMayBeInvisible">
                                <value>1</value>
                            </action>
                        </block>
                    </block>                    
                </block>

убедился что за отображение нужной страницы в самом деле отвечает указанный файл.

далее нашел файл шаблона app/design/frontend/default/se105/template/review/form.phtml который отвечает за отображение формы для добавления отзывов, в нем фрагмент кода:
<form action="<?php echo $this->getAction() ?>" method="post" id="review-form-inner">
        <fieldset>            
            <?php echo $this->getChildHtml('form_fields_before'); ?>


Какие могут быть еще причины?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

09.12.2012 16:35

Еслт вы не в состоянии сделать по готовой инструкции из 18 пронумерованных пунктов - надо искать более квалифицированного разработчика.
Форум для заочного программирования не предназначен.

Поделиться темой: