dinox Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 Благодаря тому что от Вас пришла отличная обратная связь, получилось быстро выпустить релиз ocStore 2.3.0.2.4 (после долгой паузы в разработке), давайте в таком же темпе сделаем релиз ocStore 3.0.3.7Уже смержено изменения с оригинального опенкарт и начата адаптация, после этого релиз будет дополнен полезным функционалом который появился, в ocStore 2.3.0.2.4. Приглашаю все принять участие! Кто идеями, кто репортами о ошибках, кто пул реквестами. Ждем всех @buslikdrev @spectre @ocdev_pro @snastik @****** @markimax @chukcha @RGB @Tom @mpn2005 у Вас уже были решения и предложения по релизу, если Вам есть еще что добавить, актуализируйте пожалуйста Ваши решения p.s. в гите основная ветка изменена на ветку ocStore 3.0.3.7 Список изменений: 1. Добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) - 10.03.2021 2. Изменен стандартный источник курса валют (Добавлен Центробанк ЕС, Центробанк РФ, Нацбанк ******ы, Fixer) - 12.06.2021 3. Добавлена возможность смены сортировки модулей в макетах перетаскиванием - 12.06.2021 4. Добавлена возможность сортировки товаров и статей перетаскиванием в модулях рекомендуемых - 12.06.2021 5. Добавлен Домовой - Виджет для мониторинга состояния магазина 1.0.1 - 12.06.2021 6. Вынесено в настройки лимит количества отображаемых элементов при поиске с автодополнением в админке - 12.06.2021 7. Добавлено способ вывода тегов canonical, prev, next - 13.06.2021 8. Добавлено гибкое управление выводом тега noindex - 13.06.2021 9. Применение фильтров в админке по нажатию на Enter на страницах заказов, вовратов, покупателей, периодических заказах, статьях блога - 13.06.2021 10. Поправлен SeoPro, в котором исправлена генерация полного пути для товаров при включенной опции учитывать категорию - 27.06.2021 6 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Prooksius Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 Есть такая идея - сделать единый механизм ограничений по корзине. Вот например в Симпле реализовано - максимальная сумма корзины, минимальная, и в зав. от группы покупателей и вроде как все. А очень много люди спрашивают, как ограничить по такому критерию, вот по такому + такому... И приходится лепить на коленке что-то эдакое, кастомное до безобразия. Может быть, есть смысл сделать некий раздел в дополнениях - по аналогии с "Учитывать в заказе" - назвать, например "Ограничения в заказе". Там будут разные ограничители - по макс сумме, по мин сумме, еще какие-то - неважно какие, их можно написать хоть сколько, любые. Их можно будет включить, отключить. И они будут, ну к примеру, выбрасывать ошибку, если сработали. И не давать оформлять заказ. Может быть уже есть что-то подобное, тогда сорри.. Но хотелось бы иметь централизованый механизм ограничений, который бы полноценно встраивался в систему. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ****** Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 10 минут назад, Prooksius сказал: Есть такая идея - сделать единый механизм ограничений по корзине. Вот например в Симпле реализовано - максимальная сумма корзины, минимальная, и в зав. от группы покупателей и вроде как все. А очень много люди спрашивают, как ограничить по такому критерию, вот по такому + такому... И приходится лепить на коленке что-то эдакое, кастомное до безобразия. Может быть, есть смысл сделать некий раздел в дополнениях - по аналогии с "Учитывать в заказе" - назвать, например "Ограничения в заказе". Там будут разные ограничители - по макс сумме, по мин сумме, еще какие-то - неважно какие, их можно написать хоть сколько, любые. Их можно будет включить, отключить. И они будут, ну к примеру, выбрасывать ошибку, если сработали. И не давать оформлять заказ. Может быть уже есть что-то подобное, тогда сорри.. Но хотелось бы иметь централизованый механизм ограничений, который бы полноценно встраивался в систему. А еще не хватает вот прямо очень встроенного набора иконок поздравлений с восьмым марта, чтобы мигали! Чтобы глаза прям вот взяли и вытекли. И чтобы пхп на русском. взятьмассив как массив (вывести ворыч массив) { массив->изгоняем_идиотов_из_оксторе()->run } Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 1 час назад, dinox сказал: Приглашаю все принять участие! Если редактор модификаторов будете добавлять как в 2.3.0.2.4, то его стоит поправить, ну и в 2 тоже). Гит на домашний компьютер не охота настраивать, так что опишу здесь)) В admin/controller/extension/modification.php в "$data['xml'] =" добавить htmlentities() В admin/model/extension/modification.php в функции addModificationBackup добавить html_entity_decode как в editModification Ну и в upload/install/opencart.sql в `backup_id` int(11) NOT NULL, добавить AUTO_INCREMENT Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 13 минут назад, iglin сказал: Если редактор модификаторов будете добавлять как в 2.3.0.2.4, то его стоит поправить, ну и в 2 тоже). Гит на домашний компьютер не охота настраивать, так что опишу здесь)) В admin/controller/extension/modification.php в "$data['xml'] =" добавить htmlentities() В admin/model/extension/modification.php в функции addModificationBackup добавить html_entity_decode как в editModification Ну и в upload/install/opencart.sql в `backup_id` int(11) NOT NULL, добавить AUTO_INCREMENT с AUTO_INCREMENT, согласен, по поводу добавить html_entity_decode не надобности в этом, там происходит простое копирование из поля в поле, без обработки. В базу не попадает никогда htmlentities версия xml, при редактировании это все всегда преобразуется. При добавлении ocmod это происходит другими частями кода. По поводу htmlentities он там не нужен. Если у Вас есть конкретные примеры где это создает проблемы в редакторе, можно скрины? И как в базу попали данные после htmlentities? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 8 минут назад, dinox сказал: По поводу htmlentities он там не нужен. Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 Редактор подремонтирован, Спасибо @iglin за его чудо ocmod дополнение которое помогло отладить работу редактора, также я пофиксил мелкие другие неточности и все отправил в гит второй версии, на странице скачивания уже доступен патч с правками, для тех кто уже поставил или обновил с дифф архива сайт, используйте ocStore_2.3.0.2.3_fix_patch(10.03.2021).zip он содержит актуальные правки, еще перед этим удалите таблицу oc_modification_backup при заходе в редактирование любого ocmod модификатора эта таблица пересоздатся с правыльными параметрами. Теперь его можно будет адаптировать и на ocStore 3.0.3.7 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Abaddon Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 (изменено) 8 часов назад, ****** сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Изменено 10 марта 2021 пользователем Prooksius Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
****** Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 10 минут назад, Prooksius сказал: Есть такая идея - сделать единый механизм ограничений по корзине. Вот например в Симпле реализовано - максимальная сумма корзины, минимальная, и в зав. от группы покупателей и вроде как все. А очень много люди спрашивают, как ограничить по такому критерию, вот по такому + такому... И приходится лепить на коленке что-то эдакое, кастомное до безобразия. Может быть, есть смысл сделать некий раздел в дополнениях - по аналогии с "Учитывать в заказе" - назвать, например "Ограничения в заказе". Там будут разные ограничители - по макс сумме, по мин сумме, еще какие-то - неважно какие, их можно написать хоть сколько, любые. Их можно будет включить, отключить. И они будут, ну к примеру, выбрасывать ошибку, если сработали. И не давать оформлять заказ. Может быть уже есть что-то подобное, тогда сорри.. Но хотелось бы иметь централизованый механизм ограничений, который бы полноценно встраивался в систему. А еще не хватает вот прямо очень встроенного набора иконок поздравлений с восьмым марта, чтобы мигали! Чтобы глаза прям вот взяли и вытекли. И чтобы пхп на русском. взятьмассив как массив (вывести ворыч массив) { массив->изгоняем_идиотов_из_оксторе()->run } Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 1 час назад, dinox сказал: Приглашаю все принять участие! Если редактор модификаторов будете добавлять как в 2.3.0.2.4, то его стоит поправить, ну и в 2 тоже). Гит на домашний компьютер не охота настраивать, так что опишу здесь)) В admin/controller/extension/modification.php в "$data['xml'] =" добавить htmlentities() В admin/model/extension/modification.php в функции addModificationBackup добавить html_entity_decode как в editModification Ну и в upload/install/opencart.sql в `backup_id` int(11) NOT NULL, добавить AUTO_INCREMENT Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 13 минут назад, iglin сказал: Если редактор модификаторов будете добавлять как в 2.3.0.2.4, то его стоит поправить, ну и в 2 тоже). Гит на домашний компьютер не охота настраивать, так что опишу здесь)) В admin/controller/extension/modification.php в "$data['xml'] =" добавить htmlentities() В admin/model/extension/modification.php в функции addModificationBackup добавить html_entity_decode как в editModification Ну и в upload/install/opencart.sql в `backup_id` int(11) NOT NULL, добавить AUTO_INCREMENT с AUTO_INCREMENT, согласен, по поводу добавить html_entity_decode не надобности в этом, там происходит простое копирование из поля в поле, без обработки. В базу не попадает никогда htmlentities версия xml, при редактировании это все всегда преобразуется. При добавлении ocmod это происходит другими частями кода. По поводу htmlentities он там не нужен. Если у Вас есть конкретные примеры где это создает проблемы в редакторе, можно скрины? И как в базу попали данные после htmlentities? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 8 минут назад, dinox сказал: По поводу htmlentities он там не нужен. Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 Редактор подремонтирован, Спасибо @iglin за его чудо ocmod дополнение которое помогло отладить работу редактора, также я пофиксил мелкие другие неточности и все отправил в гит второй версии, на странице скачивания уже доступен патч с правками, для тех кто уже поставил или обновил с дифф архива сайт, используйте ocStore_2.3.0.2.3_fix_patch(10.03.2021).zip он содержит актуальные правки, еще перед этим удалите таблицу oc_modification_backup при заходе в редактирование любого ocmod модификатора эта таблица пересоздатся с правыльными параметрами. Теперь его можно будет адаптировать и на ocStore 3.0.3.7 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Abaddon Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 (изменено) 8 часов назад, ****** сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Изменено 10 марта 2021 пользователем Prooksius Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 13 минут назад, iglin сказал: Если редактор модификаторов будете добавлять как в 2.3.0.2.4, то его стоит поправить, ну и в 2 тоже). Гит на домашний компьютер не охота настраивать, так что опишу здесь)) В admin/controller/extension/modification.php в "$data['xml'] =" добавить htmlentities() В admin/model/extension/modification.php в функции addModificationBackup добавить html_entity_decode как в editModification Ну и в upload/install/opencart.sql в `backup_id` int(11) NOT NULL, добавить AUTO_INCREMENT с AUTO_INCREMENT, согласен, по поводу добавить html_entity_decode не надобности в этом, там происходит простое копирование из поля в поле, без обработки. В базу не попадает никогда htmlentities версия xml, при редактировании это все всегда преобразуется. При добавлении ocmod это происходит другими частями кода. По поводу htmlentities он там не нужен. Если у Вас есть конкретные примеры где это создает проблемы в редакторе, можно скрины? И как в базу попали данные после htmlentities? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 8 минут назад, dinox сказал: По поводу htmlentities он там не нужен. Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 Редактор подремонтирован, Спасибо @iglin за его чудо ocmod дополнение которое помогло отладить работу редактора, также я пофиксил мелкие другие неточности и все отправил в гит второй версии, на странице скачивания уже доступен патч с правками, для тех кто уже поставил или обновил с дифф архива сайт, используйте ocStore_2.3.0.2.3_fix_patch(10.03.2021).zip он содержит актуальные правки, еще перед этим удалите таблицу oc_modification_backup при заходе в редактирование любого ocmod модификатора эта таблица пересоздатся с правыльными параметрами. Теперь его можно будет адаптировать и на ocStore 3.0.3.7 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Abaddon Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 (изменено) 8 часов назад, ****** сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Изменено 10 марта 2021 пользователем Prooksius Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
iglin Опубликовано: 9 марта 2021 Поделиться Опубликовано: 9 марта 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 Редактор подремонтирован, Спасибо @iglin за его чудо ocmod дополнение которое помогло отладить работу редактора, также я пофиксил мелкие другие неточности и все отправил в гит второй версии, на странице скачивания уже доступен патч с правками, для тех кто уже поставил или обновил с дифф архива сайт, используйте ocStore_2.3.0.2.3_fix_patch(10.03.2021).zip он содержит актуальные правки, еще перед этим удалите таблицу oc_modification_backup при заходе в редактирование любого ocmod модификатора эта таблица пересоздатся с правыльными параметрами. Теперь его можно будет адаптировать и на ocStore 3.0.3.7 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Abaddon Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 (изменено) 8 часов назад, ****** сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Изменено 10 марта 2021 пользователем Prooksius Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
dinox Опубликовано: 9 марта 2021 Автор Поделиться Опубликовано: 9 марта 2021 Редактор подремонтирован, Спасибо @iglin за его чудо ocmod дополнение которое помогло отладить работу редактора, также я пофиксил мелкие другие неточности и все отправил в гит второй версии, на странице скачивания уже доступен патч с правками, для тех кто уже поставил или обновил с дифф архива сайт, используйте ocStore_2.3.0.2.3_fix_patch(10.03.2021).zip он содержит актуальные правки, еще перед этим удалите таблицу oc_modification_backup при заходе в редактирование любого ocmod модификатора эта таблица пересоздатся с правыльными параметрами. Теперь его можно будет адаптировать и на ocStore 3.0.3.7 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Abaddon Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 (изменено) 8 часов назад, ****** сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Изменено 10 марта 2021 пользователем Prooksius Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
iglin Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
zhu4koff Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Prooksius Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 а где ветка с issues? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7 Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax Файл Менеджер Изображений Автор: Parallax
100napb Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 В ocstore, как и в оригинальном ОС, ссть недоработка, из-за которой после смены класса кэша с файлов на, например, redis, становится невозможным очистить кэш стандартными средствами движка. как вариант, можно использовать следующее решение добавить новый метод по очистке кэша непосредственно в класс редиса upload/system/library/cache/redis.php Spoiler <?php namespace Cache; class Redis { private $expire; private $cache; public function __construct($expire) { $this->expire = $expire; $this->cache = new \Redis(); $this->cache->pconnect(CACHE_HOSTNAME, CACHE_PORT); } public function get($key) { $data = $this->cache->get(CACHE_PREFIX . $key); return json_decode($data, true); } public function set($key,$value) { $status = $this->cache->set(CACHE_PREFIX . $key, json_encode($value)); if($status){ $this->cache->setTimeout(CACHE_PREFIX . $key, $this->expire); } return $status; } public function delete($key) { $this->cache->delete(CACHE_PREFIX . $key); } public function flush() { $this->cache->del($this->cache->keys(CACHE_PREFIX . '*')); } } добавить новый метод по очистке кэша в класс кэша upload/system/library/cache.php Spoiler <?php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Cache class */ class Cache { private $adaptor; /** * Constructor * * @param string $adaptor The type of storage for the cache. * @param int $expire Optional parameters * */ public function __construct($adaptor, $expire = 3600) { $class = 'Cache\\' . $adaptor; if (class_exists($class)) { $this->adaptor = new $class($expire); } else { throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); } } /** * Gets a cache by key name. * * @param string $key The cache key name * * @return string */ public function get($key) { return $this->adaptor->get($key); } /** * * * @param string $key The cache key * @param string $value The cache value * * @return string */ public function set($key, $value) { return $this->adaptor->set($key, $value); } /** * * * @param string $key The cache key */ public function delete($key) { return $this->adaptor->delete($key); } public function flush() { return $this->adaptor->flush(); } } добавить новые инструкции по очистке кэша через кнопку в админке upload/admin/controller/common/developer.php Spoiler public function allcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $imgfiles = glob(DIR_IMAGE . 'cache/*'); if (!empty($imgfiles)) { foreach($imgfiles as $imgfile){ $this->deldir($imgfile); } } // Before we delete we need to make sure there is a sass file to regenerate the css $file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css'; if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/sass/_bootstrap.scss')) { unlink($file); } $files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/sass/_bootstrap.scss'); foreach ($files as $file) { $file = substr($file, 0, -21) . '/bootstrap.css'; if (is_file($file)) { unlink($file); } } $directories = glob(DIR_CACHE . '*', GLOB_ONLYDIR); if ($directories) { foreach ($directories as $directory) { $files = glob($directory . '/*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } if (is_dir($directory)) { rmdir($directory); } } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Spoiler public function systemcache() { $this->load->language('common/developer'); $json = array(); if (!$this->user->hasPermission('modify', 'common/developer')) { $json['error'] = $this->language->get('error_permission'); } else { if ($this->config->get('cache_engine') === 'redis') { $this->cache->flush(); $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_allcache')); } elseif ($this->config->get('cache_engine') === 'files') { $files = glob(DIR_CACHE . 'cache.*'); if (!empty($files)) { foreach($files as $file){ $this->deldir($file); } } $json['success'] = sprintf($this->language->get('text_cache'), $this->language->get('text_systemcache')); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } К слову, так же неплохо было бы добавить где-то инструкцию, что после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит так же где-то (в config.php?) прописать константы со своими значениями Spoiler define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_'); 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Основной Новости и анонсы Старт разработки ocStore 3.0.3.7
chukcha Опубликовано: 10 марта 2021 Поделиться Опубликовано: 10 марта 2021 <file path="admin/controller/marketplace/modification.php"> <operation> <search><![CDATA[ $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); ]]></search> <add position="replace" trim="true"><![CDATA[ if (filesize($file) > 100000) { $data['log'] = 'Very BIG file'; } else { $data['log'] = htmlentities(file_get_contents($file, FILE_USE_INCLUDE_PATH, null)); } ]]></add> </operation> </file> <!-- Релоад шаблонов после обновления модификаторов --> <file path="system/library/template/twig.php"> <operation> <search><![CDATA[$this->twig = new \Twig_Environment($loader, $config);]]></search> <add position="before"><![CDATA[ $config['auto_reload'] = true; //$config['strict_variables'] = true; $config['debug'] = true; ]]></add> </operation> </file> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28 Перейти к списку тем Похожие публикации ocStore 3.0.3.7 - Модифицированный OpenCart 1 2 3 4 19 Автор: dinox, 8 июля 2021 465 ответов 73 903 просмотра LeonidoPapagatto 11 января Не работает ЧПУ Версия ocStore 3.0.3.7 Автор: Nikolay_23, 26 ноября 2022 5 ответов 298 просмотров nikoshot 26 ноября 2022 Мульти магазин OcStore 3.0.3.7 Автор: andrewignatov94, 1 ноября 2022 0 ответов 188 просмотров andrewignatov94 1 ноября 2022 Быстрый старт для шаблона Moneymaker 2 Автор: RGB, 13 июня 2018 0 комментариев 7 595 просмотров RGB 13 июня 2018 URL пагинации ocStore 3.0.3.7 Автор: drVadz, 2 июня 2022 10 ответов 895 просмотров kulinenko 18 октября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
dinox Опубликовано: 10 марта 2021 Автор Поделиться Опубликовано: 10 марта 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
mpn2005 Опубликовано: 11 марта 2021 Поделиться Опубликовано: 11 марта 2021 Вот этот момент актуален и для ocStore3 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 г dinox закрыл, открепил и сделал обычной теме Назад 1 2 3 4 5 Вперёд Страница 1 из 5 Эта тема закрыта для дальнейших сообщений. Поделиться Больше способов поделиться... Подписчики 28
dinox Опубликовано: 13 марта 2021 Автор Поделиться Опубликовано: 13 марта 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Gapnob Опубликовано: 15 марта 2021 Поделиться Опубликовано: 15 марта 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения