出于某种原因,我的客户在其Magento商店中添加了所有带有资本头衔的产品。 现在,我正在重新设计他们的网店,我不想拥有资本头衔。
我正在考虑运行一个脚本,它正在替换数据库中小写标题的所有产品标题。但是,我害怕破坏数据库。
有谁知道,我怎么能做到这一点?
答案 0 :(得分: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;
请记住在运行任何脚本之前始终备份数据库
答案 1 :(得分:1)
要更改所有产品名称(您调用的标题),您需要表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
}
}
答案 2 :(得分:0)
您可以使用strtolower(http://be2.php.net/strtolower)或仅在CSS中使用text-transform属性(http://www.w3schools.com/cssref/pr_text_text-transform.asp)
答案 3 :(得分:0)
您可以运行此查询来更改产品标题的大小写。请备份数据库,并确保entity_type_id和attribute_id值
UPDATE catalog_product_entity_varchar SET value = LOWER(value) WHERE entity_type_id = '10' AND attribute_id = '96'
我测试了这个。它对我来说很好。
答案 4 :(得分:0)
如果要更正数据,请在数据库中更正它。无论如何,拥有适当的开发环境和最新备份是必须的,所以不必害怕任何事情。
但是,如果您只想在保持数据不变的情况下修复附加值,请考虑使用CSS来小写/标记数据。
答案 5 :(得分: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>
答案 6 :(得分:0)
也许不理想,但另一个简单的选择是使用CSS。
只需在产品标题元素中添加文本转换即可。
因此,假设产品标题为:
<h1 class="product-title">PRODUCT TITLE</h1>
对于所有小写,只需添加:
h1.product-title { text-transform: lowercase; }
或者您可以将每个首字母大写:
h1.product-title { text-transform: capitalize; }