在Prestashop中添加新的后台字段

时间:2015-12-15 06:46:23

标签: php smarty prestashop

如何在prestashop的后台添加新字段?

具体来说,我想在BO中插入一个文本字段:Orders-> Statuses->在状态名称下添加新订单状态。

为了做到这一点,我必须修改哪些文件?任何人都可以描述完整的程序吗?

由于

1 个答案:

答案 0 :(得分:1)

我正在使用Prestashop版本1.6.1.2并使用以下步骤添加了一个文本字段。您需要在核心文件中进行更改。您必须在数据库的一个表中添加字段,并在类和控制器文件中进行一些更改。

以下是执行相同操作的步骤。我有adde field' my_custom_field'。

  1. 在order_state表中添加一个字段
  2. ALTER TABLE {YOUR_DB_PREFIX}order_state ADD my_custom_field VARCHAR(50) NOT NULL;

    1. 更改订单状态的类文件。您需要在文件" classes / order / OrderState.php"
    2. 中定义您的字段

      代码

      public $deleted = 0;

      添加此代码snipet

      public $my_custom_field;

      代码

      'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),

      添加此代码snipet

      'my_custom_field' => array('type' => self::TYPE_STRING),

      1. open" controllers / admin / AdminStatusesController.php"文件并进行以下更改
      2. 在函数 initOrderStatutsList()

        在此代码之后

        'name' => array(
            'title' => $this->l('Name'),
            'width' => 'auto',
            'color' => 'color'
        ),
        

        添加此代码

        'my_custom_field' => array(
            'title' => $this->l('My Custom Field'),
            'width' => 'auto',
        ),  
        

        在函数 renderForm()

        在此代码之后

        array(
            'type' => 'text',
            'label' => $this->l('Status name'),
            'name' => 'name',
            'lang' => true,
            'required' => true,
            'hint' => array(
                $this->l('Order status (e.g. \'Pending\').'),
                $this->l('Invalid characters: numbers and').' !<>,;?=+()@#"{}_$%:'
            )
        ),
        

        添加此代码

        array(
            'type' => 'text',
            'label' => $this->l('My Custom field'),
            'name' => 'my_custom_field',
        ),
        

        此处建议进行更改。希望这可以帮助你:)