bezzubtsev
Гуру форума
- Регистрация
- 14 Май 2015
- Сообщения
- 277
- Реакции
- 92
- Автор темы
- #1
Доброй ночи!
В разделе account/download, после того, как заказ был оплачен, становятся доступными для скачивания файлы. При этом, у каждого файла есть маска + при нажатии на скачивание, счётчик скачиваний уменьшается.
Подскажите, как сделать, чтобы при нажатии на скачивание (ниже исходный код) :
было не скачивание файла, а показ (т.е. echo) маски этого файла. При этом, чтобы счётчик также уменьшался (покупатель же увидел маску).
Понимаю что за функцию отвечает этот код контроллера:
и этот за выплевывание файла (собственно там вызывается маска) :
Заранее спасибо за любую помощь!
В разделе account/download, после того, как заказ был оплачен, становятся доступными для скачивания файлы. При этом, у каждого файла есть маска + при нажатии на скачивание, счётчик скачиваний уменьшается.
Подскажите, как сделать, чтобы при нажатии на скачивание (ниже исходный код) :
Код:
<?php if ($download['remaining'] > 0) { ?>
<div class="list-content">
<a href="<?php echo $download['href']; ?>"><img src="catalog/view/theme/default/image/download.png" alt="<?php echo $button_download; ?>" title="<?php echo $button_download; ?>" /></a>
</div>
<?php } ?>
Понимаю что за функцию отвечает этот код контроллера:
Код:
$this->data['downloads'][] = array(
'order_id' => $result['order_id'],
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
'name' => $result['name'],
'remaining' => $result['remaining'],
'size' => round(substr($size, 0, strpos($size, '.') + 4), 2) . $suffix[$i],
'href' => $this->url->link('account/download/download', 'order_download_id=' . $result['order_download_id'], 'SSL')
);
и этот за выплевывание файла (собственно там вызывается маска) :
Код:
$download_info = $this->model_account_download->getDownload($order_download_id);
if ($download_info) {
$file = DIR_DOWNLOAD . $download_info['filename'];
$mask = basename($download_info['mask']);
if (!headers_sent()) {
if (file_exists($file)) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . ($mask ? $mask : basename($file)) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
if (ob_get_level()) ob_end_clean();
readfile($file, 'rb');
$this->model_account_download->updateRemaining($this->request->get['order_download_id']);
exit;
} else {
exit('Error: Could not find file ' . $file . '!');
}
} else {
exit('Error: Headers already sent out!');
}
} else {
$this->redirect($this->url->link('account/download', '', 'SSL'));
}
Заранее спасибо за любую помощь!