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 />
这样的主题标签了,但仍然出现错误。
我尝试过不同的方法:
- 仅覆盖文件“Validate.php”
- 覆盖 Validate.php,还有 Category.php 和 CMSCategory.php,其中调用函数“isCatalogName($name)”并删除这些文件中的验证。
- 我每次都清除后端缓存和 var/cache 文件以确保每次都注销/登录管理。刷新了浏览器缓存/也更改了浏览器!
关于如何在 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/>
)
很多人都遇到了在产品名称中添加主题标签的类似问题。我正在尝试在 类别名称 中添加一个
标签(html 换行符)。例如,我输入了“Category
name”,这是行不通的。字符验证是为了安全措施,这是有道理的。
所以我试图覆盖文件“Validate.php”,正如在另一个主题中通过重新定义 isCatalogName 函数所解释的那样:
<?php
class Validate extends ValidateCore
{
public static function isCatalogName($name)
{
// simple test
return !preg_match('/[]/i', $name);
}
}
现在我应该可以像 #
或我想要的 <br />
这样的主题标签了,但仍然出现错误。
我尝试过不同的方法:
- 仅覆盖文件“Validate.php”
- 覆盖 Validate.php,还有 Category.php 和 CMSCategory.php,其中调用函数“isCatalogName($name)”并删除这些文件中的验证。
- 我每次都清除后端缓存和 var/cache 文件以确保每次都注销/登录管理。刷新了浏览器缓存/也更改了浏览器!
关于如何在 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/>
)