Мой собственный класс блоков определен в сообществе.Но это не работает с соответствующим шаблоном (разработка расширения версии Magento 1.9) - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь создать небольшое расширение для отображения строки на странице продукта Magento 1.9.2.Поэтому я сделал это с помощью пула кода "community" для создания блока (block name = "product.info") в каталоге catalog.xml, но пока он не работал.Я думаю, что мой код правильный, но я не уверен, включены ли все соответствующие папки (Controller, helper, Observer) в мой модуль (Dinod).Пожалуйста, любой может помочь мне создать это расширение с помощью пула кода "сообщество" в Magento 1.9.2.

Я не смог получить ожидаемый результат, протестировав свое расширение с помощью пула кода "сообщество".Но такая же структура расширения работает нормально после использования «основного» пула кода.Поэтому я сохранил свой модуль (Dinod) в папке «app / code / core / Mage», и это время работало должным образом.

Эта структура кода не генерирует ожидаемого вывода через интерфейс (страница продукта).

  • app / etc / modules / Jpdn_Dinod.xml
<config>
  <modules>
    <Jpdn_Dinod>
      <active>true</active>
      <codePool>community</codePool>
    </Jpdn_Dinod>
  </modules>
</config>

  • app / code / community / Jpdn / Dinod / etc / config.xml
<config>
    <modules>
        <Jpdn_Dinod>
            <version>1.0.3</version>
        </Jpdn_Dinod>
    </modules>

    <frontend>
        <layout>
            <updates>
                <Jpdn_Dinod module="Jpdn_Dinod">

                    <file>jpdn_dinod.xml</file>

                </Jpdn_Dinod>
            </updates>
        </layout>
    </frontend>

    <global>


<!-- adding block "Jpdn_Dinod_Block_Product_View" -->

        <blocks>
              <jpdn_dinod>

                  <class>Jpdn_Dinod_Block_Product_View</class>

              </jpdn_dinod>
        </blocks> 

<!-- adding block "Jpdn_Dinod_Block_Product_View" -->


    </global>

</config>


  • app / code / community / Jpdn / Dinod / Block / Product / View / dinod.php
class Jpdn_Dinod_Block_Product_View_Dinod extends Mage_Core_Block_Template
{
    public function dinod_methodblock()
     {
         $name = "Informations from dinod_methodblock in Jpdn_Dinod";
         return $name;
     }
}
  • app / design / frontend /base / default / layout / jpdn_dinod.xml
<layout version="1.0.3">

    <catalog_product_view>

        <reference name="product.info">

            <!-- 
            <block type="dinod/product_view_dinod" name="mage.view.dinod" as="mage.dinod" template="dinod/product/view/dinod.phtml">
                    <action method="addToParentGroup"><group>detailed_info</group></action>
                    <action method="setTitle" translate="value"><value>Dinodddd works</value></action>
            </block>
            -->

            <block type="jpdn_dinod/product_view_dinod" name="jpdn.view.dinod" as="jpdn.dinod" template="dinod/product/view/dinod.phtml">
                    <action method="addToParentGroup"><group>detailed_info</group></action>
                    <action method="setTitle" translate="value"><value>Dinodddd works</value></action>
            </block>

        </reference>

    </catalog_product_view>
</layout>

  • app / design / внешний интерфейс / base / default / template / dinod / product / view / dinod.phtml
<?php echo $this->dinod_methodblock(); ?>

Приведенная выше структура кода не создает ожидаемого вывода через веб-интерфейс (страница продукта).

После того, как я создал новый файл класса блока в "app / code / core / Mage" и отредактировал код вфайл шаблона, как показано ниже, поэтому я получил ожидаемый вывод без каких-либо ошибок.

  • app / code / core / Mage / Dinod / Block / Product / View / dinod.php
class Mage_Dinod_Block_Product_View_Dinod extends Mage_Core_Block_Template
{
    public function dinod_methodblock()
     {
         $name = "Informations from dinod_methodblock in Mage_Dinod";
         return $name;
     }
}
  • app / design / frontend / base / default / layout / jpdn_dinod.xml
<layout version="1.0.3">

    <catalog_product_view>

        <reference name="product.info">

            <block type="dinod/product_view_dinod" name="mage.view.dinod" as="mage.dinod" template="dinod/product/view/dinod.phtml">
                    <action method="addToParentGroup"><group>detailed_info</group></action>
                    <action method="setTitle" translate="value"><value>Dinodddd works</value></action>
            </block>


            <block type="jpdn_dinod/product_view_dinod" name="jpdn.view.dinod" as="jpdn.dinod" template="dinod/product/view/dinod.phtml">
                    <action method="addToParentGroup"><group>detailed_info</group></action>
                    <action method="setTitle" translate="value"><value>Dinodddd works</value></action>
            </block>

        </reference>

    </catalog_product_view>
</layout>

Но я хочу получить тот же вывод только с использованием пула кода "community" вместо использования пула кода "core" для создания блока(block name = "product.info") в каталоге catalog.xml.

...