管理类别插入缩略图字段已消失
-
12-12-2019 - |
题
我最近安装了 Magento 1.9.1 并尝试使用类别缩略图(以及主图像)。
然而,我已经去了 Admin >> Catalog >> Manage Categories
它似乎已经消失了,我无法添加类别缩略图。
我检查了发行说明,没有提到这一点,我禁用了一些模块、评论、PayPal 等。
我也启用了平面类别,但我尝试过 启用/禁用 一切都消失了,但它似乎仍然消失了:(
解决方案
开始前的重要注意事项:
- 对于这个解决方案,我将调用我们的 包裹名字 “我的项目”和我们的 模块名称 “目录”。如果您熟悉 Magento 扩展开发,您可以根据需要更改这些名称,否则只需按原样执行这些步骤,您就应该拥有丢失的缩略图字段。
- 如果关闭缓存,则在步骤 2 和步骤 3 之间没有 HTTP 请求到达站点可能很重要。我相信如果发生这种情况,Magento 可能会尝试查找版本 1.0.0 安装脚本,尽管没有找到,但仍将扩展标记为“已安装”
core_resource
表,导致步骤 3 中的安装脚本永远无法运行。避免这种情况的一个简单解决方案是确保“配置”缓存类型是 已启用 在遵循这些说明之前。 - 对于步骤 2 和 3,为这些文件创建任何必要的目录。路径在这里很重要,因此请密切注意目录名和文件名。文件和目录名称也区分大小写。
- 最后,我将解释如何根据需要添加更多附加图像字段。如果您想这样做,请确保将所有配置(在步骤 3 中介绍)添加到安装程序脚本中 在运行之前. 。一旦运行,Magento 将不会再次运行安装程序脚本。如果发生这种情况,您必须阅读如何通过增加扩展的版本号并创建适当命名的升级脚本来运行“升级”安装程序脚本。
步骤1: 创建文件 app/etc/modules/MyProject_Catalog.xml
包含以下内容:
<?xml version="1.0"?>
<config>
<modules>
<MyProject_Catalog>
<active>true</active>
<codePool>local</codePool>
</MyProject_Catalog>
</modules>
</config>
第2步: 创建文件 app/code/local/MyProject/Catalog/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<MyProject_Catalog>
<version>1.0.0</version>
</MyProject_Catalog>
</modules>
<global>
<resources>
<myproject_catalog_setup>
<setup>
<module>MyProject_Catalog</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
</myproject_catalog_setup>
</resources>
</global>
</config>
步骤3: 创建文件
app/code/local/MyProject/Catalog/sql/myproject_catalog_setup/mysql4-install-1.0.0.php
包含以下内容:
<?php
/**
* Adds Thumbnail Image back to category entities
*/
$this->startSetup();
$attributes = array(
'thumbnail' => array(
'type' => 'varchar',
'label' => 'Thumbnail Image',
'input' => 'image',
'backend' => 'catalog/category_attribute_backend_image',
'required' => false,
'sort_order' => 5,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
'group' => 'General Information',
),
);
foreach ($attributes as $code => $data) {
$this->addAttribute(Mage_Catalog_Model_Category::ENTITY, $code, $data);
}
$this->endSetup();
步骤4: 如果启用了“配置”缓存类型,请刷新它,或者如果从一开始就没有启用它,只需向站点发出 HTTP 请求即可。对站点的第一个 HTTP 请求(没有缓存的配置 XML 文件)应该会导致 Magento 找到您的扩展,运行安装程序脚本,然后将扩展标记为已安装在 core_resource
桌子。
每一步说明:
- 该文件告诉 Magento 我们的扩展存在、处于活动状态,以及在哪里(基于它的名称和代码池)查找它的配置文件
- 该文件是我们扩展的主要配置文件。对于此扩展,我们只需为其提供一个版本号(运行安装脚本所必需的)并指定它具有安装资源。
- 这是我们扩展的安装程序脚本。它将缩略图添加回 Magento 中。我提供了配置值,将其放回我们过去预期的位置,即“一般信息”选项卡上的“图像”旁边。
- 不言自明...
最后注意事项:
- 检查步骤 3 中的安装程序脚本,可以看到,通过向类别指定附加数组,可以很容易地将任意数量的附加图像字段添加到类别中。
$attributes
多变的。这$attributes
变量是一个key=>value
双'attribute_code' => $config_array
价值观。 - 如果您需要其他图像字段,则需要至少更新每个图像字段的“attribute_code”。优选地,标签和位置也应该更新。最后,如果需要,人们可能还想更改“组”。Magento 开箱即用,为类别实体提供了“一般信息”、“显示设置”、“自定义设计”和“类别产品”组。但是,如果您要提供不存在的组名称,安装程序脚本将知道为您创建该组并将新类别属性添加到新组。该选项卡将自动显示在管理员中。
其他提示
仅新安装的 Magento 1.9.1 才会出现此问题。
问题是缩略图属性是由创建的 Mage_XmlConnect
模块,自 1.9.1 起不再活动。
因此,您可以通过启用 Mage_XmlConnect 模块来解决此问题:
- 打开
/app/etc/modules/Mage_XmlConnect.xml
- 找出
<active>false</active>
行并将其替换为<active>true</active>
- 导航到缓存管理页面并刷新缓存存储。
代替 <active>false</active>
和 <active>true</active>
在“/app/etc/modules/Mage_XmlConnect.xml”中
上述更改在 Magento 1.9.2.4 中完美运行