Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Padlik

Пользователи
  
  • Posts

    105
  • Joined

  • Last visited

Recent Profile Visitors

2,648 profile views

Padlik's Achievements

Collaborator

Collaborator (7/14)

  • Dedicated Rare
  • Reacting Well Rare
  • First Post
  • Collaborator
  • Conversation Starter

Recent Badges

1

Reputation

  1. День добрый. Ищу исполнителя, который сможет сделать работу из сабжа. Сейчас в ЛК из коробки файлы для скачивания на отдельной странице, список заказов на отдельной - что не есть удобно. Версия движка Opencart 2.3.
  2. Добрый день! Прошу подсказку. Задача в /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 } ?> На выходе имею ссылки на скачивание, однако ссылки зациклены и в заказах выводятся те ссылки, которые, собственно, не имеют к заказам отношения. Готов получить решение на платной основе. Спасибо.
  3. Благодарю Вас за ответ. У меня задача, на самом деле, достаточно примитивна. Мне нужно лишь, чтобы товар при выгрузке в мой склад приходил не с исходным названием с сайта, а с добавлением к названию выбранных в заказе опций. Если кто-то сможет помочь на платной основе - готов оплатить работу.
  4. День добрый! Использую исключительно для выгрузки заказов в учетную систему. Подскажите, у меня товары в заказе выгружаются без опций в принципе. Можно как-то заставить выгружаться опции, хотя бы добавлением названия и значения опции к названию самого товара? <Товары> <Товар> <Ид/> <Наименование>Коробка телескоп Luxor</Наименование> <ЦенаЗаЕдиницу>2500.0000</ЦенаЗаЕдиницу> <Количество>1</Количество> <Сумма>2500.0000</Сумма> <Скидки> <Скидка> <УчтеноВСумме>false</УчтеноВСумме> <Сумма>0</Сумма> </Скидка> </Скидки> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> <Резерв>1</Резерв> <БазоваяЕдиница> <Код>796</Код> <НаименованиеПолное>Штука</НаименованиеПолное> </БазоваяЕдиница> </Товар> </Товары>
  5. У меня одного данный модуль на страницах 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 выводятся верные + работает ЧПУ. Без правок модификаторов ссылки не работали, ЧПУ также отсутствовал.
  6. Собственно, сабж. Нужно вывести товары, для которых назначен купон в модуле и странице акций.
  7. В общем да, не кашерно в шаблоне считать. Добавил в контроллер вычисление без форматирования цены и вернул разделитель тысячных пробелом: $skidka = round(100-((float)$product_info['special']/((float)$product_info['price']/100)));
  8. Ребят, разобрался. Проблема была следующая, кто-то ковырял языковой файл и сделал разделитель тысяч пробелом, отсюда кривые расчеты))) $_['thousand_point'] = ' '; Теперь у меня новый вопрос. Пофиксил я кривые расчеты, а разделитель тысячных остался нужен. Погуглил, везде основное решение - это как раз сделать пробел разделителем, однако, как показала практика - решение так себе. Можно каким-то образом расчеты производить, игнонируя этот пробел?
  9. Не из админки, вывод в шаблон товара. Попробовал тупо <?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
  10. system/library/cart/currency.php - подсунул оригинал из opencart 2.3 - результата нет. Проверил на наличие модификаторов, затрагивающих этот файл - моды отсуствуют.
  11. Деление $product['special'] / $product['price'] = 22795/23500 - в выводе 0.95652173913043, по факту должно быть 0.97. (float)$product['special']/(float)$product['price'] - аналогичный результат. Подскажите, пожалуйста, формат цен задается только в контроллере товара или где-то еще?
  12. Прошу помочь. Не могу разобраться откуда растут ноги. Делаю вывод скидки в процентах: <?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. Цены с налогом выключены. При этом болтается налоговая ставка - которую не могу удалить, но изменение ее значения никак не влияет на процент. Всю голову сломал, прошу подсказку, где искать косяк.
  13. Разобрался))) Всем спасибо, тему можно закрыть. Чтобы работал нормально релоуд, надо указывать текущую ссылку на страницу товара. В моем случае это: $('#reloadprod').load('/index.php?route=extension/module/prodinpop&product_id=' + product_id +' #reloadprod >*');
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.