-
Публикации
2484 -
Зарегистрирован
-
Посещение
-
Days Won
133
Сообщения, опубликованные пользователем BuslikDrev
-
-
if ($route == 'product/product') { $seo_url = (!empty($this->cache_data['queries']['product/product']) ? $this->cache_data['queries']['product/product'] . '/' : false) . $seo_url; } if ($route == 'product/category') { $seo_url = (!empty($this->cache_data['queries']['product/category']) ? $this->cache_data['queries']['product/category'] . '/' : false) . $seo_url; }
Куда именно вставлять ищите в seo_pro.php
и по роуту в сео менеджере прописать для роута keyword
-
system\library\cart\cart.php
Этот код заменяет дефолт цену для каждого товара:
$product_discount_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND quantity <= '" . (int)$discount_quantity . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity DESC, priority ASC, price ASC LIMIT 1"); if ($product_discount_query->num_rows) { $price = $product_discount_query->row['price']; } // Product Specials $product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1"); if ($product_special_query->num_rows) { $price = $product_special_query->row['price']; }
Поэтому после $product_data[] = array( установите 'price_default' =>($price > $product_query->row['price'] ? $product_query->row['price'] : 0),
Дальше в контроллере корзины и в шаблоне перечёркнутую цену $price_default
-
В 18.02.2022 at 16:43, klaus сказал:
В этой сборке оказались изменены системные файлы framework.php, session.php, action.php и т.д. (например в framework.php вместо $log->write было $this->log->write)
Да. Это исправлено. https://github.com/BuslikDrev/OpenCart.CMS-2.3.0.2.6/commit/92a0203e32db26aee98c9433e225dfe383c18a2c
В 18.02.2022 at 16:43, klaus сказал:Я сделал на этой сборке 2 сайта один из которых при переносе на хостинг заглючил и я про это писал (см. выше) и там решил проблему заменой почти всех системных файлов и ещё контролеры вроде какие то менял или модели, уже не помню (часть файлов брал из сборки 2.3.0.2.3, а часть из 2.3.0.2.6, которую качал по той-же ссылке но 19 января 2022, и файлы тут уже были другие ).
Так бездумно лучше не делать, полностью устанавливайте 2.3.0.2.6. Просто, если обнаружили проблему в версии 2.3.0.2.6, то приходите сюда описываете, а если разбираетесь в коде, то предлагаете решение на github, я смотрю и решаю.
7 часов назад, klaus сказал:Не могу скачать из за вот такой ошибки (возникает при попытки скачать архивом). И в исключения сайт тоже не могу добавить
Подскажите как быть?Другой браузер, например, chrome 98 или попробовать нажать дополнительно и возможно там есть "всё равно скачать". А о проблеме донести до создателей github https://support.github.com/
-
4 минуты назад, Denis53 сказал:
Здравствуйте. Не подскажите где прочитать про это?
Через сео менеджер в сборке.
-
В 15.02.2022 at 16:44, Pelmen сказал:
1. Какие настройки нужно сделать или он будет работать из коробки?
2. Как сочетается с модулями оплаты и доставки? Симпл, СДЭК, ОЗОН
3. Нужно ли адаптировать, если у шаблона revolution своя минификация js и кэширование?
4. Основная цель: методы REST API не должны кэшироваться. Они должны быть в исключении.
5. Поможете ли с первоначальной настройкой?
1 и 4. для замены турбокэша, просто включить кэширование и перенести роуты исключения из модуля турбокэша, или указать нужные роуты, которые нужно кэшировать.
Для кэширования нужного указывается роут или другой параметр, или соответствующий им keyword. Например, если это страница оформления заказа, то роут: "checkout/cart" или keyword: "cart", а если это все категории, то "category_id".
2. Нужны подробности вопроса, сочетание чего вас интересует? Если совместной работы, то у вас есть настройки исключения работы кэша по роуту, но скорее вы выберите кэширование нужных роутов.
3. Ненужно, можете минификацию css, js не включать, если устраивает от шаблона.
5. Сам я ничего делать не буду, а на все вопросы ответ дам.
-
- Это популярное сообщение.
- Это популярное сообщение.
Нет. Только эта версия адаптирована:
Скрытый текст<!-- ↓ АДАПТАЦИЯ СБОРКИ ПОД PHP7.0+ ↓ --> <file path="admin/controller/sale/order.php"> <operation error="skip"> <search> <![CDATA[$product_info['weight'] + $option_weight]]> </search> <add position="replace"> <![CDATA[$product_info['weight'] + (float)$option_weight]]> </add> </operation> </file> <file path="admin/model/extension/openbay/openbay.php"> <operation error="skip"> <search> <![CDATA[if (!function_exists('mcrypt_encrypt')) {]]> </search> <add position="replace"> <![CDATA[if (!function_exists('mcrypt_encrypt') && !function_exists('openssl_encrypt')) { $error[] = $this->language->get('error_openssl');]]> </add> </operation> </file> <file path="system/library/encryption.php"> <operation error="skip"> <search> <![CDATA[$this->key = hash('sha256', $key, true);]]> </search> <add position="replace"> <![CDATA[$this->key = $key;]]> </add> </operation> <operation error="skip"> <search> <![CDATA[return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), $value, MCRYPT_MODE_ECB)), '+/=', '-_,');]]> </search> <add position="replace"> <![CDATA[if (version_compare(phpversion(), '7.1.0', '>') == true || !function_exists('mcrypt_encrypt')) { // для улучшения сюда: https://www.php.net/manual/ru/function.openssl-encrypt.php return strtr(base64_encode(openssl_encrypt($value, 'aes-128-cbc', hash('sha256', hex2bin($this->key), true), 0, hex2bin(substr(hash_hmac('sha256', $this->key, hash('sha256', $this->key, true)), 0, 32)))), '+/=', '-_,'); } else { return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, hash('sha256', hash('sha256', $this->key, true), true), $value, MCRYPT_MODE_ECB)), '+/=', '-_,'); }]]> </add> </operation> <operation error="skip"> <search> <![CDATA[return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), base64_decode(strtr($value, '-_,', '+/=')), MCRYPT_MODE_ECB));]]> </search> <add position="replace"> <![CDATA[if (version_compare(phpversion(), '7.1.0', '>') == true || !function_exists('mcrypt_encrypt')) { // для улучшения сюда: https://www.php.net/manual/ru/function.openssl-encrypt.php return trim(openssl_decrypt(base64_decode(strtr($value, '-_,', '+/=')), 'aes-128-cbc', hash('sha256', hex2bin($this->key), true), 0, hex2bin(substr(hash_hmac('sha256', $this->key, hash('sha256', $this->key, true)), 0, 32)))); } else { return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, hash('sha256', hash('sha256', $this->key, true), true), base64_decode(strtr($value, '-_,', '+/=')), MCRYPT_MODE_ECB)); }]]> </add> </operation> </file> <!-- ↑ АДАПТАЦИЯ СБОРКИ ПОД PHP7.0+ ↑ -->
-
В 18.01.2022 at 15:54, ramzes63 сказал:
Ну как реализовали поделитесь, удалось вывести в блог, что надо?
В контроллере после if ($article_info) {
$data['date_added'] = date($this->language->get('date_format_short'), strtotime($article_info['date_added'])); $data['viewed'] = $article_info['viewed'];
В шаблоне
<?php echo $date_added; ?> <?php echo $viewed; ?>
-
В 20.01.2022 at 16:30, VadimMest сказал:
При открытии. Когда открывается карточка. Все модули из OpenCart.Pro + Шаблон Revolution.
Шаблон шалит?
Это гадание, вам нужен тот, кто посмотрит и скажет точно из-за чего.
-
Решено (неправильный путь к папке сессии при обновлении):
-
У автора спросите.
-
У вас походу это делает сторонний модуль или обрезание происходит при сохранении.
-
Проверьте правильность пути сессионных файлов в конфигах.
И да - это эффект копипаста:
https://github.com/BuslikDrev/OpenCart.CMS-2.3.0.2.6/commit/8ff17307e60b111ab5f3c5249271e0290fca264b
Для изменения пути при обновлении добавил сюда:
https://github.com/BuslikDrev/OpenCart.CMS-2.3.0.2.6/commit/4b924376290b306b64da690c783ac74966db2c8e
И тема поддержки здесь:
Также вы не описали подробнее, как делали перевод на новую версию.
Также нужно очистить папку модификаторов.
-
10 часов назад, ramzes63 сказал:
Если один из разработчиков вносил правки в коды в файлах и делал правки.
То как лучше обновится наименее безболезненно? Путем сравнения файлов, частями?
Да - сравнивать код сначала с оригиналом текущей версии, потом отобранные файлы после обновления. И все правки переносить в модификатор.
-
- Это популярное сообщение.
- Это популярное сообщение.
Просьба желающих протестировать OPENCART.CMS v2.3.0.2.6
Если есть бесстрашные или умные - могут обновиться с OPENCART.CMS v2.3.0.2.5- (не забываем запускать install для обновления БД новыми таблицами и чистить папку system/storage/modification)
Кто не вносит правки в оригинальный код сборки может и проект делать на этой версии, и в любой момент обновлять движок из github.
В этой теме пишите чётко о найденной ошибки в коде сборки, то есть о том, что какой-то шаблон или модуль не установился - писать ненужно.
Меня также интересует вопрос о том, стоит-ли вырезать все модули платёжных систем и доставок, и какие модули вырезать ещё?
Список правок:
Скрытый текстИх тысячи, но могу выделить серьёзные изменения по отношению к оригиналу OpenCart 2.3.0.2:
- добавлена поддержка PHP 7-8;
- добавлено сохранение страницы менеджера изображений;
- сео менеджер улучшен;
- яндекс маркет улучшен;
- был значительно изменён файл сессии
system\library\session.php
catalog\controller\startup\startup.php
catalog\controller\startup\setting.php
Это позволило сделать возможным управление сессиями из админ панели (выбирать, где хранить, сколько и как);
- был приведён в единый стиль шаблон "default";
- обновлены иконки Font Awesome c версии 4.4 до 4.7 и добавлены также версии 5.15.1+ (путь был изменён и добавлен фикс в модификатор, если в шаблоне будет старый путь)
<operation error="skip"> <search> <![CDATA[catalog/view/javascript/font-awesome/css/font-awesome.min.css]]> </search> <add position="replace"> <![CDATA[catalog/view/javascript/font-awesome/4.7.0/css/all.min.css]]> </add> </operation>
- расширенно количество драйверов работы с кэшем, да и модуль кэширования добавлен в сборку;
- улучшена работа seo_pro (управление полным путём для блога, производителей, кэшем, исключениями из админ панели);
- добавлена возможность отключать нежелательные контроллеры (замена на 404).
История других изменений здесь
Отличия от 2.3.0.2.5 здесь
Предлагаемый список контроллеров для удаления из сборки:
Скрытый текстdesign/menu - создатели OpenCart планировали настройку списка модулей
design/theme - наверное лучше закончить и будет возможность редактировать шаблон из админки, как в тройке
design/language - создатели OpenCart планировали сделать перевод текста (есть в тройке). вместо этого есть лучший аналог extension/module/bus_translation_editor
design/translation - создатели OpenCart планировали сделать перевод текста (есть в тройке). вместо этого есть лучший аналог extension/module/bus_translation_editor
extension/store - без понятия для чего
Только вместе можно выявить все не выявленные или потерянные ошибки.
-
Копайте в сторону поиска по форуму через гугл.
-
-
- Это популярное сообщение.
- Это популярное сообщение.
-
30/ Решил я скопировать все стили и отправить на сервер, в ходе работы кода также понадобилось внести изменение в стиль "content" класса иконки.
Оказалось, что element.style.setProperty('content', '123') - не вносит моё значение. Позже обнаружил, что вносит только вида element.style.setProperty('content', 'url(123)')
В итоге такой фикс подготовки всех стилей перед отправкой на сервер:
Скрытый текст<style> body { content: 'blue'; } </style> <script> window.addEventListener('load', function() { var element = document.styleSheets[0].cssRules[0].style; console.log(element.cssText); //element.removeProperty('content'); // working //element.setProperty('content', 'url(red)'); // working element.setProperty('content', 'red'); // does not work element.setProperty('color', 'red'); // working console.log(element.cssText); console.log(1 + ' ' + element.getPropertyValue('content')); /* fix */ element.setProperty('content', 'url(fixredfix)'); element.cssText = element.cssText.replace(/\burl\(\"fix(.[^\)]*?)fix\"\)/, '"$1"'); /* fix */ console.log(element.cssText); console.log(2 + ' ' + element.getPropertyValue('content')); }); </script>
-
В 14.12.2021 at 13:07, artmax сказал:
к примеру на страницу Товары а потом снова зайти на страницу Заказы то отображается статус Принят (такой был до статуса Подтвержден)
C этого места подробнее и со скриншотами (весь экран);
-
-
v1.0.11
Возможности по кэшу:
- можно установить конкретно, что кэшировать;
- более точная настройка сессионных перемен.
Возможности по Google PageSpeed:
- улучшенный скрипт loading="lazy";
- можно скачать стили и скрипты на свой сайт;
- можно указать исключение из сжатия стилей и скриптов;
- можно сделать замену данных для страниц;
- можно указать свои атрибуты для стилей и скриптов;
- можно предзагружать шрифты и изображения;
- можно установить стили и скрипты вверху, внизу, отложить загрузку по событию и таймеру;
- можно указать свои стили и скрипты;
- модуль стал быстрее;
- можно загружать критические стили;
-
Обновить сборку до 2.3.0.2.5
-
Заказать услугу настройки почты у своего хостера.
-
Ответ был дан здесь:
Вам необходимо полностью обновить движок - конечно же это сделать на копии сайта, чтобы убедиться, что всё хорошо. Или создать тему в разделе услуг, чтобы вам индивидуально посмотрели и решили.
Убрать пробел разделитель тысячных из цены
в Общие вопросы
Опубликовано:
От стилей может зависеть.