0

出于某种原因,我的客户在他们的 Magento 商店中添加了所有带有大写标题的产品。现在,我正在重新设计他们的网上商店,我不想拥有大写的标题。

我正在考虑运行一个脚本,它将所有产品标题替换为数据库中的小写标题。但是,我害怕破坏数据库。

有谁知道,我怎么能正确地做到这一点?

4

7 回答 7

3

最好的方法(在我看来)是重写目录/产品模型并添加一个方法

<?php

    class Mynamespace_Module_Model_Product extends Mage_Catalog_Model_Product {

        public function getName() {
            $name = parent::getName();
            return strtolower($name);
        }
}

或者你可以简单地运行这个脚本:

UPDATE `catalog_product_entity_varchar` SET value=LOWER(value) 
where attribute_id = "XX"

其中 XX 是产品实体的属性 ID;您需要为产品名称属性找到正确的 ID;

请记住在运行任何脚本之前始终备份数据库

于 2014-01-07T11:27:55.967 回答
1

要更改所有产品名称(您所称的标题),您需要 table catalog_product_entity_varchar。在您的模型中,或助手制作一些类似这样的功能来获取所有产品并使用 lopp 更改名称(标题)并将其保存回来。

public function renameProduct() {
    $products = Mage::getModel('catalog/product')->getCollection()
                ->addAttributeToSelect('name') //here you select all products name
                ));
    foreach ($products as $product) {
        $product->setName(strtolower($product->getName())); //here you make lowercase you products name
        $product->save();//here you save to DataBase new names
    }
}
于 2014-01-07T11:19:31.470 回答
0

您可以使用 strtolower(http://be2.php.net/strtolower)或仅在 CSS 中使用 text-transform 属性(http://www.w3schools.com/cssref/pr_text_text-transform.asp

于 2014-01-07T11:14:04.453 回答
0

您可以运行此查询来更改产品标题的大小写。请备份 Databse 并确保 entity_type_id 和 attribute_id 值

UPDATE catalog_product_entity_varchar SET value = LOWER(value) WHERE entity_type_id = '10' AND attribute_id = '96'

我已经对此进行了测试。它对我来说很好。

于 2014-01-07T11:22:20.960 回答
0

如果要更正数据,请在 db.xml 中进行更正。无论如何,必须拥有适当的开发环境和最新的备份,因此无需担心任何事情。

但是,如果您只想在保持数据不变的情况下修复外观,请考虑使用 CSS 小写/驼峰式标题。

于 2014-01-07T11:24:08.167 回答
0

您还可以在前端 phtml 本身中更改产品名称大小写。例如,如果您想更改出现在产品视图页面中的产品名称,请转到 app/design/frontend///template/catalog/product/view.phtml。那里只是编辑呈现产品名称的部分。

     <div class="product-name">
            <h1><?php echo strtolower($_helper->productAttribute($_product, $_product->getName(), 'name')) ?></h1>
        </div>
于 2014-01-07T11:28:08.510 回答
0

也许并不理想,但另一个简单的选择是使用 CSS。

只需将文本转换添加到您的产品标题元素。

所以,假设产品标题是:

<h1 class="product-title">PRODUCT TITLE</h1>

对于所有小写字母,只需添加:

h1.product-title { text-transform: lowercase; } 

或者,您可以将每个首字母大写:

h1.product-title { text-transform: capitalize; } 
于 2014-08-11T16:11:41.987 回答