首页 文章

如何覆盖prestashop 1.7以允许产品 Headers 中的#

提问于
浏览
0

我需要调整或覆盖哪些文件才能使prestashop 1.7让我在产品 Headers 中使用 # 符号?

我搜索了Google并尝试了以前版本的prestashop中使用的不同方法(比如编辑validate.php文件等),但它们都没有任何区别 .

我在prestashop论坛上问了这个问题,并且被告知他们不建议覆盖它,因为它是一个html标签,并且被告知使用音乐符号代替锐利,然后我问这对搜索结果有什么影响,因为人们搜索使用hashtag符号而不是音乐符号以及为什么像shopify这样的其他平台(实际上是相同的)没有采用相同的限制,现在没有人在谈论它 .

请注意我是编码的新手,所以一步一步的指南会很棒 . 我试图尽可能详细,但如果有人需要更多信息,请询问 .

正如评论中所述,这是prestashop论坛问题的链接 . https://www.prestashop.com/forums/topic/617693-how-do-i-use-in-product-title/

2 回答

  • 0

    Allow the # symbol in Product Name/Title field in PrestaShop V1.5+

    我遇到了同样的问题 . 您可以通过创建简单的覆盖来解决此问题 . 这样做可确保Prestashop的更新将根据需要安装和运行 . 这不会改变任何主要后端代码,它只是扩展单个功能 .

    创建一个新文件并将其命名为 Validate.php - 将以下内容粘贴到其中 .

    <?php
    class Validate extends ValidateCore
    {
        /**
         * Check for product or category name validity
         *
         * @param string $name Product or category name to validate
         * @return bool Validity is ok or not
         */
        public static function isCatalogName($name)
        {
            return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;={}]*$/u'), $name);
        }
    }
    

    然后需要保存/上传此新文件 . /override/classes/Validate.php

    Final step: 您需要从服务器删除单个文件: /cache/class_index.php . 然后,在您下一次加载管理区域时,将自动重新创建此文件 . 新的class_index将包含您的新覆盖,您可以开始在产品名称中添加带#字符的产品 .

    而已!

    了解creating overrides in Prestashop . 如果您对删除class_index.php文件犹豫不决,请尽情享受 . You can read about deleting that file here .

  • 0

    我找到的唯一解决方案是更改此文件中的模式:

    \ SRC \ PrestaShopBundle \表格\管理\产品\ ProductInformation.php

    在第145行改变

    pattern' => '/[<>;=#{}]/'
    

    pattern' => '/[<>;={}]/'

    希望这有帮助 . 干杯

相关问题