php - 需要帮助从 opencart 管理面板操作数据库值

标签 php mysql sql opencart

我正在为我的 opencart 安装创建一个扩展。我目前正在运行 OpenCart V1.5.5.1。您将在下面找到我为达到这一点而遵循的代码和过程。希望有人可以帮助我找到完成项目的这一部分还需要什么。

我做的第一件事是在我的 opencart 数据库中的产品表中添加两列。这些列如下:

goal_activate tinyint(1)(寻找 0 或 1 的可能值)

sales_goal INT(任何整数)

我还使用以下代码为管理面板添加必要的文本和选择框以显示控件。这里的想法是为每个产品设置一个选择框,让我们的员工打开销售目标 (goal_activate) 并设置目标值 (sales_goal)。

    <file name="admin/controller/catalog/product.php">
    <operation>
        <search position="after"><![CDATA[$this->data['entry_quantity'] = $this->language->get('entry_quantity');]]></search>
        <add><![CDATA[
        $this->data['entry_goal_activate'] = $this->language->get('entry_goal_activate');
        $this->data['entry_sales_goal'] = $this->language->get('entry_sales_goal');
        ]]></add>
    </operation>                
</file>
<file name="admin/language/english/catalog/product.php">
    <operation>
        <search position="after"><![CDATA[$_['entry_quantity']         = 'Quantity:';]]></search>
        <add><![CDATA[
        $_['entry_goal_activate']     = 'Activate Sales Goal<br/><span class="help">Activate the sales goal thermometer for this product.</span>';
        $_['entry_sales_goal']     = 'Set sales goal<br/><span class="help">Sales goal is set in total units sold.</span>';
        ]]></add>
    </operation>                
</file>

<file name="admin/view/template/catalog/product_form.tpl">
    <operation>
        <search position="before"><![CDATA[<td><?php echo $entry_minimum; ?></td>]]></search>
        <add><![CDATA[
        <td><?php echo $entry_goal_activate; ?></td>
            <td><select name="goal_activate">
              <?php if ($goal_activate) { ?>
              <option value="1" selected="selected"><?php echo $text_yes; ?></option>
              <option value="0"><?php echo $text_no; ?></option>
              <?php } else { ?>
              <option value="1"><?php echo $text_yes; ?></option>
              <option value="0" selected="selected"><?php echo $text_no; ?></option>
              <?php } ?>
            </select></td>
        </tr>
        <tr>
        <td><?php echo $entry_sales_goal; ?></td>
        <td><input type="text" name="sales_goal" value="<?php echo $sales_goal; ?>" size="2" /></td>
        </tr>
        <tr>
        ]]></add>
    </operation>                
</file>

现在,管理面板中的一切看起来都很棒,而且我的数据库列都具有正确的数据类型和默认值。我所缺少的只是将根据用户输入和创建的控件实际更改我的数据库值的代码。我相信我缺少对 admin/controller/catalog/product.php 的 Controller 文件的一些补充,我只是不确定我需要做什么。任何帮助将不胜感激。如果我的问题中有任何问题没有形成或缺乏信息,我深表歉意,这是我在这里的第一篇文章。

最佳答案

数据库处理由 Opencart 的 MVC-L 框架的 model 层完成。所以你也必须做一些这样的改变:

<file name="admin/model/catalog/product.php">
    <operation>
        <search position="before"><![CDATA[
        $this->db->query("UPDATE " . DB_PREFIX . "product SET image = '" . $this->db->escape(html_entity_decode($data['image'], ENT_QUOTES, 'UTF-8')) . "' WHERE product_id = '" . (int)$product_id . "'");         
        ]]></search>
        <add><![CDATA[
        $this->db->query("UPDATE " . DB_PREFIX . "product SET your_field_1 = '" . $this->db->escape($data['your_field_1']) . "', your_field_2 = '" . $this->db->escape($data['your_field_2']) . "' WHERE product_id = '" .  (int)$product_id . "'");
        ]]></add>
    </operation>
</file>

关于php - 需要帮助从 opencart 管理面板操作数据库值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859416/

相关文章:

PHPExcel 所需日期 dd/MM/yy

mysql - 是否可以在安装完 php、mysql 等之后再安装 Sphinx?

MySQL - 使用预定义的插入值创建表列

mysql - "Only SELECT queries allowed"错误

mysql - 如何使用连接在mysql中使用case语句?

php - º,又名阳性序数指示符,破坏 PHP 中的 XML 节点创建

php - Symfony2 序列化实体对象到 session

php - 上传图片,没用

mysql - 如何从其他表获取数据?

php - 当有多少表时如何选择查询