Вопрос

Я создаю модуль, чтобы добавить дополнительный вызов на кнопки действия. Я не могу получить вывод для отображения.Я считаю, что я получаю либо конвенции именования, либо местоположение файла (или обоих) неправильно.

Это также может быть так, как я пытаюсь вставить блок.Я не хочу изменить файлы PHTML, если я смогу избежать этого.

Как вы можете видеть из моих файлов, я пробую ряд способов получить что-либо навести что-либо - без удачи.

Цель состоит в том, чтобы иметь возможность добавлять дополнительные кнопки CTA после добавления в корзину - такие как «образцы запроса»

Структура файла:

app
    Code
        local
            CompanyName
                CtaAttributes
                    Block -> CtaButtons.php
                    etc -> config.xml
    design
        frontend
            base
                default
                    layout->ctabuttons.xml
                    template
                        ctaattributes
                            catelog
                               product ->ctabuttons.phtml
.

config.xml

<config>

    ... includes Module and Resource

    <global>
      <blocks>
        <ctaattributes>
            <class>CompanyName_CtaAttributes_Block</class>
        </ctaattributes>
      </blocks>
    </global>

</config>
.

ctabuttons.xml

<?xml version="1.0"?>

<layout version="0.1.0">
    <catalog_product_view>    
        <reference name="content">

                <block type="core/text_list" name="product.info.addtocart" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
                <action method="append">
                        <block>ctabuttons</block>
                </action>
        </reference>

        <reference name="product.info.addtocart">
            <block type="core/text_list" name="core-text"><action method="setText"><text><![CDATA[<div>Test</div>]]></text></action></block>
        </reference>
    </catalog_product_view>    
</layout>
.

ctabuttons.phtml

<?php
/**
*/
Mage::log(get_class($this));
echo 'this is my test';
.

ctabuttons.php

<?php

class CompanyName_CtaAttributes_Block_CtaButtons extends Mage_Core_Block_Template  {
    echo 'test';

}
.

Это было полезно?

Решение 4

Я нашел решение - это в двух частях.

  1. Я не определял путь интерфейса-> обновления обновления для моего обновления макета.Я вставил это после </global>

      <frontend>
        <layout>
            <updates>
                <ctaattributes>
                    <file>ctaattributes.xml</file>
                </ctaattributes>
            </updates>
        </layout>  
    </frontend>
    
  2. У меня использовал local.xml, я не верю, что это потребуется, но в моем тестировании я думал, что изменил имя файла, чтобы сохранить его отдельно.

    1. Вы не можете использовать корпус верблюда в имени класса блока
    2. Оригинал мой класс был CompanyName_CtaAttributes_Block_CtaButtons - с соответствующим файлом под названием CtaButtons.php.

      Изменение имени для CompanyName_CtaAttributes_Block_Ctabuttons и Ctabuttons.php разрешили проблему.

      Я не знаю, если это классный файл в блоке / BOCKNAME.PHP или файл макета XML, который имеет проблему.

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

Другие советы

    .
  • /blocks/ctabuttons.xml в вашей структуре файла должен быть PHP файл.
  • Я не вижу файл модуля, который должен быть в / приложение / etc / модули
  • Вы должны иметь модуль версию в конфигурации .xml

Если вы используете последние патча, ваши блоки также должны быть разрешены в системе-> Permission-> Black

привет, вам нужно определить тип блока сначала

от

<?xml version="1.0"?>

 <layout version="0.1.0">
     <catalog_product_view>    
         <reference name="content">

                 <block type="core/text_list" name="product.info.addtocart" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
                 <action method="append">
                         <block>ctabuttons</block>
                 </action>
         </reference>

         <reference name="product.info.addtocart">
             <block type="core/text_list" name="core-text"><action method="setText"><text><![CDATA[<div>Test</div>]]></text></action></block>
         </reference>
     </catalog_product_view>    
 </layout>
.

к

<?xml version="1.0"?>

<layout version="0.1.0">
    <catalog_product_view>    
        <reference name="product.info">
            <block type="core/text_list" name="product.info.ctaattributes" before="addtocart" template="ctaattributes/catalog/product/ctabuttons.phtml"/>
        </reference>
    </catalog_product_view>    
</layout>
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top