打开购物车1.5.6选择描述规则

时间:2016-01-04 12:10:46

标签: php opencart

我正在尝试在opencart源代码(1.5.6版本)中进行一次更改,但遗憾的是没有成功。

我们在网站上有5种语言和描述。

我想在网站上显示所有语言版本的产品的英文说明(在页面上:?route = product / product& product_id = X)

所有其他内容都将使用所选语言,但只有描述需要使用英语(无论选择何种语言)。

我正在寻找解决方案,对我来说唯一合理的是代码中的这种变化需要在catalog / controller / product目录下的product.php文件中进行。

但是有人可以给我建议在哪里更改打开购物车选择语言ID的代码行?在数据库中,english是language_id = 1

也许我可以做到这一点

在product.tpl上删除此行

<div id="tab-description" class="tab-content"><?php echo $description; ?></div>

并提出类似的内容,但在这种情况下如何选择描述

<div id="tab-description" class="tab-content"><?php SELECT DESCRIPTION FROM DATABASE WHERE LANGUAGE_ID =1 ?></div>

1 个答案:

答案 0 :(得分:0)

主要需要修改模型,控制器和视图文件:

从此处打开您的产品型号文件:catalog/model/catalog/product.php

第64行public function getProducts($data = array()) {

之前添加以下代码
public function getProductEngDesc($product_id) {
      $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

      if ($query->num_rows) {
            return array(
                'description' => $query->row['description'],
            );
        } else {
            return false;
        }
  }

从此处打开产品控制器文件:catalog/controller/product/product.php

$product_info = $this->model_catalog_product->getProduct($product_id);

之后添加以下行
$product_eng_desc = $this->model_catalog_product->getProductEngDesc($product_id);

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

之后添加以下行
$this->data['eng_description'] = html_entity_decode($product_eng_desc['description'], ENT_QUOTES, 'UTF-8');

现在打开您的Product模板文件并替换下面的行

<div id="tab-description" class="tab-content"><?php echo $description; ?></div>

<div id="tab-description" class="tab-content"><?php echo $eng_description; ?></div>