steve07
Пользователь-
Постов
32 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Документация OpenCart
Информация
OpenCart Wiki
Форумы
Блоги
Дополнения
Магазин
Весь контент steve07
-
Добрый день!) не отображаются ни в какую доставки от модуля... все включено, настроено, в корзине товары на сумму больше одного рубля) куда копать, что посмотреть?
-
проблема решена, была пустая строка в начале файла контроллера multistore.php
-
проблема решилась сама по себе. Модуль стоит на двойке. Модификаторов вообще никаких нет. Не знаю что вообще было. Сейчас у меня есть новый вопрос: я сделал просмотр сайта только для авторизованных пользователей, сделал проверку: если не авторизован, то происходит редирект на страницу авторизации, в header.php: if (!$this->customer->isLogged() ) { if (!isset($this->request->get['route']) || $this->request->get['route'] != 'account/login') { $this->response->redirect($this->url->link('account/login', '', true)); } } при заходе на главную страницу, падает варнинг в вашем модуле и сайт не отображается: Warning: Cannot modify header information - headers already sent by (output started at public_html/catalog/controller/extension/module/multistore.php:1) in public_html/system/storage/modification/system/library/response.php on line 29 подскажите, пожалуйста, пути решения данной проблемы
-
php-fpm Настройка NGINX в режиме PHP-FPM для работы OpenCart
steve07 прокомментировал mpn2005 запись блога в OpenCart DIY - Бери и делай
дык это наоборот разрешение -
php-fpm Настройка NGINX в режиме PHP-FPM для работы OpenCart
steve07 прокомментировал mpn2005 запись блога в OpenCart DIY - Бери и делай
Добрый день! Настроил вроде все как надо, а запрет запуска файлов не срабатывает, store.ru/1.php открывается как и другие файлы: Ubuntu 22 и fastpanel стоит server { server_name store.ru; listen ххх.57.ххх.173:443 ssl http2 ; ssl_certificate "/var/www/httpd-cert/store.ru_2024-06-02-14-33_09.crt"; ssl_certificate_key "/var/www/httpd-cert/store.ru_2024-06-02-14-33_09.key"; add_header Strict-Transport-Security "max-age=31536000" always; charset utf-8; gzip on; gzip_proxied expired no-cache no-store private auth; gzip_types text/css text/xml application/javascript text/plain application/json image/svg+xml image/x-icon; gzip_comp_level 1; set $root_path /var/www/fastuser/data/www/store.ru; root $root_path; disable_symlinks if_not_owner from=$root_path; location / { index index.php index.html; try_files $uri $uri/ /index.php?$args; if (!-e $request_filename){ rewrite ^/(.+)$ /index.php?_route_=$1 last; } } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/store.ru.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; } location ~ ^/(index|admin/index|install/index)\.php { try_files /does_not_exists @php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ { try_files $uri $uri/ /index.php?$args; } location ~* \.(php|log|tpl|txt|twig|xml|ini)$ { deny all; } location ~ /\. { deny all; } location ~ ^/system/ { deny all; } location = /robots.txt { allow all; } location @fallback { fastcgi_pass unix:/var/run/store.ru.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } include "/etc/nginx/fastpanel2-sites/fastuser/store.ru.includes"; include /etc/nginx/fastpanel2-includes/*.conf; error_log /var/www/fastuser/data/logs/store.ru-frontend.error.log; access_log /var/www/fastuser/data/logs/store.ru-frontend.access.log; } подскажите, пожалуйста, что не так? -
да вот в том-то и дело, что я добавил этот код, а ошибка как была, так и остается
-
@d1medrol те ошибки ушли, а вот эта не решилась: Notice: Undefined variable: text_not_multistore in public_html/catalog/view/theme/default/template/extension/module/multistore/list.tpl on line 12
-
я здесь и скачивал, не вижу, чтобы они были обновлены
-
Notice: Trying to access array offset on value of type null in /home/g/partner/public_html/catalog/controller/extension/module/multistore.php on line 27 если нет остатков на складах или склады не добавлены в таблицу oc_product_to_multistore и вот такая: Notice: Undefined variable: text_not_multistore in /home/g/grant89687/partner_new/public_html/catalog/view/theme/default/template/extension/module/multistore/list.tpl on line 12 подскажите, пожалуйста, как можно поправить эту ошибку. Чистый Ocstore 2.3.0.2.4
-
Здравствуйте! Не вижу как вывести числовое количество вместо слов "Много"/"Мало", подскажите, пожалуйста
-
тут все ок Array ( [filter_category_id] => 61 [filter_filter] => [sort] => p.sort_order [order] => ASC [start] => 0 [limit] => 10000 ) в results соответственно попадают все товары из категории id=61. А как получить массив с отфильтрованным списком никак не пойму. Помогите, пожалуйста. функция экспорта в PDF
-
Передать price и total товара в Simple Opencart 2.3
steve07 опубликовал тема в Доработка Функционала
На странице товара происходит расчет цены товара в зависимости от количества выбранных дней. Формула на странице товара считает все как надо. Необходимо, чтобы в модуль simple передавалась эта цена и итог товара, ну и соответственно оформлялся заказ как надо. ocstore 2.3 -
Есть календарь на сайте для выбора промежутка дат (суток) для бронирования определенного товара (date range picker js). Необходимо сделать запрет выбора промежутка дат в одни сутки, т.е.: при заказе с ПТ на СБ или с СБ на ВС должен добавляться один день в календаре, т.е запретить бронировать на одни сутки в эти дни недели, а также вывести сообщение-предупреждение об этом событии. От вас жду стоимость такой доработки. Сроки 1-3 дня.
-
не, наоборот, чтобы и маска была для ручного ввода, а также с помощью календаря выбирали дату. Сейчас когда с календаря дату выбирают, она передается в инпут, но сразу меняется на маску (_ _ _ _-_ _-_ _)
-
Есть инпут, к которому привязан airDatapicker. При выборе даты в календаре маска заменяет выбранную дату. Как можно поправить эту проблему? <div class="form-group required"> <label class="col-sm-4 col-xs-12 control-label" for="input-date"><?php echo $entry_data; ?></label> <div class="col-sm-8 col-xs-12"> <input type="text" name="date" value="<?php echo $date; ?>" id="input-date" class="form-control datecalendar" /> <div class="text-danger" id="error_date"></div> </div> </div> <script type="text/javascript"> $(function(){ $(".datecalendar").datepicker( { dateFormat: 'yyyy-mm-dd' } ).mask('9999-99-99'); }); </script>
-
Добрый день! Стоит задача, не создавая категории с урлом "shop", чтобы при переходе в любую из категорий в адрес подставлялось "shop/": site.ru/shop/category1 site.ru/shop/category2/product и т.д. может есть уже готовые решения?
-
как получить отфильтрованный массив товаров? Делаю со страницы категории экспорт товаров в PDF формат, в pdf попадают все товары if ($category_info) { /*// OCFilter start if (isset($this->request->get['filter_ocfilter'])) { $filter_ocfilter = $this->request->get['filter_ocfilter']; } else { $filter_ocfilter = ''; } // OCFilter end*/ if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; } else { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); } require('system/library/mpdf/mpdf.php'); $data['heading_title'] = $category_info['name']; $data['text_refine'] = $this->language->get('text_refine'); $data['text_empty'] = $this->language->get('text_empty'); $data['text_quantity'] = $this->language->get('text_quantity'); $data['text_manufacturer'] = $this->language->get('text_manufacturer'); $data['text_model'] = $this->language->get('text_model'); $data['text_price'] = $this->language->get('text_price'); $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => 10000 ); /*// OCFilter start $filter_data['filter_ocfilter'] = $filter_ocfilter; // OCFilter end*/ // OCFilter start if ($this->registry->get('ocfilter') && $this->ocfilter->startup() && $this->ocfilter->api->useSubCategory() && $this->ocfilter->api->isSelected() && empty($filter_data['filter_sub_category'])) { $filter_data['filter_sub_category'] = true; } // OCFilter end $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); // Unit of measure → $this->load->model('extension/module/unit_of_measure'); $product_ids = array(); foreach ($results as $result) { $product_ids[] = $result['product_id']; } $units_result = $this->model_extension_module_unit_of_measure->getUnits($product_ids); // ← Unit of measure foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $result['price']; } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); if ($this->currency->has($this->config->get('config_currency2')) && ($this->config->get('config_currency2') != $this->session->data['currency'])) { $special .= ' (' . $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->config->get('config_currency2')) . ')'; } } else { $special = false; } $data['products'][] = array( 'unit_of_measure' => isset($units_result[$result['product_id']]) ? html_entity_decode($units_result[$result['product_id']], ENT_QUOTES, 'UTF-8') : '', 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'model' => $result['model'], 'collection' => $result['collection'], 'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']), 'price' => (int)$price . ' руб', 'special' => $special, 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } // $template = 'product/category'; //$this->load->library('mpdf/mpdf'); $headerHTML = ' <div style="float: left; width: 340px; text-align: left"> <a target="_blank" href="' . HTTPS_SERVER . '"><img style="max-width:100%;max-height:180px" src="/image/'.$this->config->get('config_logo').'" /></a> </div> <div style="float: right; width: 340px; text-align: right; color: #808180"> ' . nl2br($this->config->get('config_address')) . '<br/> ' . $this->config->get('config_telephone') . '<br/> ' . $this->config->get('config_email') . '<br/> <a style="color:blue; text-decoration:none;" target="_blank" href="' . HTTPS_SERVER . '">' . HTTPS_SERVER . '</a> </div> <div class="clear"></div> <hr> '; //print_r($this->config); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_price.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_price.tpl'; } else { $this->template = 'default/template/product/category_price.tpl'; } $today = date("d.m.Y"); $mpdf = new mPDF('utf-8', 'A4', 7, 'Helvetica', 20, 5, 35, 5); $mpdf->name = $category_info['name'] . '.pdf'; $mpdf->SetHTMLHeader($headerHTML); $mpdf->WriteHTML($this->load->view('product/category_price.tpl', $data)); $mpdf->Output('Прайс_' . $today . '.pdf', 'D'); }
-
Здравствуйте! Накидал немного функционал в "локализация" -> "Адрес магазина" выбирается в каждом магазине федеральный округ. Все используемые округа я вывел программно в виде табов. А как раскидать сами магазины по этим табам? возможно как-то привязаться по id федерального округа? <?php if ($all_FO) { ?> <ul class="nav nav-tabs"> <?php foreach($all_FO as $fo) { ?> <li id="fo_<?php echo $fo['fo_id']; ?>"> <a href="#fo-<?php echo $fo['fo_id']; ?>" data-toggle="tab"><?php echo $fo['fo_name']; ?></a></li> <?php } ?> </ul> <?php } ?> <?php if ($locations) { ?> <div class="tab-content"> <?php foreach ($locations as $location) { ?> <div id="fo-<?php echo $location['federal_okrug_id']; ?>" class="location_list tab-pane fade active in"> <div class="location_item"> <div class="location_name"> <div data-objectid="<?php echo $location['location_id']; ?>" class="location_map"><span>Показать на карте <svg class="icon_svg"><use xlink:href="image/catalog/sprite.svg#treugol"></use></svg></span><svg class="icon_svg"><use xlink:href="image/catalog/sprite.svg#map_icon"></use></svg></div> <a href="<?php echo $location['href']; ?>"><?php echo $location['name']; ?></a> </div> <div class="location_address"><?php echo $location['address']; ?></div> </div> </div> <?php } ?> </div> <?php } ?>
-
if(isset($parts[1])) { if(isset($item['russian_tracking_no']) && isset($query_order->row['payment_country_id']) && $query_order->row['payment_country_id'] == 176 && empty($query_order_nrsdek->row['nr_sdek']) && $checks[$item['russian_tracking_no']] != '1') { $this->setOrderStatus($parts[0],$item['russian_tracking_no']); $this->log->write('СТАТУС ОБНОВЛЕН! Письмо (заказ '. $parts[0] . ') отправлено на ' . $email); $checks[$item['russian_tracking_no']] = '1'; } else { $this->log->write('Письмо (заказ '. $parts[0] . ') НЕ отправлено'); } } Этот код у меня выполняется в цикле, получаю из учетной системы по API данные (трек номер) на каждую позицию (лот) в заказе . Как правило, трек номер один и тот же на все товары в заказе, но бывает что и разные. Тем самым мне надо сделать проверку, чтобы при обновлении трек номера у одной позиции в заказе письмо отправлялось, а при обновлении у следующих позиций письма уже не отправлялись. Так вот, я сделал проверку, $checks[$item['russian_tracking_no']] != '1', и в конце цикла я присваиваю этой переменной значение 1. Но при первом проходе в логи валится ошибка: как мне правильно сделать проверку или переписать условие?