Модуль Продукт с расширенными вариациями - Комбинированные опции - Варианты продукта

el404

Творец (III)
Сообщения
64
Симпатии
5
Баллы
624
el404 разместил(а) новый ресурс:

Продукт с расширенными вариациями - Комбинированные опции - Варианты продукта - Обновление в реальном времени с комбинациями опций.

  • Live update with options : Image, Price, Stock, Model, SKU, UPC, EAN, JAN, ISBN, MPN, Location, Size, Weight, Point
  • Search by variant model, SKU, UPC, EAN, JAN, ISBN, MPN:
  • Pattern Types : Option Pictures / Product Pictures / Text
  • Show/Hide option on Category page
  • Show / Hide Options Price Difference
  • Show / Hide Out of Stock Possibility
  • Easy creation : Create all variable parameters (combined parameters) with a simple mouse click or...

Посмотреть страницу этого ресурса...
 
Скачать версию 2.1.0.2 -
 
Последнее редактирование:
Продукт с расширенными вариациями - Комбинированные опции - Варианты продукта У МЕНЯ ВООБЩЕ НЕ ЗАВЕЛСЯ. Установил, настройки есть, но не видит опции для добавления и т.п.
Проверил на дефолтном шаблоне - всё работает
Если у вас что то не работает на нестандартном шаблоне, это не означает что модуль не работает вообще.
Это означает что модуль не адаптирован под установленный вами шаблон.
Из личного опыта могу сказать, что некоторые модули не работают или работают с ошибками на локальных компьютерах с windows.
Так же, хочу особо отметить, что на данном форуме может не быть модулей, которые 100% заведутся на нестандартном шаблоне(релизеры просто копируют описание с продажника), эту информацию нужно получать самостоятельно на странице продажи модуля у разработчика. Иногда, у разработчика есть готовая адаптация под конкретный шаблон(Есть список шаблонов в описании: модуль адаптирован под шаблоны.....), но он даёт её только после покупки модуля(из за этого в архиве с модулем этой адаптации может не быть).
Тут либо попросить поделится адаптацией(если она есть, думаю поделятся), либо просить кого то, что бы написали адаптацию, либо писать её самостоятельно, ну или на крайний случай покупать дополнение с адаптацией
 
Последнее редактирование:
Продукт с расширенными вариациями - Комбинированные опции - Варианты продукта У МЕНЯ ВООБЩЕ НЕ ЗАВЕЛСЯ. Установил, настройки есть, но не видит опции для добавления и т.п.
да, ибо у вас unishop2 тема, на ней не работает, тестил вчера вашу версию ocStore unishop2, не работает, нужна адаптация под unishop2, 100% работоспособность проверял на стандартной теме opencart 3.0.3.8 и на теме journal3
 
В новой версии (2.4.1.3) в коде нашел поддержку следующих тем: UltraStore, Journal3 (проверено), Basel, Kenza, Zemez, Sinrato, Truemart, Mimosa, Debaco, Drama, Revo, Mixbucket (mahardhi), Cyberstore, Unishop2 (проверено). На других надо тестить...
 
