Код файла пространства имен / Mymodule / Block / Item.php недоступен во внешнем интерфейсе после добавления через xml - PullRequest
0 голосов
/ 16 марта 2012

Я работаю над модулем, например " Mymodule ", в котором мне нужно отфильтровать результаты.т.е. для партнеров я создал Partner.php и для сообщества я создал Community.php в

Mymodule/Block/Partner.php 
Mymodule/Block/Community.php

Теперь я хотел получить доступ к их коду в интерфейсе через Mymodule.XML

<block type="mymodule/partner" ......................... />

, но это не работает на LIVE SERVER, хотя и работает на локальном Wamp-сервере :( ... Есть идеи?

Хотя, когда я получаю доступ к модулю по умолчанию.PHP-код в том же и добавьте код, который я поместил в файл партнера и сообщества, он работает.

Есть что-то, что мне не хватает?

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Во-первых, вы должны определить блоки в файле config.xml вашего модуля:

<config>
    <global>
        <blocks>
            <mymodule>
                <class>Namespace_Mymodule_Block</class>
            </mymodule>
        </blocks>
    </global>
</config>

Во-вторых, вы должны использовать правильный тип блока в макете XML:

<block type="mymodule/partner" ......................... />

Вы не должны писать «.php» в типе блока.Обратите внимание, что термин " mymodule " должен быть одинаковым в config xml и типе блока.

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

1 голос
/ 17 марта 2012

Я не совсем уверен, как бы работал ваш код.Но если вы раньше не создавали модуль, вам понадобится минимум 3 файла.

app/etc/modules/Sonassi_Module.xml
app/code/community/Sonassi/Module/etc/config.xml
app/code/community/Sonassi/Module/Block/Partner.php

В первом файле ... app/etc/modules/Sonassi_Module.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Sonassi_Module>
      <active>true</active>
      <codePool>community</codePool>
    </Sonassi_Module>
  </modules>
</config>

Inвторой файл ... app/code/community/Sonassi/Module/etc/config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Sonassi_Module>
      <version>0.1.0</version>
    </Sonassi_Module>
  </modules>
  <frontend>
    <routers>
      <module>
        <use>standard</use>
        <args>
          <module>Sonassi_Module</module>
          <frontName>module</frontName>
        </args>
      </module>
    </routers>
  </frontend>
  <global>
    <blocks>
      <module>
        <class>Sonassi_Module_Block</class>
      </module>
    </blocks>
  </global>
</config>

В третьем файле ... app/code/community/Sonassi/Module/Block/Partner.php

class Sonassi_Module_Block_Partner extends Core_Block_Template
{

}

Затем, наконец, вы можете использовать

<block type="module/partner" ......................... />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...