держите https://https://opencartforum.com/files//opencart-moduli-shablony/moduli/novosti-stati/newsblog-dopolnenie-perekrestnyie-stati-v-kartochke-tovara
код:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<name>NewsBlog перекрестные статьи в карточке товара</name>
<code>newsblogDop</code>
<version>20171002 for opencart 2.3.x</version>
<author>netruxa</author>
<link>http://nedorogoi-internet-magazin.ru/opencart/</link>
<file path="catalog/language/*/product/product.php">
<operation>
<search><![CDATA[$_['text_related']]]></search>
<add position="before"><![CDATA[
$_['text_related_article'] = 'Обзоры, статьи про товар';
]]></add>
</operation>
</file>
<file path="catalog/model/newsblog/article.php">
<operation>
<search><![CDATA[public function getArticleRelated($article_id) {]]></search>
<add position="before"><![CDATA[
public function getArticleRelatedOfProduct($product_id) {
$article_data = array();
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "newsblog_article_related pr
LEFT JOIN " . DB_PREFIX . "newsblog_article p ON (pr.article_id = p.article_id)
LEFT JOIN " . DB_PREFIX . "newsblog_article_to_store p2s ON (p.article_id = p2s.article_id)
WHERE pr.related_id = '" . (int)$product_id . "' AND pr.type=2 AND p.status = '1' AND p.date_available <= NOW()
AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
foreach ($query->rows as $result) {
$article_data[$result['article_id']] = $this->getArticle($result['article_id']);
}
return $article_data;
}
]]></add>
</operation>
</file>
<file path="catalog/controller/product/product.php">
<operation>
<search><![CDATA[$this->load->model('catalog/review');]]></search>
<add position="before"><![CDATA[
$this->load->model('newsblog/article');
$date_format = $this->language->get('date_format_short');
$data['text_related_article'] = $this->language->get('text_related_article');
]]></add>
</operation>
<operation>
<search><![CDATA[$data['products'] = array();]]></search>
<add position="before"><![CDATA[
$data['articles'] = array();
$results = $this->model_newsblog_article->getArticleRelatedOfProduct($this->request->get['product_id']);
foreach ($results as $result) {
if ($result['image']) {
$original = HTTP_SERVER.'image/'.$result['image'];
$thumb = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_related_width'), $this->config->get($this->config->get('config_theme') . '_image_related_height'));
} else {
$original = false;
$thumb = false;
}
$mainCategoryId = $this->model_newsblog_article->getArticleMainCategoryId($result['article_id']);
$data['articles'][] = array(
'article_id' => $result['article_id'],
'original' => $original,
'thumb' => $thumb,
'name' => $result['name'],
'preview' => html_entity_decode($result['preview'], ENT_QUOTES, 'UTF-8'),
'attributes' => $result['attributes'],
'href' => $this->url->link('newsblog/article', 'newsblog_path=' . $mainCategoryId . '&newsblog_article_id=' . $result['article_id']),
'date' => ($date_format ? date($date_format, strtotime($result['date_available'])) : false),
'date_modified' => ($date_format ? date($date_format, strtotime($result['date_modified'])) : false),
'viewed' => $result['viewed']
);
}
]]></add>
</operation>
</file>
<file path="catalog/view/theme/default/template/product/product.tpl">
<operation>
<search><![CDATA[<?php if ($products) { ?>]]></search>
<add position="before"><![CDATA[
<?php if ($articles) { ?>
<h3><?php echo $text_related_article; ?></h3>
<div class="row">
<?php foreach ($articles as $article) { ?>
<div class="product-layout product-list col-xs-12">
<div class="product-thumb">
<div class="image"><a href="<?php echo $article['href']; ?>"><img src="<?php echo $article['thumb']; ?>" alt="<?php echo $article['name']; ?>" title="<?php echo $article['name']; ?>" class="img-responsive" /></a></div>
<div class="caption">
<h4><a href="<?php echo $article['href']; ?>"><?php echo $article['name']; ?></a></h4>
<p><?php echo $article['preview']; ?></p>
<?php if ($article['attributes']) { ?>
<h5><?php echo $text_attributes;?></h5>
<?php foreach ($article['attributes'] as $attribute_group) { ?>
<?php foreach ($attribute_group['attribute'] as $attribute_item) { ?>
<b><?php echo $attribute_item['name'];?>:</b> <?php echo $attribute_item['text'];?><br />
<?php } ?>
<?php } ?>
<?php } ?>
</div>
</div>
</div>
<?php } ?>
</div>
<?php } ?>
]]></add>
</operation>
</file>
</modification>