当前位置: 首页 > 知识库问答 >
问题:

在Prestashop 1.7的管理产品页面中添加新字段的正确方法

邓俊材
2023-03-14

我已经为Prestashop 1.7创建了一个模块,以便在管理产品页面中添加一个新字段。由于缺乏适当的留档,我想问正确的方法来添加我的自定义字段,选择。我想保存和更新产品保存。

我使用下面的代码添加一个包含表单的tpl

public function hookDisplayAdminProductsExtra($params) {
    $this->smarty;

    $available_items = $this->getAvailableBadges();
    $id_product  = Tools::getValue('id_product');

    $this->context->smarty->assign('items_number', $available_items);
    return $this->display(__FILE__, '/views/templates/admin/admin_products.tpl');
}

问题是我不知道如何使其覆盖产品。php类,以获得我的$field以及如何为tpl创建表单元素。

我想要创建的表单就是这样的

<select name="" id="">
    {foreach from=$items_number item=option}
        <option value="{$option}">
            {$option}
        </option>
    {/foreach}
</select>

很抱歉缺少信息,但我发现创建模块的新方法非常混乱。提前谢谢

共有1个答案

南门展
2023-03-14

要覆盖产品类,请执行以下操作:

在override/classes中创建一个文件“Product.php”/

并添加以下内容:

//override the class
class Product extends ProductCore {
    //add your attribute
    public $field_name;

    //override the construct function
    public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, \Context $context = null) {

        //add your custom field to the array $definitions['fields']
        self::$definition['fields']['field_name'] = [
            'type' => self::TYPE_STRING,
            'lang' => true, //if you have multiple languages on your site
            'required' => false,
            'size' => 255
        ];
    }
}

然后,在数据库中添加一个新条目,如果lang设置为false,则在ps_产品中添加“field_name”,如果lang设置为true,则在ps_产品中添加“field_name”。

您有不同的类型:“类型字符串”、“类型HTML”、“类型布尔”、“类型INT”。。。我不知道详尽的清单。根据您选择的类型,您必须在数据库中创建正确的列类型(“VARCHAR”、“TEXT”和…)

在论坛(stackoverflow,https://www.prestashop.com/forums/)但在类似这样的博客上:https://www.h-hennes.fr/blog/

 类似资料:
  • 问题内容: 我在admin.py中有一个带有以下类的django应用程序: 我想将这些文件用于添加页面,但将不同的字段用于更改页面。我怎样才能做到这一点? 问题答案: 首先看一下ModelAdmin类的源代码和位于中的方法。您可以覆盖这些方法,并使用kwargs获得所需的行为。例如:

  • 我试图添加一个文件上传随着无线电输入在一个自定义的wooCommerce页面;其中所有的产品都显示在列表视图中。 自定义页面代码: 用于在列表视图中显示为funtions.php中的不同项/产品的变体 我能够将无线电值添加到购物车 请看一看: 这里是AJAX PHP 这是编辑过的js 此页面仅可供某些用户访问,因此它具有不同的输入字段,价格与单个产品页面对应。客户端不喜欢刷新此页面,所以我不得不添

  • 我在我的WooCommerce产品中添加了一个自定义字段,就像在这个问题/答案中: 在WooCommerce的简短描述之前显示自定义产品字段。 是否可以将此自定义字段添加到产品批量编辑特别页面(可从管理产品列表页面访问)?

  • 我正在寻找一种方法,以插入之间的产品标题和它的简短说明在WooCommerce的产品页面自定义内容。到目前为止,我只能使用以下代码在简短描述的开头添加自定义内容: 但是,我需要这个内容在产品标题和简短描述标题之间,而不是在最后一个标题下面。我想我用错了钩子,但是我试过的其他几个钩子不起作用。有什么想法吗?

  • 需要新增2个页面 第一个是WebContent/page/simple_role.jsp, 这是authority.jsp页面的外框 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.

  • 在Woocommerce结帐部分,我试图添加一个复选框,以添加其他产品。 我有一个工作代码,添加费用并在单击复选框时更新购物车,但我希望它添加一个产品而不是附加费: 这是复选框的代码 代码是有效的… 现在,我尝试更改代码以添加产品: 但是没有成功。任何帮助将不胜感激。