在 Prestashop 中添加新的后台办公室字段

Add New Back Office Field In Prestashop

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

具体的,我想在BO中插入一个文本域:Orders->Statuses->Add New Order Status 状态名下。

我必须修改哪些文件才能做到这一点?谁能描述完整的过程?

谢谢

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

以下是执行相同操作的步骤。我有添加字段 'my_custom_field'.

  1. 在order_state中添加一个字段table

ALTER TABLE {YOUR_DB_PREFIX}order_state ADD my_custom_field VARCHAR(50) NOT NULL;

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

代码后

public $deleted = 0;

添加此代码片段

public $my_custom_field;

代码后

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

添加此代码片段

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

  1. 打开 "controllers/admin/AdminStatusesController.php" 文件并进行以下更改

在函数 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',
),

执行此处建议的更改。希望这对你有帮助:)