В новой версии (2.4.1.3) в коде нашел поддержку следующих тем: UltraStore, Journal3 (проверено), Basel, Kenza, Zemez, Sinrato, Truemart, Mimosa, Debaco, Drama, Revo, Mixbucket (mahardhi), Cyberstore, Unishop2 (проверено). На других надо тестить...
Что то не запустился блин (((((
Настройки плагина работают а вот выбор нет если нажимать Генерировать или в поле выбора нажимать, ничего не происходит...
Может это у меня проблемма
1705958860122.png
 
Что то не запустился блин (((((
Настройки плагина работают а вот выбор нет если нажимать Генерировать или в поле выбора нажимать, ничего не происходит...
Может это у меня проблемма
Посмотреть вложение 7609
Напиши в лс данные от админки, гляну в чем проблема
 
Уважаемые админы и программисты, если кому не влом, посмотрите пожалуйста код данного модуля, модуль создает свой кэш в "/ocartdata/storage/cache" под именем "cache.may_advanced_option_product_". Хотел бы узнать можно его как-то отрубить? А то мешает теме (в моем случае Journal3) создавать свой кэш, это ощущается на скорости загрузки страницы в целом, если модуль отрубить, то сразу все шустро и кэш тема создает.
 

Maybooster Advanced Options 2.4.1.3 (English, Русский, Украинский)

добавлен украинский перевод.
 
Уважаемые админы и программисты, если кому не влом, посмотрите пожалуйста код данного модуля, модуль создает свой кэш в "/ocartdata/storage/cache" под именем "cache.may_advanced_option_product_". Хотел бы узнать можно его как-то отрубить? А то мешает теме (в моем случае Journal3) создавать свой кэш, это ощущается на скорости загрузки страницы в целом, если модуль отрубить, то сразу все шустро и кэш тема создает.
Так это стандартный кеш файловый, без него думаю сильно быстрей не будет, настройте кеширование на Memcached или Redis будет гораздо быстрее чем файловый кеш.


Можно конечно и переопределить папку кеша для этого модуля, но это костыльный костыль:
Для этого создаем папку: \system\storage\myoptcache\
В файле \catalog\controller\extension\may\advanced_options.php сразу после:
PHP:
<?php
class ControllerExtensionMayAdvancedOptions extends Controller {
добавляем:
PHP:
    //Переопределим свой кеш
    public function __construct($registry)
    {
        parent::__construct($registry);
        $this->cache =new MyFileOptionCache();
    }
а в самый конец файла добавляем код:
PHP:
class MyFileOptionCache {
    private $expire;

    public function __construct($expire = 3600) {
        $this->expire = $expire;

        $files = glob(DIR_STORAGE . 'myoptcache/myoptcache/cache.*');

        if ($files) {
            foreach ($files as $file) {
                $filename = basename($file);

                $time = substr(strrchr($file, '.'), 1);

                if ($time < time()) {
                    $this->delete(substr($filename, 6, strrpos($filename, '.') - 6));
                }
            }
        }
    }

    public function get($key) {
        $files = glob(DIR_STORAGE . 'myoptcache/cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {
            $handle = fopen($files[0], 'r');

            flock($handle, LOCK_SH);

            $size = filesize($files[0]);

            if ($size > 0) {
                $data = fread($handle, $size);
            } else {
                $data = '';
            }

            flock($handle, LOCK_UN);

            fclose($handle);

            return json_decode($data, true);
        }

        return false;
    }

    public function set($key, $value) {
        $this->delete($key);

        $file = DIR_STORAGE . 'myoptcache/cache.' . basename($key) . '.' . (time() + $this->expire);

        $handle = fopen($file, 'w');

        flock($handle, LOCK_EX);

        fwrite($handle, json_encode($value));

        fflush($handle);

        flock($handle, LOCK_UN);

        fclose($handle);
    }

    public function delete(string $key) {
        $files = glob(DIR_STORAGE . 'myoptcache/cache.' . basename($key) . '.*');

        if ($files) {
            foreach ($files as $file) {
                if (!@unlink($file)) {
                    clearstatcache(false, $file);
                }
            }
        }
    }
}
 
Последнее редактирование:
  • Мне нравится
Симпатии: el404
Так это стандартный кеш файловый, без него думаю сильно быстрей не будет, настройте кеширование на Memcached или Redis будет гораздо быстрее чем файловый кеш.


Можно конечно и переопределить папку кеша для этого модуля, но это костыльный костыль:
Для этого создаем папку: \system\storage\myoptcache\
В файле \catalog\controller\extension\may\advanced_options.php сразу после:
PHP:
<?php
class ControllerExtensionMayAdvancedOptions extends Controller {
добавляем:
PHP:
    //Переопределим свой кеш
    public function __construct($registry)
    {
        parent::__construct($registry);
        $this->cache =new MyFileOptionCache();
    }
а в самый конец файла добавляем код:
PHP:
class MyFileOptionCache {
    private $expire;

    public function __construct($expire = 3600) {
        $this->expire = $expire;

        $files = glob(DIR_STORAGE . 'myoptcache/myoptcache/cache.*');

        if ($files) {
            foreach ($files as $file) {
                $filename = basename($file);

                $time = substr(strrchr($file, '.'), 1);

                if ($time < time()) {
                    $this->delete(substr($filename, 6, strrpos($filename, '.') - 6));
                }
            }
        }
    }

    public function get($key) {
        $files = glob(DIR_STORAGE . 'myoptcache/cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {
            $handle = fopen($files[0], 'r');

            flock($handle, LOCK_SH);

            $size = filesize($files[0]);

            if ($size > 0) {
                $data = fread($handle, $size);
            } else {
                $data = '';
            }

            flock($handle, LOCK_UN);

            fclose($handle);

            return json_decode($data, true);
        }

        return false;
    }

    public function set($key, $value) {
        $this->delete($key);

        $file = DIR_STORAGE . 'myoptcache/cache.' . basename($key) . '.' . (time() + $this->expire);

        $handle = fopen($file, 'w');

        flock($handle, LOCK_EX);

        fwrite($handle, json_encode($value));

        fflush($handle);

        flock($handle, LOCK_UN);

        fclose($handle);
    }

    public function delete(string $key) {
        $files = glob(DIR_STORAGE . 'myoptcache/cache.' . basename($key) . '.*');

        if ($files) {
            foreach ($files as $file) {
                if (!@unlink($file)) {
                    clearstatcache(false, $file);
                }
            }
        }
    }
}
А давайте вы не будете использовать "ИИ" и я не буду вас банить?
Точнее, это крайнее предупреждение
 
Последнее редактирование:
А давайте вы не будете использовать "ИИ" и я не буду вас банить?
Точнее, это крайнее предупреждение
А в чем ИИ? Я это сам писал без ИИ и протестировал, потому что у меня таже проблема с подтормаживанием этого модуля была.
Обычная подмена типового класса фалового кеша на свой коласс фалового кеша со своим параметром каталога кеша.
1710480192260.png1710480340628.png
1710480367077.png
 
Так это стандартный кеш файловый, без него думаю сильно быстрей не будет, настройте кеширование на Memcached или Redis будет гораздо быстрее чем файловый кеш.


Можно конечно и переопределить папку кеша для этого модуля, но это костыльный костыль:
Для этого создаем папку: \system\storage\myoptcache\
В файле \catalog\controller\extension\may\advanced_options.php сразу после:
PHP:
<?php
class ControllerExtensionMayAdvancedOptions extends Controller {
добавляем:
PHP:
    //Переопределим свой кеш
    public function __construct($registry)
    {
        parent::__construct($registry);
        $this->cache =new MyFileOptionCache();
    }
а в самый конец файла добавляем код:
PHP:
class MyFileOptionCache {
    private $expire;

    public function __construct($expire = 3600) {
        $this->expire = $expire;

        $files = glob(DIR_STORAGE . 'myoptcache/myoptcache/cache.*');

        if ($files) {
            foreach ($files as $file) {
                $filename = basename($file);

                $time = substr(strrchr($file, '.'), 1);

                if ($time < time()) {
                    $this->delete(substr($filename, 6, strrpos($filename, '.') - 6));
                }
            }
        }
    }

    public function get($key) {
        $files = glob(DIR_STORAGE . 'myoptcache/cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {
            $handle = fopen($files[0], 'r');

            flock($handle, LOCK_SH);

            $size = filesize($files[0]);

            if ($size > 0) {
                $data = fread($handle, $size);
            } else {
                $data = '';
            }

            flock($handle, LOCK_UN);

            fclose($handle);

            return json_decode($data, true);
        }

        return false;
    }

    public function set($key, $value) {
        $this->delete($key);

        $file = DIR_STORAGE . 'myoptcache/cache.' . basename($key) . '.' . (time() + $this->expire);

        $handle = fopen($file, 'w');

        flock($handle, LOCK_EX);

        fwrite($handle, json_encode($value));

        fflush($handle);

        flock($handle, LOCK_UN);

        fclose($handle);
    }

    public function delete(string $key) {
        $files = glob(DIR_STORAGE . 'myoptcache/cache.' . basename($key) . '.*');

        if ($files) {
            foreach ($files as $file) {
                if (!@unlink($file)) {
                    clearstatcache(false, $file);
                }
            }
        }
    }
}
Костыль - огонь! Спасибо!
 
У этого модуля проблема с выбором опций на айфонах, с первого раза не выбираются как положено нужно js пилить
 
Назад
Верх