Prestashop 1.7 在类别名称中添加 <br> 特殊字符标签但无效,如何在菜单导航 nav 中拆分字符串?

Prestashop 1.7 add <br> special character tag in category name but invalid , how to split string in menu navigation nav?

很多人都遇到了在产品名称中添加主题标签的类似问题。我正在尝试在 类别名称 中添加一个
标签(html 换行符)。例如,我输入了“Category
name”,这是行不通的。字符验证是为了安全措施,这是有道理的。

所以我试图覆盖文件“Validate.php”,正如在另一个主题中通过重新定义 isCatalogName 函数所解释的那样:

<?php
class Validate extends ValidateCore
{

    public static function isCatalogName($name)
    {
        // simple test
        
        return !preg_match('/[]/i', $name);
        
    }
}

现在我应该可以像 # 或我想要的 <br /> 这样的主题标签了,但仍然出现错误。

我尝试过不同的方法:

关于如何在 Prestashop 1.7 的类别名称中使用拆分字符串(2 行菜单导航 link)有什么想法吗?

在 Prestashop 论坛上环顾四周并询问后,我被告知没有简单、直接、无黑客攻击的解决方案来实现这一点。因为显然为类别选择的名称用于构造 url。这意味着编辑许多核心文件只是为了通过后端>类别字段放置一个特殊字符,这是不合逻辑的。

所以我只是将其硬编码到文件中 modules\ps_mainmenu\*ps_mainmenu.tpl* :它适用于我的情况。

 {* {$node.label} *}


               {if $node.label|strstr:"and"}
                  {assign var="teststring" value=$node.label}
                  {assign var="testsplit" value="and"|explode:$teststring}
                  {$testsplit[0]} <br/> and {$testsplit[1]}
              
                  {elseif $node.label|strstr:","}

                  {if substr_count($node.label, ",") > 1 }

                    {assign var="teststring" value=$node.label}

                    {assign var="label" value=","|explode:$teststring}

                    {$label[0]},<br/>{$label[1]}, {$label|@end}
                    

                  {/if}

我相信有人 PHP/Smarty savy 可以用几行代码完成这个并且更好(请告诉我!)但它对我有用。 (在某些情况下添加 <br/>