Padlik
Users-
Posts
105 -
Joined
-
Last visited
Padlik's Achievements
-
Добрый день! Прошу подсказку. Задача в /catalog/view/theme/mstore/template/account/order_list.tpl добавить вывод ссылки (или ссылок, купленных клиентом). Сейчас неудобно то, что файлы для скачивания и заказы в личном кабинете разведены по разным страницам. А я хочу сделать рядом с кнопкой просмотра заказа кнопку скачивания купленного файла. Что делаю, в контроллер /catalog/controller/account/order.php добавляю: $this->load->model('account/download'); $data['downloads'] = array(); $downloads = $this->model_account_download->getDownloads($result['order_id']); foreach ($downloads as $download) { if (file_exists(DIR_DOWNLOAD . $download['filename'])) { $size = filesize(DIR_DOWNLOAD . $download['filename']); $i = 0; $suffix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB' ); while (($size / 1024) > 1) { $size = $size / 1024; $i++; } $data['downloads'][] = array( 'order_id' => $download['order_id'], 'date_added' => date($this->language->get('date_format_short'), strtotime($download['date_added'])), 'time_added' => date($this->language->get('time_format'), strtotime($download['date_added'])), 'name' => $download['name'], 'size' => round(substr($size, 0, strpos($size, '.') + 4), 2) . $suffix[$i], 'href' => $this->url->link('account/download/download', 'download_id=' . $download['download_id'], true) ); } } Ниже функцию download public function download() { if (!$this->customer->isLogged()) { $this->session->data['redirect'] = $this->url->link('account/download', '', true); $this->response->redirect($this->url->link('account/login', '', true)); } $this->load->model('account/download'); if (isset($this->request->get['download_id'])) { $download_id = $this->request->get['download_id']; } else { $download_id = 0; } $this->load->model('account/order'); if (isset($this->request->get['order_id'])) { $order_id = $this->request->get['order_id']; } else { $order_id = 0; } $download_info = $this->model_account_download->getDownload($order_id, $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'); exit(); } else { exit('Error: Could not find file ' . $file . '!'); } } else { exit('Error: Headers already sent out!'); } } else { $this->response->redirect($this->url->link('account/download', '', true)); } } Вывод в шабе <?php if($downloads){ ?> <?php foreach($downloads as $download){ ?> <a href="<?php echo $download['href']; ?>" title=""><?php echo $download['name']; ?><?php echo " (". $download['size'] .")";?></a> <?php } ?> <?php } ?> На выходе имею ссылки на скачивание, однако ссылки зациклены и в заказах выводятся те ссылки, которые, собственно, не имеют к заказам отношения. Готов получить решение на платной основе. Спасибо.
-
Обмен данными OpenCart 2.x и 1С по стандарту CommerceML
Padlik replied to Kirillove's topic in Модули обмена данными
Благодарю Вас за ответ. У меня задача, на самом деле, достаточно примитивна. Мне нужно лишь, чтобы товар при выгрузке в мой склад приходил не с исходным названием с сайта, а с добавлением к названию выбранных в заказе опций. Если кто-то сможет помочь на платной основе - готов оплатить работу.- 159 replies
-
- обмен данными
- exchange1c
-
(і ще 1)
Tagged with:
-
Обмен данными OpenCart 2.x и 1С по стандарту CommerceML
Padlik replied to Kirillove's topic in Модули обмена данными
День добрый! Использую исключительно для выгрузки заказов в учетную систему. Подскажите, у меня товары в заказе выгружаются без опций в принципе. Можно как-то заставить выгружаться опции, хотя бы добавлением названия и значения опции к названию самого товара? <Товары> <Товар> <Ид/> <Наименование>Коробка телескоп Luxor</Наименование> <ЦенаЗаЕдиницу>2500.0000</ЦенаЗаЕдиницу> <Количество>1</Количество> <Сумма>2500.0000</Сумма> <Скидки> <Скидка> <УчтеноВСумме>false</УчтеноВСумме> <Сумма>0</Сумма> </Скидка> </Скидки> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> <Резерв>1</Резерв> <БазоваяЕдиница> <Код>796</Код> <НаименованиеПолное>Штука</НаименованиеПолное> </БазоваяЕдиница> </Товар> </Товары>- 159 replies
-
- обмен данными
- exchange1c
-
(і ще 1)
Tagged with:
-
[Поддержка] Страница 404 для OpenCart
Padlik replied to SergeTkach's topic in SEO, карта сайта, оптимизация
У меня одного данный модуль на страницах 404 выводит кривые ссылки на категории в версии Opencart 2.3? Я изменил модификатор везде, где идет получение ссылок на категории: Это 'href' => $this->url->link('product/category', 'path=_' . $result['category_id'] . $url) Меняем на это 'href' => $this->url->link('product/category', 'path=' . $result['category_id']) После данных изменений ссылки на категории на страницах 404 выводятся верные + работает ЧПУ. Без правок модификаторов ссылки не работали, ЧПУ также отсутствовал.- 46 replies
-
- страница 404
- seo оптимизация
-
(і ще 4)
Tagged with:
-
В общем да, не кашерно в шаблоне считать. Добавил в контроллер вычисление без форматирования цены и вернул разделитель тысячных пробелом: $skidka = round(100-((float)$product_info['special']/((float)$product_info['price']/100)));
-
Ребят, разобрался. Проблема была следующая, кто-то ковырял языковой файл и сделал разделитель тысяч пробелом, отсюда кривые расчеты))) $_['thousand_point'] = ' '; Теперь у меня новый вопрос. Пофиксил я кривые расчеты, а разделитель тысячных остался нужен. Погуглил, везде основное решение - это как раз сделать пробел разделителем, однако, как показала практика - решение так себе. Можно каким-то образом расчеты производить, игнонируя этот пробел?
-
Не из админки, вывод в шаблон товара. Попробовал тупо <?php echo 1/2; ?> - в шабе 0.5 - как положено. Пробую так <?php echo $product['price']/2; ?> (price - 23500) - результатом является 11.5))))) <?php echo $product['special']/2; ?> (special - 22795) - результатом является 11))))) Хоть убейте, не пойму где ломается цена при форматировании. В моделе товара чисто, currency.php оригинальный, без изменений. Смущает контроллер: if ((float)$product_info['special']) { $data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $data['special'] = false; } Пробовал убрать форматирование $data['special']= $product_info['special'] - получается вообще полная херня. Работаю на php 5.6.4 в режиме CGI
-
system/library/cart/currency.php - подсунул оригинал из opencart 2.3 - результата нет. Проверил на наличие модификаторов, затрагивающих этот файл - моды отсуствуют.
-
Деление $product['special'] / $product['price'] = 22795/23500 - в выводе 0.95652173913043, по факту должно быть 0.97. (float)$product['special']/(float)$product['price'] - аналогичный результат. Подскажите, пожалуйста, формат цен задается только в контроллере товара или где-то еще?
-
Прошу помочь. Не могу разобраться откуда растут ноги. Делаю вывод скидки в процентах: <?php echo round(100-($product['special']/$product['price'])*100); ?> или <?php echo round(100-($product['special']/($product['price']/100))); ?> Выводится полная херня. К примеру, новая цена 22795, старая 23500 - т.е. разница ровно 3%. Но в выводе -4%. А если фактический размер скидки меньше 3% - то в выводе 0%. При этом размер скидки в рублевом эквиваленте выводится норм. Валюта по-умолчанию рубль, значение 1.00000, кол-во нулей после запятой 0. Цены с налогом выключены. При этом болтается налоговая ставка - которую не могу удалить, но изменение ее значения никак не влияет на процент. Всю голову сломал, прошу подсказку, где искать косяк.
-
Нужна помощь с выводом купона на страницу товара
Padlik replied to Padlik's topic in Допомога програмістам та розробникам
Да, сделал -
reload определенного div'a с в fancybox modal
Padlik replied to Padlik's topic in Допомога програмістам та розробникам
Разобрался))) Всем спасибо, тему можно закрыть. Чтобы работал нормально релоуд, надо указывать текущую ссылку на страницу товара. В моем случае это: $('#reloadprod').load('/index.php?route=extension/module/prodinpop&product_id=' + product_id +' #reloadprod >*');