在prestashop admin的编辑产品页面中添加一个字段

时间:2013-03-18 11:17:43

标签: product prestashop

我在prestashop数据库的product表中添加了一个字段“mystock”。现在我想在编辑产品页面中显示/编辑此文件。产品更新时也会更新。

4 个答案:

答案 0 :(得分:6)

这个适用于prestashop 1.5.4

将文件Product.php添加到包含以下内容的\ override \ classes:

    <?php
    Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
    class Product extends ProductCore 
    { 
       public $mystock; 
    } 

...假设您需要一个字段来输入数字。

然后3)altafhussain的回答

不要忘记将您的字段添加到数据库中,对于数字字段:
ALTER TABLE ps_product ADD mystock INT NOT NULL;

答案 1 :(得分:4)

此过程需要一些解决方法。下面我列出了它们。

1)打开class / Product.php。将 public $ mystock; 放在类属性列表中,您可以在课程开始后看到。

2)在文件中找到 public static $ definition = array(,它将是一个长数组。找到&#39; fields&#39; =&gt;数组( 在其中,您将看到所有数据库字段都放置了验证,数据类型等。将mystock放在该数组中作为另一个项目,并放置正确的验证和数据类型,如放置在其他字段中。

3)现在打开 adminFolder / themes / default / template / controllers / products / informations.tpl ,并在正确的位置放置具有正确名称和ID的字段。请注意,字段名称/ id应该与db字段名称和我们在Products.php类中添加的名称相同。

多数民众赞成, 希望您了解这一过程并使其发挥作用。

谢谢

答案 2 :(得分:3)

我遇到了这篇文章并基于它构建了我的组件,它似乎是最干净的解决方案:http://nemops.com/prestashop-products-new-tabs-fields/基本上它描述了如何创建一个模块,它在产品编辑页面的自定义面板中添加了多语言字段。

无需编辑模板,核心文件或添加覆盖文件。

答案 3 :(得分:1)

四个步骤中最好的综合解决方案是:

1)将文件Product.php添加到包含以下内容的\ override \ classes:

<?php
Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
class Product extends ProductCore 
{ 
   public $mystock; 
} 

2)打开adminFolder / themes / default / template / controllers / products / informations.tpl,并在适当的位置输入正确的名称和ID字段。

3)删除文件缓存/ class_index.php

4)将您的字段添加到数据库字段:

ALTER TABLE ps_product ADD mystock INT NOT NULL;

[感谢Bell418 1)和4)和Altaf Hussain 2)]