【问题标题】:How can I put dynamic content into the product description in Opencart3?如何在 Opencart 3 中将动态内容放入产品描述中?
【发布时间】:2020-03-16 23:08:47
【问题描述】:

我正在尝试根据客户将访问的本地商店,将从数据库(或平面文件,即使这会更好)中提取的动态数据放入 Opencart3 中产品的描述字段。

我在以前的网站上所做的是,使用最近的商店 id,从数据库中提取特定于产品的数据并存储并在描述中显示

一个简单的例子是,描述对商店 A 附近的购物者说“请乔”,如果购物者在商店 B 附近,则说“请莎拉”。

所以我正在寻找一种方法,在带有 PHP 7.2、Mariadb 10.1(和 PostgreSQL 10)的 Ubuntu 18.04 服务器上使用 Opencart 3.0.3.2。

标准编辑器 (Summernote) 删除了 PHP 标记,虽然我读过这可能是可配置的,但我看不出在哪里。 Summernote 允许 Javascript 标签,但那是客户端,所以我不能用它从数据库中提取数据。

任何有关配置编辑器以保留 PHP 标记的建议,或有关检索数据并将其插入网页的其他建议,我们将不胜感激。

【问题讨论】:

  • 您如何区分“本地商店”?您是否在单个 OpenCart 安装中配置了多个商店,或者您是否有多个 OpenCart 安装?
  • 我在单个 OpenCart 安装中配置了多个商店位置。我希望能够在所有商店位置使用产品描述,仅使用数据库中存在商店之间差异的奇数插入部分。

标签: php dynamic summernote opencart-3


【解决方案1】:

我认为您最好的选择是使用产品控制器的索引操作:/catalog/controller/product/product.php

您需要获取当前的store_id

$store_id = $this->config->get('config_store_id');

然后编辑此行以调用另一个从外部数据库检索数据的方法:

$data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');

这里的最佳做法是在文件\catalog\model\catalog\product.php中为产品模型添加一个新方法

创建一个新方法:

public function getExternalDescription($store_id, $product_id) {
    // your logic here
}

然后像这样更改产品的控制器文件:

$data['description'] = $this->model_catalog_product->getExternalDescription($store_id, $product_id);

我还建议在 OCMOD 或 VQMOD 中执行上述所有操作,而不是更改核心文件。更多信息在这里:OCMOD Wiki

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多