Подскажите, пожалуйста, возникла задача прикрутить загрузки ("Файлы для скачивания") к категориям вашего модуля.
В админке я все сделал - в таблицу БД загрузки добавляются (создал таблицу "oc_blog_to_download"). А с витриной возникли проблемы - файлы для скачивания почему-то в соответствующей категории не выводятся. Ошибок в логах нет. Помогите, пожалуйста, разобраться.
В catalog/controller/record/blog.php я добавил в условие if ($blog_info) { следующий код:
$this->data['downloads'] = array();
$results = $this->model_record_blog->getDownloads($this->request->get['blog_id']);
foreach ($results as $result) {
$size = false;
$file_exists = file_exists(DIR_DOWNLOAD . $result['filename']);
$http = preg_match('/^http/',$result['filename']);
if ($file_exists OR $http) {
if ($file_exists) {
$size = filesize(DIR_DOWNLOAD . $result['filename']);
$i = 0;
$suffix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB' );
while (($size / 1024) > 1) {
$size = $size / 1024;
$i++;
}
}
$this->data['downloads'][] = array(
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
'name' => $result['name'],
'size' => ($size)?round(substr($size, 0, strpos($size, '.') + 4), 2) . $suffix[$i]:false,
'href' => ($http)?$result['filename']:$this->url->link('record/blog/download', 'blog_id='. $this->request->get['blog_id']. '&download_id=' . $result['download_id']),
'icon' => ($http)?'fa fa-external-link-square text-primary':'fa fa-download text-success'
);
}
}
в catalog/model/record/ следующий код:
public function getDownloads($blog_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "blog_to_download bd LEFT JOIN " . DB_PREFIX . "download d ON(bd.download_id=d.download_id) LEFT JOIN " . DB_PREFIX . "download_description dd ON(bd.download_id=dd.download_id) WHERE blog_id = '" . (int)$blog_id . "' AND dd.language_id = '" . (int)$this->config->get('config_language_id')."'");
return $query->rows;
}
public function getDownload($blog_id, $download_id) {
$download="";
if($download_id!=0)$download=" AND d.download_id=".(int)$download_id;
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "blog_to_download bd LEFT JOIN " . DB_PREFIX . "download d ON(bd.download_id=d.download_id) LEFT JOIN " . DB_PREFIX . "download_description dd ON(bd.download_id=dd.download_id) WHERE blog_id = '" . (int)$blog_id . "' ".$download." AND dd.language_id = '" . (int)$this->config->get('config_language_id')."'");
return $query->row;
}
а в шаблоне catalog/view/theme/default/template/agootemplates/blog/blog.tpl вывод сделал так:
<h1 class="blog-heading_title-n"><?php echo $heading_title; ?></h1>
<?php if ($downloads) { ?>
<div class="wrap_download flex">
<?php foreach($downloads as $download){ ?>
<a href="<?php echo $download['href']; ?>" class="flex" title="<?php echo $download['name']; ?>" target="_blank">
<img src="image/catalog/download.png" alt="">
<div>
<span class="title"><?php echo $download['name']; ?></span>
<span class="size"><?php echo ($download['size'])?" (". $download['size'] .")":'';?></span>
</div>
</a>
<?php } ?>
</div>
<?php } ?>