在Prestashop中添加新后台字段

问题描述:

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

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

为了做到这一点,我必须修改哪些文件?任何人都可以描述完整的程序?在Prestashop中添加新后台字段

感谢

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

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

  1. 添加一个字段中order_state表

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

  1. 更改类阶状态的文件。您需要定义字段文件 “类/顺序/ 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. 打开“控制器/管理/ 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', 
      ), 
      

      不要改变这里建议。希望这可以帮助你:)

    开始=>
开始=>
+0

我有相同的代码..我的错误,我已经添加在order_state_lang表中的字段,而不是order_state,我忘了让我的变量公开在OrderState.php ..谢谢你,我的朋友.. –

+0

当您添加lang表时,您必须在类文件中指定lang => true。 –