我正在尝试在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>
答案 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>