在Prestashop中添加新后台字段
问题描述:
如何在prestashop后台添加新字段?
具体而言,我想在BO中插入一个文本字段:Orders-> Statuses-> Add New Order Status,状态名称下。
为了做到这一点,我必须修改哪些文件?任何人都可以描述完整的程序?在Prestashop中添加新后台字段
感谢
答
我使用的Prestashop版本1.6.1.2,并使用以下步骤添加一个文本字段。您需要对核心文件进行更改。您必须在数据库中的一个表中添加字段,并在类和控制器文件中进行一些更改。
以下是执行相同操作的步骤。我有adde字段'my_custom_field'。
- 添加一个字段中order_state表
ALTER TABLE {YOUR_DB_PREFIX}order_state ADD my_custom_field VARCHAR(50) NOT NULL;
- 更改类阶状态的文件。您需要定义字段文件 “类/顺序/ OrderState.php”
- 打开“控制器/管理/ AdminStatusesController。PHP的”文件并做以下更改
代码后
public $deleted = 0;
添加这一小段代码片段
public $my_custom_field;
代码
'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
添加此一小段代码片段
'my_custom_field' => array('type' => self::TYPE_STRING),
在功能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',
),
不要改变这里建议。希望这可以帮助你:)
我有相同的代码..我的错误,我已经添加在order_state_lang表中的字段,而不是order_state,我忘了让我的变量公开在OrderState.php ..谢谢你,我的朋友.. –
当您添加lang表时,您必须在类文件中指定lang => true。 –