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

标签 php smarty prestashop

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

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

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

谢谢

最佳答案

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

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

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

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

  1. 更改订单状态的类文件。您需要在文件“classes/order/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),

  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',
),

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

关于php - 在 Prestashop 中添加新的后台办公室字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34282671/

相关文章:

mysql - Mysql 中的 NOT IN 不返回所需的值 - 包含子查询

.htaccess - 如何在 PrestaShop 1.7 中创建 301 或 302 重定向?

php - 从开关内部使用继续跳过 foreach 中的迭代

php - 如何用匹配的字符串过滤sql查询结果

php - 使用 PHP 匹配 HTML <p> 标记的正则表达式

php - 使用 smarty 对数组进行排序

php - 如何使用 <select> 选项将多个项目发布到 mysql

php - 获取 mysql_affected_rows() 期望参数 1 为资源,给定的 bool 值 - 然而查询成功插入数据库 - 给出了什么?

php - 将 smarty bool 值转换为人类可读的值。 ('Yes'/'No' 或 'True'/'False' )

Ajax请求覆盖prestashop 1.6中的 Controller