在官方Prestashop论坛上没有得到任何回应,我想我会尝试转向你们,我的第一篇文章。谢谢阅读。
我正在建立一个销售个性化物品的网站,我可以限制每个物品的自定义字段中输入的字符,这是至关重要的,这是Prestashop中仍然缺少的一个功能,所以我正在努力将这个功能纳入自己的网站。
经过一点修改,我使前端工作得很好,使用maxlength限制自定义输入字段中允许的字符数,使用从数据库中读取的值在ps_customization_field的新字段'max_chars'中(此时手动输入值)
但现在我已经达到了我知识的极限,尽管我四处寻找和修补,但我不能完成最后一点,所以希望有人比我更有知识可以帮助。
基本上,当在后台创建定制字段时,我需要一个额外的输入字段,允许我为每个定制输入max_chars,然后我需要将此值写入数据库的ps_customization_field表的max_chars
字段中。
TL:DR如何在后台产品定制区域创建新字段并将输入保存到数据库中?
谨致问候克莱夫
3条答案
按热度按时间rjjhvcjd1#
您的问题“如何将输入保存到我的数据库”太宽泛了,无法用一个答案来回答。请查阅SQL查询和PDO的工作原理,它们可能会给予您一个如何开始的想法。
在前端显示您的自定义字段可以通过Smarty完成如下操作:
o2g1uqev2#
我认为你应该为此创建一个模块。简单地创建一个模块,在管理产品控制器中添加一个标签,并列出所有创建的自定义字段。然后,用一个简单的id_customization =〉maxcharacter关系创建一个表单。
最后你需要在这个模块中创建一个钩子,并将其添加到保存定制的产品前端控制器中(我想是在initContent中)。这个钩子将进行验证,并可能通过抛出一个错误(当然是prestashop的错误)来取消这个过程。
这样,您就可以为字段添加一些额外的验证,比如类型验证或其他任何验证。
如果你从来没有成功过,你应该试试这个:create a module
以下是一些额外的线索:
额外产品标签挂钩:
创建验证挂接:
处理:
将其添加到覆盖的产品控制器中:
1zmg4dgp3#
要显示您的输入,您需要覆盖
controllers/admin/AdminProdutsController.php
中的方法_displayLabelField
。要更新字段,您需要覆盖
classes/Product.php
中的方法updateLabels
。