2015-12-15 73 views
3

如何在prestashop後臺添加新字段?

具體而言,我想在BO中插入一個文本字段:Orders-> Statuses-> Add New Order Status,狀態名稱下。

爲了做到這一點,我必須修改哪些文件?任何人都可以描述完整的程序?在Prestashop中添加新後臺字段

感謝

回答

1

我使用的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;

  • 更改類階狀態的文件。您需要定義字段文件 「類/順序/ OrderState.php」
  • 代碼後

    public $deleted = 0;

    添加這一小段代碼片段

    public $my_custom_field;

    代碼

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

    添加此一小段代碼片段

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

  • 打開「控制器/管理/ 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', 
    ), 
    

    不要改變這裏建議。希望這可以幫助你:)

    +0

    我有相同的代碼..我的錯誤,我已經添加在order_state_lang表中的字段,而不是order_state,我忘了讓我的變量公開在OrderState.php ..謝謝你,我的朋友.. –

    +0

    當您添加lang表時,您必須在類文件中指定lang => true。 –

    相關問題