dinox Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 Благодаря тому что от Вас пришла отличная обратная связь, получилось быстро выпустить релиз ocStore 2.3.0.2.4 (после долгой паузы в разработке), давайте в таком же темпе сделаем релиз ocStore 3.0.3.7Уже смержено изменения с оригинального опенкарт и начата адаптация, после этого релиз будет дополнен полезным функционалом который появился, в ocStore 2.3.0.2.4. Приглашаю все принять участие! Кто идеями, кто репортами о ошибках, кто пул реквестами. Ждем всех @buslikdrev @spectre @ocdev_pro @snastik @Yoda @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 Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 Есть такая идея - сделать единый механизм ограничений по корзине. Вот например в Симпле реализовано - максимальная сумма корзины, минимальная, и в зав. от группы покупателей и вроде как все. А очень много люди спрашивают, как ограничить по такому критерию, вот по такому + такому... И приходится лепить на коленке что-то эдакое, кастомное до безобразия. Может быть, есть смысл сделать некий раздел в дополнениях - по аналогии с "Учитывать в заказе" - назвать, например "Ограничения в заказе". Там будут разные ограничители - по макс сумме, по мин сумме, еще какие-то - неважно какие, их можно написать хоть сколько, любые. Их можно будет включить, отключить. И они будут, ну к примеру, выбрасывать ошибку, если сработали. И не давать оформлять заказ. Может быть уже есть что-то подобное, тогда сорри.. Но хотелось бы иметь централизованый механизм ограничений, который бы полноценно встраивался в систему. Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 10 минут назад, Prooksius сказал: Есть такая идея - сделать единый механизм ограничений по корзине. Вот например в Симпле реализовано - максимальная сумма корзины, минимальная, и в зав. от группы покупателей и вроде как все. А очень много люди спрашивают, как ограничить по такому критерию, вот по такому + такому... И приходится лепить на коленке что-то эдакое, кастомное до безобразия. Может быть, есть смысл сделать некий раздел в дополнениях - по аналогии с "Учитывать в заказе" - назвать, например "Ограничения в заказе". Там будут разные ограничители - по макс сумме, по мин сумме, еще какие-то - неважно какие, их можно написать хоть сколько, любые. Их можно будет включить, отключить. И они будут, ну к примеру, выбрасывать ошибку, если сработали. И не давать оформлять заказ. Может быть уже есть что-то подобное, тогда сорри.. Но хотелось бы иметь централизованый механизм ограничений, который бы полноценно встраивался в систему. А еще не хватает вот прямо очень встроенного набора иконок поздравлений с восьмым марта, чтобы мигали! Чтобы глаза прям вот взяли и вытекли. И чтобы пхп на русском. взятьмассив как массив (вывести ворыч массив) { массив->изгоняем_идиотов_из_оксторе()->run } Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 9 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 8 минут назад, dinox сказал: По поводу htmlentities он там не нужен. Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Abaddon Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 (змінено) 8 часов назад, Yoda сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Змінено 10 березня 2021 користувачем Prooksius Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yoda Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 10 минут назад, Prooksius сказал: Есть такая идея - сделать единый механизм ограничений по корзине. Вот например в Симпле реализовано - максимальная сумма корзины, минимальная, и в зав. от группы покупателей и вроде как все. А очень много люди спрашивают, как ограничить по такому критерию, вот по такому + такому... И приходится лепить на коленке что-то эдакое, кастомное до безобразия. Может быть, есть смысл сделать некий раздел в дополнениях - по аналогии с "Учитывать в заказе" - назвать, например "Ограничения в заказе". Там будут разные ограничители - по макс сумме, по мин сумме, еще какие-то - неважно какие, их можно написать хоть сколько, любые. Их можно будет включить, отключить. И они будут, ну к примеру, выбрасывать ошибку, если сработали. И не давать оформлять заказ. Может быть уже есть что-то подобное, тогда сорри.. Но хотелось бы иметь централизованый механизм ограничений, который бы полноценно встраивался в систему. А еще не хватает вот прямо очень встроенного набора иконок поздравлений с восьмым марта, чтобы мигали! Чтобы глаза прям вот взяли и вытекли. И чтобы пхп на русском. взятьмассив как массив (вывести ворыч массив) { массив->изгоняем_идиотов_из_оксторе()->run } Надіслати Поділитися на інших сайтах More sharing options...
iglin Опубліковано: 9 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 8 минут назад, dinox сказал: По поводу htmlentities он там не нужен. Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Abaddon Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 (змінено) 8 часов назад, Yoda сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Змінено 10 березня 2021 користувачем Prooksius Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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? Надіслати Поділитися на інших сайтах More sharing options...
iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 8 минут назад, dinox сказал: По поводу htmlentities он там не нужен. Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Abaddon Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 (змінено) 8 часов назад, Yoda сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Змінено 10 березня 2021 користувачем Prooksius Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 24 минуты назад, iglin сказал: Соответственно перед редактированием стоит символы преобразовать в HTML-сущности, а при сохранении обратно. Вот теперь аргументированый репорт о баге Спасибо! Внесу правки Надіслати Поділитися на інших сайтах More sharing options...
iglin Опубліковано: 9 березня 2021 Share Опубліковано: 9 березня 2021 1 минуту назад, dinox сказал: Вот теперь аргументированый репорт о баге Спасибо! Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Abaddon Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 (змінено) 8 часов назад, Yoda сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Змінено 10 березня 2021 користувачем Prooksius Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 9 березня 2021 8 минут назад, iglin сказал: Да я что то сначала подумал что это очевидно - если выводить теги xml в текстовое поле, то браузер обработает их как теги, а не содержимое поля) Вот и не стал подробно расписывать) Тесты проводились на различных xml файлах кроме того они проходят через codemirror у которого включен режим xml, можете в личку отправить Ваш ocmod файл для тестов ) Не могу воссоздать такое поведение редактора, мне это нужно чтобы точно удостоверится что начало нормально работать Надіслати Поділитися на інших сайтах More sharing options...
dinox Опубліковано: 9 березня 2021 Автор Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options...
Abaddon Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Даже примерных сроков выхода 3.0.3.7 нету? И на Гите ссылка на список отличий с оригинальным движком не работает. Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 (змінено) 8 часов назад, Yoda сказал: Чтобы глаза прям вот взяли и вытекли. О, наш злобный койот, как всегда, отгавкался ) А если серьезно по теме ограничений в корзине. Есть FilterIt - классный модуль, там по-моему можно это сделать, но тоже ненапрямую, а через доставки, настолько неочевидно. Больше толком я ничего не нашел. Если есть уже решение - ткните носом, плиз, чет не нахожу. Вот обсуждение одно, как пример. Змінено 10 березня 2021 користувачем Prooksius Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 час назад, Prooksius сказал: Вот обсуждение одно, как пример. Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 1 минуту назад, iglin сказал: Всей подобной логикой должны заниматься модули оплаты/доставки мое мнение. Коим фильтерит и является. Сама корзина ничего ограничивать и считать не должна. Согласен. Именно так и предполагаю, но не доставками (при чем тут доставки, если речь идет о сумме в корзине - subTotal), а каким-то другим слоем модулей, по типу доставок и оплат. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
iglin Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 31 минуту назад, Prooksius сказал: при чем тут доставки, если речь идет о сумме в корзине - subTotal Да при том что условия для показа того или иного модуля доставки/оплаты внутри этого модуля! Не корзина решает что вам "показать", а сами модули решают показываться или нет. С предложениями по новому слою вам к команде разработчиков оригинального опенкарта, чтобы добавили в 4 версию)) Надіслати Поділитися на інших сайтах More sharing options... zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
zhu4koff Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 На всякий случай продублирую сюда, по части seo неплохо было бы чуть доработать seo pro и еще по возможности добавить поддержку svg изображений в менеджере и при выводе на сайте + поле SVG Favicon в настройках как сейчас предлагает загружать яндекс вебмастер 1 Надіслати Поділитися на інших сайтах More sharing options...
Prooksius Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 Я вот о таких ограничениях, вот из того обсуждения цитата: 11 часов назад, yurame1nik сказал: Подскажите пожалуйста, можно реализовать ограничение по минимальной сумме при оформлении заказа в зависимости от региона. мне кажется, это доставок или оплат не должно касаться. Ок, я понял, спасибо за подсказки. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 10 березня 2021 а где ветка с issues? Надіслати Поділитися на інших сайтах More sharing options... 100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7 Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
100napb Опубліковано: 10 березня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Основний Новини та оголошення Старт разработки ocStore 3.0.3.7
chukcha Опубліковано: 10 березня 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options... mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 В гит уже добавлен редактор модификаторов с возможностью бекапа (мигрирован с ocStore 2.3.0.2.4) Надіслати Поділитися на інших сайтах More sharing options...
dinox Опубліковано: 10 березня 2021 Автор Share Опубліковано: 10 березня 2021 Добавил фикс редактора шаблонов в гит, ошибка заключалась в том что как только производилось первое редактирование частей шаблона через админ панель, этот файл twig начинал игнорировать действия модификаторов ocmod. Модификаторы просто не брали код шаблонов с базы после редактирования, а по обычному брали его с файлов twig шаблона. 4 Надіслати Поділитися на інших сайтах More sharing options...
mpn2005 Опубліковано: 11 березня 2021 Share Опубліковано: 11 березня 2021 Вот этот момент актуален и для ocStore3 Надіслати Поділитися на інших сайтах More sharing options... dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options... 3 р dinox locked, unpinned та unfeatured this topic Назад 1 2 3 4 5 Вперед Сторінка 1 з 5 Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 20
dinox Опубліковано: 13 березня 2021 Автор Share Опубліковано: 13 березня 2021 В состав ocStore 3.0.3.7 войдет это виджет 5 Надіслати Поділитися на інших сайтах More sharing options...
Gapnob Опубліковано: 15 березня 2021 Share Опубліковано: 15 березня 2021 Не стоит ли изменить meta_description с varchat(255) до text? Иногда люди пишут больше 255 символов и в админке они прописываются, но при сохранении текст обрезается. Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts