Расширение Magento не регистрируется в таблице основных ресурсов - PullRequest
2 голосов
/ 15 октября 2010

Я пишу расширение для Magento и просто не могу его отобразить в таблице основных ресурсов.Я считаю, что правильно объявляю часть ресурсов моего конфига.Может ли кто-нибудь помочь мне обернуть голову вокруг этого?Заранее спасибо!

<?xml version="1.0"?>
<config>
    <modules>
        <CTRL_Analytics>
            <version>0.2.0</version>
        </CTRL_Analytics>
    </modules>
    <global>
      <blocks>
        <analytics>
          <class>CTRL_Analytics_Block</class>
        </analytics>
      </blocks>

       <helpers>
          <analytics>
            <class>CTRL_Analytics_Helper</class>
          </analytics>
      </helpers>

      <resources>
        <analytics_setup>
            <setup>     
                <module>CTRL_Analytics</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </analytics_setup>

        <analytics_write>
            <connection>
                <use>core_write</use>
            </connection>
        </analytics_write>

        <analytics_read>
            <connection>
                <use>core_read</use>
            </connection>
        </analytics_read>
      </resources>

    </global>
    <adminhtml>
        <menu>
          <analytics translate="title" module="analytics">
              <title>Marketing and Analytics</title>
              <sort_order>100</sort_order>
              <action>analytics/admin</action>
          </analytics>
        </menu>
    </adminhtml>
    <frontend>
        <routers>
            <CTRL_Analytics>
                <use>standard</use>
                <args>
                    <module>CTRL_Analytics</module>
                    <frontName>analytics</frontName>
                </args>
            </CTRL_Analytics>
        </routers>
    </frontend>
</config>

Ответы [ 3 ]

4 голосов
/ 15 октября 2010

Глядя на свой XML, вы называете свой установочный файл

"mysql4-install-0.1.0.php", 

, но ваша начальная версия модуля

"<version>0.2.0</version>"  

Попробуйте изменить начальную версию на

"<version>0.1.0</version>"

или изменение вашего установочного файла на

"mysql4-install-0.2.0.php".  

Эти номера версий файлов берутся из номера версии вашего модуля.

Я всегда добавляю выход или исключение в любой новый установочный файл, чтобы сделатьуверен, что PHP пытается загрузить файл.Информация записывается в таблицу core_resource только после успешного выполнения этого файла, выход или исключение предотвратят эту запись.Это позволяет вам перезагрузить страницу и запускать установщик снова и снова, пока вы не сделаете все правильно.

2 голосов
/ 05 мая 2013

У меня была та же проблема, и мне потребовалась неделя (или я потерял неделю!), Чтобы выяснить, почему, и это было чертовски просто.

Проверьте права доступа к файлам и папкам. Они, вероятно, ограничены, перейдите на чтение и запись для файлов и каталогов вашего нового расширения, это сработает немедленно. В конце концов, не имеет ничего общего с кешем !!!

0 голосов
/ 15 октября 2010

Во-первых (и я уверен, что вы сделали это), очистите и отключите весь кэш.

Во-вторых, убедитесь, что вы можете получить доступ к блокам и помощникам. Если нет, то это может быть проблема с вашим app\etc\modules\CTRL_Analytics.xml. Модуль отображается в меню «Администрирование» в разделе «Система»> «Конфигурация»> «Дополнительно»?

В-третьих, у вас есть sql\analytics_setup\mysql4-install-0.1.0.php и sql\analytics_setup\mysql4-upgrade-0.1.0-0.2.0.php, правильно названные и закодированные. Я обнаружил, что соглашение об именах обновлений mysql сбило с толку многих людей в прошлом.

Наконец, попробуйте запустить сервер в режиме отладки и установить точку останова внутри mysql4-install-0.1.0.php, чтобы проверить, выполняется ли файл на самом деле. Возможно, он пытается запустить, но молча терпит неудачу при ошибке SQL (ненавижу это!).

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

...