5

我有一个模块:app/code/local/Namespace/Resize/

所以我包含了一个通过 Magento 管理员禁用/启用选项的选项。

System > Configuration > Namespace > Resize

但是当我尝试访问此选项时,Mage::getStoreConfig尽管该选项设置为是,但我总是收到 NULL。

Mage::getStoreConfig('resize/settings/enabled', Mage::app()->getStore()->getId());

或者

Mage::getStoreConfig('resize/settings/enabled');

返回 NULL

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_Resize>
            <version>0.0.1</version>
        </Namespace_Resize>
    </modules>

    <global>
        <helpers>
            <resize>
              <class>Namespace_Resize_Helper</class>
            </resize>
        </helpers>
        <events>
            <catalog_product_save_after>
              <observers>
                <resize>
                  <type>singleton</type>
                  <class>namespace_resize_model_observer</class>
                  <method>catalog_product_save_after</method>
                </resize>
              </observers>
            </catalog_product_save_after>
        </events>
    </global>
</config>

system.xml

<?xml version="1.0" ?>
<config>
    <tabs>
        <resizing module="resize" translate="label">
            <label>Resize</label>
            <sort_order>100</sort_order>
        </resizing>
    </tabs>
    <sections>
        <resize module="resize" translate="label">
            <label>Resize</label>
            <sort_order>200</sort_order>
            <show_in_default>0</show_in_default>
            <show_in_website>0</show_in_website>
            <show_in_store>1</show_in_store>
            <tab>resizing</tab>
            <groups>
                <settings module="resize" translate="label">
                    <label>Settings</label>
                    <sort_order>10</sort_order>
                    <show_in_default>0</show_in_default>
                    <show_in_website>0</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                        <enabled translate="Enable resize">
                            <label>Enabled</label>
                            <comment>Backend Resizing</comment>
                            <frontend_type>select</frontend_type>
                            <source_model>adminhtml/system_config_source_yesno</source_model>
                            <show_in_default>0</show_in_default>
                            <show_in_website>0</show_in_website>
                            <show_in_store>1</show_in_store>
                        </enabled>
                    </fields>
                </settings>
            </groups>
        </resize>
    </sections>
</config>

adminhtml.xml

<?xml version="1.0" ?>
<config>
    <acl>
        <resources>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <resize>
                                        <title>Resize Settings</title>
                                    </resize>
                                </children>
                            </config>
                        </children>
                    </system>
                 </children>
            </admin>
        </resources>
    </acl>
</config>

helper app/code/local/Namespace/Resize/Helper/Data

<?php
class Namespace_Resize_Helper_Data extends Mage_Core_Helper_Abstract {

}
  • 模块工作正常

  • 缓存已禁用

  • 我确定该选项已保存,因为我可以在数据库中看到已更新的条目。

配置 ID | 范围 | 范围ID | 路径 | 价值
785 | 商店 | 1 | 调整大小/设置/启用 | 1

任何人都可以帮助我怎么了?

谢谢

4

2 回答 2

1

使用 PHP my admin 并确保您的设置保存在 core_config_data 表中

使用此查询

SELECT * FROM `core_config_data` where path like "%YOUR_CONFIG_FIELD_NAME%";

并确保你会找到你的设置。如果不是,那么您的模块方面有问题。

于 2013-05-22T04:38:23.730 回答
0

您想在您的 system.xml 文件中重命名此标记名称吗

<tabs>
    <resizing module="resize" translate="label">
        <label>Resize</label>
        <sort_order>100</sort_order>
    </resizing>
</tabs>

用调整大小替换调整大小

然后再试一次。

于 2013-05-22T21:55:13.407 回答