qub Опубліковано: 4 травня 2017 Share Опубліковано: 4 травня 2017 Opencart 2.1.0.2 Доброе время суток господа.Подскажите пожалуйста как реализовать чтобы в одной категории был grid по умолчанию, а в другой list. Может ли кто нибудь нагородить простой js типо: $document readyЕсли page url=xxx,yyy,zzzто click list view by defaultElsegrid view Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options...
qub Опубліковано: 6 травня 2017 Автор Share Опубліковано: 6 травня 2017 Неужели ни у кого не возникало такой необходимости?Отправлено с моего Redmi Note 2 через Tapatalk Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 6 травня 2017 Share Опубліковано: 6 травня 2017 (змінено) в контроллере header.php перед return $this->load->view('common/header', $data); добавляем $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 57) { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } заменить 57 - на нужную категорию шаблон header.tpl перед <script src="catalog/view/javascript/common.js" type="text/javascript"></script> вставляем <?php if(isset($script_local)) {echo $script_local;}?> Змінено 6 травня 2017 користувачем fanatic 1 Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 6 травня 2017 Автор Share Опубліковано: 6 травня 2017 Спасибо! Но есть вопрос:Тут изменение идёт через куки и при первой загрузке страницы куки переписываются в нужной категории, но тип отображения остаётся старым. После обновления страницы уже из новых кукисов меняется тип отображения.Я решение ещё не успел протестировать вживую, просто пытался понять логику.К слову я думал о чём то более простом типо js скрипта который виртуально кликает grid or list в зависимости от урла.Прошу прощения, что не протестировал пишу тут возможно глупости.Спасибо за ответ!Отправлено с моего Redmi Note 2 через Tapatalk Надіслати Поділитися на інших сайтах More sharing options... jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 посмотрите код установки разметки в common.js Grid View, List View и чуть ниже по коду localStorage. Вот именно там идет проверка содержимого localStorage И это значение меняется заранее. Остается открытым вопрос, как его вернуть в предыдущее состояние при переходе на стандартную страницу каталога. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 Яваскриптом можно анализировать класс тега "body": <body class="common-home"> ... <body class="product-category-25_32"> ... и так далее Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 12 часов назад, qub сказал: Тут изменение идёт через куки нет. через localStorage 5 часов назад, jaffagold сказал: Остается открытым вопрос, как его вернуть в предыдущее состояние при переходе на стандартную страницу каталога. в if добавляем нужное значение в хранилище, в else очищаем. и при заходе в другую категорию будет функционал по умолчанию Надіслати Поділитися на інших сайтах More sharing options... jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 (змінено) А если из category.php (там ведь определяется штатно category_id) по условию совпадения ID категории передавать служебную переменную непосредственно в category.tpl? Там проверять ее значение и там исполнять скрипт (имитировать нажатие на кнопку)? Сработает? Тогда не затрагивается LocalStorage. Змінено 7 травня 2017 користувачем jaffagold Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 А если из category.php (там ведь определяется штатно category_id) по условию совпадения ID категории передавать служебную переменную непосредственно в category.tpl? Там проверять ее значение и там исполнять скрипт (имитировать нажатие на кнопку)? Сработает? Тогда не затрагивается LocalStorage.Я вот о таком коде и мечтал. Мне кажется, что это было бы самое близкое к центру проблемы решение. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 1 час назад, jaffagold сказал: (имитировать нажатие на кнопку)? 1 час назад, jaffagold сказал: Тогда не затрагивается LocalStorage. затрагивается // Product List $('#list-view').click(function() { $('#content .product-grid > .clearfix').remove(); $('#content .row > .product-grid').attr('class', 'product-layout product-list col-xs-12'); $('#grid-view').removeClass('active'); $('#list-view').addClass('active'); localStorage.setItem('display', 'list'); }); // Product Grid $('#grid-view').click(function() { // What a shame bootstrap does not take into account dynamically loaded columns var cols = $('#column-right, #column-left').length; if (cols == 2) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12'); } else if (cols == 1) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12'); } else { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12'); } $('#list-view').removeClass('active'); $('#grid-view').addClass('active'); localStorage.setItem('display', 'grid'); }); Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? И если на странице изменить её то макет сразу изменится?Или всё таки add и remove class это основные двигатели смены макета отображения? Я вижу код примерно так: Categiries.tpl:If categiry id=15,16,17{Remove.class=grid;Add.class=list;Button.active=list;Localstorage=list;}Else{Remove.class=list;Add.class=grid;Button.active=grid;Localstorage=grid}; К слову localstorage можно вообще не трогать, пускай будет дефольным для движка. Есть смысл именно в нужных категориях вызывать add и remove class.С другой стороны как будет работать pagination без locastorage - загадка Надіслати Поділитися на інших сайтах More sharing options... jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 Там ведь помимо класса Grid/List и active есть еще классы разметки Bootstrap. И все это уже написано. Вот только что вам выложили листинг куска стандартного common.js,который отвечает за переключение разметок и работу с locaStorage... Там и клики, и смена класса active, и запись в localStorage выбора посетителя. Не мудрите.. Весь код вам уже дали. Он должен работать. Осталось только проверить. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 49 минут назад, qub сказал: То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? да не строит она куки. это локальное хранилище. в него записывается значение как выводить товары 'display' = 'list' или 'display' = 'grid' 1 час назад, qub сказал: И если на странице изменить её то макет сразу изменится? нет проверка хранилища происходит один раз, при загрузке страницы. в зависимости от значения в хранилище, происходит программное нажатие кнопки, и срабатывает уже скрипт(выше в моем сообщении), меняющий разметку Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 16 минут назад, jaffagold сказал: Там и клики, и смена класса active, и запись в localStorage выбора посетителя. вот именно, нафига что-то изобретать когда уже все есть, нужно только изменять значения display в хранилище, остальное сделают существующие скрипты. Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 В 06.05.2017 в 20:13, fanatic сказал: в контроллере header.php перед добавляем заменить 57 - на нужную категорию шаблон header.tpl перед вставляем Внёс все изменения! Работает в категориях отменно. Правда на других страницах кроме станиц категорий создаёт ошибку: Notice: Undefined index: path in /var/www/u0135691/public_html/system/storage/modification/catalog/controller/common/header.php on line 416 Я так понимаю что он на других страницах не может получить корректный categoty.path отсюда и ошибка. А как можно внедрить if на проверку что это категория а не другая страница? СПАСИБО! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Разобрался на примере соседнего кода в контроллере! Конечный код: // grid or list view if (isset($this->request->get['path'])){ $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 18 or $category_id == 17) { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } } // end if of view Спасибо! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Скажите пожалуйста а есть ли возможность там же обращаться с переменным "сортировка" и "количество товаров на странице" через localstorage? Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 1 час назад, qub сказал: через localstorage? нет, сортировка и количество реализованы по другому. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Grid или list view для разных категорий Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
qub Опубліковано: 6 травня 2017 Автор Share Опубліковано: 6 травня 2017 Спасибо! Но есть вопрос:Тут изменение идёт через куки и при первой загрузке страницы куки переписываются в нужной категории, но тип отображения остаётся старым. После обновления страницы уже из новых кукисов меняется тип отображения.Я решение ещё не успел протестировать вживую, просто пытался понять логику.К слову я думал о чём то более простом типо js скрипта который виртуально кликает grid or list в зависимости от урла.Прошу прощения, что не протестировал пишу тут возможно глупости.Спасибо за ответ!Отправлено с моего Redmi Note 2 через Tapatalk Надіслати Поділитися на інших сайтах More sharing options...
jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 посмотрите код установки разметки в common.js Grid View, List View и чуть ниже по коду localStorage. Вот именно там идет проверка содержимого localStorage И это значение меняется заранее. Остается открытым вопрос, как его вернуть в предыдущее состояние при переходе на стандартную страницу каталога. Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 Яваскриптом можно анализировать класс тега "body": <body class="common-home"> ... <body class="product-category-25_32"> ... и так далее Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 12 часов назад, qub сказал: Тут изменение идёт через куки нет. через localStorage 5 часов назад, jaffagold сказал: Остается открытым вопрос, как его вернуть в предыдущее состояние при переходе на стандартную страницу каталога. в if добавляем нужное значение в хранилище, в else очищаем. и при заходе в другую категорию будет функционал по умолчанию Надіслати Поділитися на інших сайтах More sharing options... jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 (змінено) А если из category.php (там ведь определяется штатно category_id) по условию совпадения ID категории передавать служебную переменную непосредственно в category.tpl? Там проверять ее значение и там исполнять скрипт (имитировать нажатие на кнопку)? Сработает? Тогда не затрагивается LocalStorage. Змінено 7 травня 2017 користувачем jaffagold Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 А если из category.php (там ведь определяется штатно category_id) по условию совпадения ID категории передавать служебную переменную непосредственно в category.tpl? Там проверять ее значение и там исполнять скрипт (имитировать нажатие на кнопку)? Сработает? Тогда не затрагивается LocalStorage.Я вот о таком коде и мечтал. Мне кажется, что это было бы самое близкое к центру проблемы решение. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 1 час назад, jaffagold сказал: (имитировать нажатие на кнопку)? 1 час назад, jaffagold сказал: Тогда не затрагивается LocalStorage. затрагивается // Product List $('#list-view').click(function() { $('#content .product-grid > .clearfix').remove(); $('#content .row > .product-grid').attr('class', 'product-layout product-list col-xs-12'); $('#grid-view').removeClass('active'); $('#list-view').addClass('active'); localStorage.setItem('display', 'list'); }); // Product Grid $('#grid-view').click(function() { // What a shame bootstrap does not take into account dynamically loaded columns var cols = $('#column-right, #column-left').length; if (cols == 2) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12'); } else if (cols == 1) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12'); } else { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12'); } $('#list-view').removeClass('active'); $('#grid-view').addClass('active'); localStorage.setItem('display', 'grid'); }); Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? И если на странице изменить её то макет сразу изменится?Или всё таки add и remove class это основные двигатели смены макета отображения? Я вижу код примерно так: Categiries.tpl:If categiry id=15,16,17{Remove.class=grid;Add.class=list;Button.active=list;Localstorage=list;}Else{Remove.class=list;Add.class=grid;Button.active=grid;Localstorage=grid}; К слову localstorage можно вообще не трогать, пускай будет дефольным для движка. Есть смысл именно в нужных категориях вызывать add и remove class.С другой стороны как будет работать pagination без locastorage - загадка Надіслати Поділитися на інших сайтах More sharing options... jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 Там ведь помимо класса Grid/List и active есть еще классы разметки Bootstrap. И все это уже написано. Вот только что вам выложили листинг куска стандартного common.js,который отвечает за переключение разметок и работу с locaStorage... Там и клики, и смена класса active, и запись в localStorage выбора посетителя. Не мудрите.. Весь код вам уже дали. Он должен работать. Осталось только проверить. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 49 минут назад, qub сказал: То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? да не строит она куки. это локальное хранилище. в него записывается значение как выводить товары 'display' = 'list' или 'display' = 'grid' 1 час назад, qub сказал: И если на странице изменить её то макет сразу изменится? нет проверка хранилища происходит один раз, при загрузке страницы. в зависимости от значения в хранилище, происходит программное нажатие кнопки, и срабатывает уже скрипт(выше в моем сообщении), меняющий разметку Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 16 минут назад, jaffagold сказал: Там и клики, и смена класса active, и запись в localStorage выбора посетителя. вот именно, нафига что-то изобретать когда уже все есть, нужно только изменять значения display в хранилище, остальное сделают существующие скрипты. Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 В 06.05.2017 в 20:13, fanatic сказал: в контроллере header.php перед добавляем заменить 57 - на нужную категорию шаблон header.tpl перед вставляем Внёс все изменения! Работает в категориях отменно. Правда на других страницах кроме станиц категорий создаёт ошибку: Notice: Undefined index: path in /var/www/u0135691/public_html/system/storage/modification/catalog/controller/common/header.php on line 416 Я так понимаю что он на других страницах не может получить корректный categoty.path отсюда и ошибка. А как можно внедрить if на проверку что это категория а не другая страница? СПАСИБО! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Разобрался на примере соседнего кода в контроллере! Конечный код: // grid or list view if (isset($this->request->get['path'])){ $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 18 or $category_id == 17) { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } } // end if of view Спасибо! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Скажите пожалуйста а есть ли возможность там же обращаться с переменным "сортировка" и "количество товаров на странице" через localstorage? Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 1 час назад, qub сказал: через localstorage? нет, сортировка и количество реализованы по другому. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Grid или list view для разных категорий Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 (змінено) А если из category.php (там ведь определяется штатно category_id) по условию совпадения ID категории передавать служебную переменную непосредственно в category.tpl? Там проверять ее значение и там исполнять скрипт (имитировать нажатие на кнопку)? Сработает? Тогда не затрагивается LocalStorage. Змінено 7 травня 2017 користувачем jaffagold Надіслати Поділитися на інших сайтах More sharing options...
qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 А если из category.php (там ведь определяется штатно category_id) по условию совпадения ID категории передавать служебную переменную непосредственно в category.tpl? Там проверять ее значение и там исполнять скрипт (имитировать нажатие на кнопку)? Сработает? Тогда не затрагивается LocalStorage.Я вот о таком коде и мечтал. Мне кажется, что это было бы самое близкое к центру проблемы решение. Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 1 час назад, jaffagold сказал: (имитировать нажатие на кнопку)? 1 час назад, jaffagold сказал: Тогда не затрагивается LocalStorage. затрагивается // Product List $('#list-view').click(function() { $('#content .product-grid > .clearfix').remove(); $('#content .row > .product-grid').attr('class', 'product-layout product-list col-xs-12'); $('#grid-view').removeClass('active'); $('#list-view').addClass('active'); localStorage.setItem('display', 'list'); }); // Product Grid $('#grid-view').click(function() { // What a shame bootstrap does not take into account dynamically loaded columns var cols = $('#column-right, #column-left').length; if (cols == 2) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12'); } else if (cols == 1) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12'); } else { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12'); } $('#list-view').removeClass('active'); $('#grid-view').addClass('active'); localStorage.setItem('display', 'grid'); }); Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? И если на странице изменить её то макет сразу изменится?Или всё таки add и remove class это основные двигатели смены макета отображения? Я вижу код примерно так: Categiries.tpl:If categiry id=15,16,17{Remove.class=grid;Add.class=list;Button.active=list;Localstorage=list;}Else{Remove.class=list;Add.class=grid;Button.active=grid;Localstorage=grid}; К слову localstorage можно вообще не трогать, пускай будет дефольным для движка. Есть смысл именно в нужных категориях вызывать add и remove class.С другой стороны как будет работать pagination без locastorage - загадка Надіслати Поділитися на інших сайтах More sharing options... jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 Там ведь помимо класса Grid/List и active есть еще классы разметки Bootstrap. И все это уже написано. Вот только что вам выложили листинг куска стандартного common.js,который отвечает за переключение разметок и работу с locaStorage... Там и клики, и смена класса active, и запись в localStorage выбора посетителя. Не мудрите.. Весь код вам уже дали. Он должен работать. Осталось только проверить. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 49 минут назад, qub сказал: То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? да не строит она куки. это локальное хранилище. в него записывается значение как выводить товары 'display' = 'list' или 'display' = 'grid' 1 час назад, qub сказал: И если на странице изменить её то макет сразу изменится? нет проверка хранилища происходит один раз, при загрузке страницы. в зависимости от значения в хранилище, происходит программное нажатие кнопки, и срабатывает уже скрипт(выше в моем сообщении), меняющий разметку Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 16 минут назад, jaffagold сказал: Там и клики, и смена класса active, и запись в localStorage выбора посетителя. вот именно, нафига что-то изобретать когда уже все есть, нужно только изменять значения display в хранилище, остальное сделают существующие скрипты. Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 В 06.05.2017 в 20:13, fanatic сказал: в контроллере header.php перед добавляем заменить 57 - на нужную категорию шаблон header.tpl перед вставляем Внёс все изменения! Работает в категориях отменно. Правда на других страницах кроме станиц категорий создаёт ошибку: Notice: Undefined index: path in /var/www/u0135691/public_html/system/storage/modification/catalog/controller/common/header.php on line 416 Я так понимаю что он на других страницах не может получить корректный categoty.path отсюда и ошибка. А как можно внедрить if на проверку что это категория а не другая страница? СПАСИБО! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Разобрался на примере соседнего кода в контроллере! Конечный код: // grid or list view if (isset($this->request->get['path'])){ $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 18 or $category_id == 17) { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } } // end if of view Спасибо! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Скажите пожалуйста а есть ли возможность там же обращаться с переменным "сортировка" и "количество товаров на странице" через localstorage? Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 1 час назад, qub сказал: через localstorage? нет, сортировка и количество реализованы по другому. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Grid или list view для разных категорий Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
qub Опубліковано: 7 травня 2017 Автор Share Опубліковано: 7 травня 2017 То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? И если на странице изменить её то макет сразу изменится?Или всё таки add и remove class это основные двигатели смены макета отображения? Я вижу код примерно так: Categiries.tpl:If categiry id=15,16,17{Remove.class=grid;Add.class=list;Button.active=list;Localstorage=list;}Else{Remove.class=list;Add.class=grid;Button.active=grid;Localstorage=grid}; К слову localstorage можно вообще не трогать, пускай будет дефольным для движка. Есть смысл именно в нужных категориях вызывать add и remove class.С другой стороны как будет работать pagination без locastorage - загадка Надіслати Поділитися на інших сайтах More sharing options...
jaffagold Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 Там ведь помимо класса Grid/List и active есть еще классы разметки Bootstrap. И все это уже написано. Вот только что вам выложили листинг куска стандартного common.js,который отвечает за переключение разметок и работу с locaStorage... Там и клики, и смена класса active, и запись в localStorage выбора посетителя. Не мудрите.. Весь код вам уже дали. Он должен работать. Осталось только проверить. Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 49 минут назад, qub сказал: То есть localStorage это именно та переменная которая не просто строит куки но и меняет в реалтайме макет? да не строит она куки. это локальное хранилище. в него записывается значение как выводить товары 'display' = 'list' или 'display' = 'grid' 1 час назад, qub сказал: И если на странице изменить её то макет сразу изменится? нет проверка хранилища происходит один раз, при загрузке страницы. в зависимости от значения в хранилище, происходит программное нажатие кнопки, и срабатывает уже скрипт(выше в моем сообщении), меняющий разметку Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 16 минут назад, jaffagold сказал: Там и клики, и смена класса active, и запись в localStorage выбора посетителя. вот именно, нафига что-то изобретать когда уже все есть, нужно только изменять значения display в хранилище, остальное сделают существующие скрипты. Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 В 06.05.2017 в 20:13, fanatic сказал: в контроллере header.php перед добавляем заменить 57 - на нужную категорию шаблон header.tpl перед вставляем Внёс все изменения! Работает в категориях отменно. Правда на других страницах кроме станиц категорий создаёт ошибку: Notice: Undefined index: path in /var/www/u0135691/public_html/system/storage/modification/catalog/controller/common/header.php on line 416 Я так понимаю что он на других страницах не может получить корректный categoty.path отсюда и ошибка. А как можно внедрить if на проверку что это категория а не другая страница? СПАСИБО! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Разобрался на примере соседнего кода в контроллере! Конечный код: // grid or list view if (isset($this->request->get['path'])){ $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 18 or $category_id == 17) { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } } // end if of view Спасибо! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Скажите пожалуйста а есть ли возможность там же обращаться с переменным "сортировка" и "количество товаров на странице" через localstorage? Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 1 час назад, qub сказал: через localstorage? нет, сортировка и количество реализованы по другому. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Grid или list view для разных категорий Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
fanatic Опубліковано: 7 травня 2017 Share Опубліковано: 7 травня 2017 16 минут назад, jaffagold сказал: Там и клики, и смена класса active, и запись в localStorage выбора посетителя. вот именно, нафига что-то изобретать когда уже все есть, нужно только изменять значения display в хранилище, остальное сделают существующие скрипты. Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 В 06.05.2017 в 20:13, fanatic сказал: в контроллере header.php перед добавляем заменить 57 - на нужную категорию шаблон header.tpl перед вставляем Внёс все изменения! Работает в категориях отменно. Правда на других страницах кроме станиц категорий создаёт ошибку: Notice: Undefined index: path in /var/www/u0135691/public_html/system/storage/modification/catalog/controller/common/header.php on line 416 Я так понимаю что он на других страницах не может получить корректный categoty.path отсюда и ошибка. А как можно внедрить if на проверку что это категория а не другая страница? СПАСИБО! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Разобрался на примере соседнего кода в контроллере! Конечный код: // grid or list view if (isset($this->request->get['path'])){ $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 18 or $category_id == 17) { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } } // end if of view Спасибо! Надіслати Поділитися на інших сайтах More sharing options... qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Скажите пожалуйста а есть ли возможность там же обращаться с переменным "сортировка" и "количество товаров на странице" через localstorage? Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 1 час назад, qub сказал: через localstorage? нет, сортировка и количество реализованы по другому. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Grid или list view для разных категорий
qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 В 06.05.2017 в 20:13, fanatic сказал: в контроллере header.php перед добавляем заменить 57 - на нужную категорию шаблон header.tpl перед вставляем Внёс все изменения! Работает в категориях отменно. Правда на других страницах кроме станиц категорий создаёт ошибку: Notice: Undefined index: path in /var/www/u0135691/public_html/system/storage/modification/catalog/controller/common/header.php on line 416 Я так понимаю что он на других страницах не может получить корректный categoty.path отсюда и ошибка. А как можно внедрить if на проверку что это категория а не другая страница? СПАСИБО! Надіслати Поділитися на інших сайтах More sharing options...
qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Разобрался на примере соседнего кода в контроллере! Конечный код: // grid or list view if (isset($this->request->get['path'])){ $parts = explode('_', (string) $this->request->get['path']); $category_id = (int) array_pop($parts); if ($category_id == 18 or $category_id == 17) { $data['script_local'] = "<script>localStorage.setItem('display', 'grid');</script>"; } else { $data['script_local'] = "<script>localStorage.setItem('display', 'list');</script>"; } } // end if of view Спасибо! Надіслати Поділитися на інших сайтах More sharing options...
qub Опубліковано: 8 травня 2017 Автор Share Опубліковано: 8 травня 2017 Скажите пожалуйста а есть ли возможность там же обращаться с переменным "сортировка" и "количество товаров на странице" через localstorage? Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 1 час назад, qub сказал: через localstorage? нет, сортировка и количество реализованы по другому. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
fanatic Опубліковано: 8 травня 2017 Share Опубліковано: 8 травня 2017 (змінено) при выборе, идет переход по ссылки с определенными параметрами ?sort=p.price&order=ASC&limit=25 Змінено 8 травня 2017 користувачем fanatic Надіслати Поділитися на інших сайтах More sharing options... 4 years later... sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
sergei12345 Опубліковано: 29 вересня 2021 Share Опубліковано: 29 вересня 2021 как это для опенкарта 3 можно применить? (поменять сортировку по умолчанию) Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts