【问题标题】:Magento HTML in product name not working产品名称中的 Magento HTML 不起作用
【发布时间】:2016-01-20 07:07:20
【问题描述】:

我正在开发主题为 rwd 的 Magento CE 1.9
我在产品名称中有<br> 标记,但产品名称仍然呈现为单行。
我已经为管理属性中的 name 属性设置了 Allow HTML Tags on FrontendYes
如何将<br> 转换为换行符,以便产品名称显示在 2 行上?

提前感谢您的帮助。

【问题讨论】:

  • 确保您更改了正确商店的值,即。如果您更改了默认值,请检查您检查的前端商店是否使用该默认值。
  • 您是否启用了缓存?如果是这样,则刷新缓存并再次检查。还要确保您正在更改正确商店的值。
  • @Zefiryn:我尝试了所有 3 个范围,即全球、网站和商店。为 name 属性设置 Allow HTML Tags on FrontendYes 在产品视图页面上有效,但在产品列表中无效。
  • @MahmoudTantawy:缓存已禁用。我还在属性属性更改后为 Product Attributes 重新索引数据。
  • 如果它适用于产品视图页面,那么它也应该适用于产品列表。默认 rwd 主题使用完全相同的代码。您唯一的选择是转到Mage_Catalog_Helper_Output 并调试productAttributemethod,看看为什么它在产品列表中没有按预期工作。

标签: php html magento magento-1.9


【解决方案1】:

快速修复如下:

分类页面:

  1. 转到文件夹/文件:/rwd/catalog/product/list.phtml
  2. 转到第 54 行,

更改此代码

 <?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?>

<?php echo $_helper->productAttribute($_product, nl2br($_product->getName()) , 'name'); ?>

产品视图页面中不存在问题。但是,如果这确实在产品页面中弹出,请执行以下操作。

产品详情页面:

  1. 转到文件夹/文件:/rwd/catalog/product/view.phtml
  2. 转到第 51 行,

更改此代码

 <?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?>

<?php echo $_helper->productAttribute($_product, nl2br($_product->getName()) , 'name'); ?>

检查并告诉我这是否适合您。

乐于助人!

快乐编码...

[编辑此答案]

虽然上述解决方案是可以考虑的 FIX,但以下是可以解决它的问题。

  1. 通过删除 /var/cache 和 /var/full_page_cache (Enterprise) 下的文件夹完成 CACHE 清除
  2. 通过执行以下命令或使用系统 > 索引管理来运行完整的重新索引

/shell/文件夹下的命令:

php indexer.php --reindexall

【讨论】:

  • 我尝试了您的解决方案。但它正在将&amp;lt;br&amp;gt; 转换为&amp;lt;br&amp;gt;
  • 它在哪里转换?这会出现在前端的某个地方吗?你也可以试试函数 nl2br();而不是 htmlspecialchars();
  • 我猜不建议修改核心 magento 文件,rwd 主题是其中的一部分。
  • @Shivani:它出现在前端产品列表中。也尝试了 nl2br(),没有成功.. :( :(
  • @Mahmoud.. 同意!这就是我提到快速修复的原因。理想的解决方案是重新创建此属性(除非有实时产品),否则创建一个新主题并执行此代码。我查看了 Mage_Catalog_Helper_Output 行号:132 检查条件、允许的 HTML 和启用的所见即所得编辑器 - 需要设置为是(此检查对 TextArea/Editor 字段有效)
【解决方案2】:


我在这里添加答案是因为我无法在评论中正确显示答案。

@泽菲林: 试过上面的答案。但我遵循了你建议的方法。 但是我没有直接在核心文件中做任何更改,而是将app/code/core/Mage/Catalog/Helper/Output.phpcore代码池复制到app/code/local/Mage/Catalog/Helper/Output.phplocal代码池。
line number 125 上更改了以下条件

if ($attribute->getFrontendInput() != 'price') {
    $attributeHtml = $this->escapeHtml($attributeHtml);
}



if ($attribute->getFrontendInput() != 'price') {
    if($attributeName != 'name') {
        $attributeHtml = $this->escapeHtml($attributeHtml);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2023-04-06
    相关资源
    最近更新 更多