Добавление блока в существующий модуль magento - PullRequest
1 голос
/ 12 ноября 2010

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

мой код выглядит как в config.xml

 <blocks>            
        <customer>
           <rewrite>                          
<widget_name>Mynamespace_Customer_Block_Widget_Name</widget_name>                   
<form_register>Mynamespace_Customer_Block_Form_Register</form_register>
<form_edit>Mynamespace_Customer_Block_Form_Edit</form_edit>
           </rewrite>                   
        </customer>  

     </blocks>

Я создал новый класс блоков в каталоге Form модуля customer под названием «Test.php»

И файл макета клиента выглядит как

<reference name="my.account.wrapper">
            <block type="customer/form_test" name="customer_test" template="customer/form/test.phtml"/>
        </reference>   

Но он не выполняетсяфайл классов блоков.Что-нибудь нужно добавить в файл config.xml этого модуля?

Пожалуйста, помогите, как этот блок может быть интегрирован с существующим модулем.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 12 ноября 2010

На самом деле вы не должны добавлять блоки в клиентский модуль, вы должны добавлять их в свой собственный модуль. Если вы хотите продолжать работу с клиентским модулем, убедитесь, что ваш блок имеет имя Mage_Customer_Block_Form_Test и расширяется Mage_Core_Block_Template. В противном случае создайте класс как Mynamespace_Customer_Block_Form_Test и сохраните его в каталоге вашего модуля. Затем добавьте определение блока для вашего класса в config.xml:

<blocks>
  <mynamespace_customer>
    <class>Mynamespace_Customer_Block</class>
  </mynamespace_customer> 
</blocks>

Тогда вы сможете загрузить блок как mynamespace_customer/form_test.

Может быть проще отладить вашу проблему, если вы используете имя модуля , отличное от customer. Вообще говоря, это плохая идея, которая может привести к ошибкам в системе.

Надеюсь, это поможет!

Спасибо, Джо

2 голосов
/ 12 ноября 2010

Возможно, вы уже знаете об этом, но подумайте о проверке LayoutViewer , чтобы увидеть, что макет думает, что он использует.

Хотя я уверен, что ваш пример config.xml является лишь примером, пожалуйста, убедитесь, что вы запомнили создание перезаписи для form_test и что есть раздел допустимых блоков для вашего собственного модуля.

Кстати, LayoutViewer действительно может быть правильно упакован для Magento Connect. В связанном файле отсутствует необходимая конфигурация для включения модуля, и было бы гораздо полезнее, если бы он был доступен из PEAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...