-
Публікації
2 022 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем ocdev_pro
-
-
Есть один ёмкий ответ:
Обратите внимание на принцип "моблизации" "apple"
Сайт должен выглядеть одинаково во всех браузерах, даже мобильных, чтобы не вводить в ступор пользователей. Это основа юзабилити. Так что минус жирный
Вы хоть сами понимаете о чем речь идет. "Минус жирный" :ugeek: - смешно.
А причем тут вид в браузерах, это к мобилизации не имеет никакого отношения - это кроссбраузерность, а не мобильность. А у нас тут речь именно о мобильности.
И об отображении сайта в мобильных браузерах речи вообще не было.
Если руки не из *опы верстайте правильно и будет одинаково везде. Но здесь затронута тема именно мобильной версии сайта которая априори не может быть идентичной с полной версией.
Я предоставил идею и реализацию мобильной версии сайта, a также толчок для развития мобильности Opencart. Использовать эти бесплатные знания дело каждого и предел применения ограничивается только фантазией разработчика.
Так что свои тупые ответы наполнены смыслом "я один такой крутой, а автор темы толкает гавно" оставь при себе 8-).
-
1
-
-
Почему? Либо в конфигах пути к картинкам поменять, либо симлинк сделать. Какие проблемы?
Ага есть такое...я пробовал ранее, то при смене в конфиге адреса к папке с картинками ничего не произошло, так как картинки он берет с кеша, а для кеша ссылка относительно того домена на котором непосредственно лежит сайт...вот тут я и застрял. А симлинк, если честно я не знаю как с ним работать...
-
Решение наверное хорошее, но:
стоило ли в таком случае возиться с отдельной мобильной версией, когда этого же можно было достичь через обычную адаптивную верстку?
Все сложно, сначала хотели отдельную мобильную версию, но вроде 2 шопа в разных папках на 1 хосте, но на разных доменах, не могут работать с картинками товаров только из одного шопа (то есть они у каждого свои должны быть), ну а переписывать систему записи кеша и формирование ссылок на картинки я ну уж очень не захотел. Да и в дизайне выходило так, что контроллеры у стандартной версии и у мобильной должны слегка разную инфу выводить.
А с мобильной версией как подмена шаблона до меня доперло лишь на 3е сутки с переадресацией на m.mystore.ru
Вообщем как сделал, что бы на моб версии контроллеры выполняли какие нить другие функции, я использовал if с isMobile и соответственно сделал условия на отдельные функции, если обычная, то выполняем это, если моб то только то что для моб версии.
Таким образом функциональная часть мобильной версии немного иная, скажем отсутствие фильтров, некоторых других модулей, отображение картинок в карточке товара как слайдшоу заточенного под тач девайсы и так далее. много всего. Кардинально отошли от того, что нарисовали изначально и сделали лучше )))
Конечно если бы надо было делать адаптивку, то там все ограничилось в js и css. Но тут правда и деньги другие чем за адаптивку, есть где разгуляться и немного по чудить.
Скажем так мой первый опыт разработки именно мобильной версии на opencart, принес немного неожиданные плоды! Поскольку работаю по NDA, то не могу показать что вышло.
-
Редирект в корень мобильного сайта - очень плохая практика, мобильные пользователи её ненавидят.
Приходишь так из результатов поиска, ссылки в письме, из закладок по релевантной ссылке с телефона, а попадаешь хрен знает куда.
Думаю, URN сохранить несложно, если структура сайта совпадает.
В моем случае структура совпадает, скажу даже больше у мобильного шопа одна и таже база с обычным магазином, и в добавок нет админки, только через js удалены и реструктурированы блоки в верстке.
А вот с URN можно подробнее...я еще не сильно хороший кодер..
-
Все мы знаем как популярны сейчас responsive (адаптивные) шаблоны и все так современно и удобно с ними, что как бы мобильную версию магазина и не надо.
Но у меня возникла необходимость реализовать именно мобильную версию сайта с переходом на поддомен m.domain.com, как это сделано на lamoda.ru (m.lamoda.ru работает только с моб. девайсов).
Нужно было сделать, моб.версию магазина с одинаковой базой товаров и категорий, но естественно с другим отображением и с возможностью перейти на полную версию магазина с мобильного устройства и обратно.
Что было сделано:
Определение с какого устройства зашел пользователь - был использован php class Mobile_Detect.php (https://github.com/serbanghita/Mobile-Detect)
1. Добавление библиотеки
- файл mobile_detect.php залить в папку system/library
- в файле system/startup.php после строки library/config.php подключаем mobile_detect.php
require_once(DIR_SYSTEM . 'library/Mobile_Detect.php'); $detect = new Mobile_Detect(); define('isMobile', $detect->isMobile(), false);//Это используем define('isTablet', $detect->isTablet(), false); //Это используем //Остальные в принципе не нужны define('isiOS', $detect->isiOS(), false); define('isAndroidOS', $detect->isAndroidOS(), false);
isMobile, isTablet - определяет тип устройства - телефон или планшет
isiOS, isAndroindOS, isBlackBerryOS, isSymbainOS, isWindowsPhoneOS и так далее - определяет ОС посетителя (если не собератетесь делать моб.версию под отдельную ОС, можете не использовать вообще =) )
2. Определение устройства посетителя и редирект на поддомен (лично я не использую этот способ)
-
Далее будем использовать эти константы (isMobile...)для действий переадресации на моб. версию -
теперь в контроллере header.php после protected function index() { пишем следующее
$detect = new Mobile_Detect(); if ($detect->isMobile()){ if (isset($this->request->server['HTTPS'])) { $mobile_redirect = 'https://m.mystore.com'; } else { $mobile_redirect = 'http://m.mystore.com'; } if ($_SERVER['REQUEST_URI']) $mobile_redirect .= html_entity_decode($_SERVER['REQUEST_URI']); header('Location: '.$mobile_redirect); }
Это собственно и заставит перенаправить пользователя на мобильную версию (или другой URL), если он зашел с мобильного. С условиями можете сами крутить
- detect->isMobile() - только для мобильных
- $detect->isTablet() - только для планшетов
- $detect->isMobile() || $detect->isTablet() - для обоих и так далее
Это первый вариант (не очень удачный), когда пользователь попадает на мобильную версию, то обратно на полную не зайдет.
Решение для перехода обратно, путем записи параметра в COOKIE.
Вместо кода предложенного выше в контроллере header.php после protected function index() { пишем$detect = new Mobile_Detect(); if($detect->isMobile()) { if (isset($this->request->server['HTTPS'])) { $mobile_redirect = 'https://m.mystore.com'; } else { $mobile_redirect = 'http://m.mystore.com'; } if(isset($_REQUEST['ver']) and $_REQUEST['ver'] === 'full') { if(empty($_COOKIE['ver'])) setcookie('ver', 'full', time() + 86400, '/', '.mystore.com'); //будет работать для всех поддоменов, подробнее читайте на php.su setcookie() } else { header('Location: '.$mobile_redirect); } }
В этом случае _mobile (префикс шаблона который стоит по умолчанию), то есть если папка с шаблоном по-умолчанию (для полной версии) 'default', а для мобильной соответственно 'default_mobile'
На мобильной версии можете разместить ссылку на полную страницу по типу<a href="http://mystore.com/?ver=full">Полная версия</a>
где ?ver=full - параметр что мы записали в куки.
Вроде все.
P.S Есть еще вариант сделать это через .htaccess - работает безотказно, но придется перечислить весь список мобильных девайсов ну и в полную версию вернуться нельзя.
Решение для тех кому просто нужна смена шаблона в зависимости от устройства без поддомена (Работает на живом сайте paffos ru)1. Добавляем библиотеку MobileDetect как это было описано выше в п.1
2. Затем в корне сайта в файле index.php перед
// Currency $registry->set('currency', new Currency($registry));
добавляем
//Mobile if(isMobile && !isTablet && $_COOKIE['ver'] !== 'full'){ $config->set('config_template', 'default_mobile'); }elseif(isMobile && !isTablet && $_COOKIE['ver'] == 'full'){ $config->set('config_template', 'default'); }
Так мы определим устройство того кто зашел и в случае если он зашел с телефона (не с планшета) мы проверяем наличие куки ver и ее значение, если значение не Full, то грузим шаблон default_mobile, в противном случае грузим шаблон default
3. При заходе на шаблон нам нужно записать куки, что бы пользователя не кидало на неверный сразу же и при последующих заходах (если не чистили куки в браузере)
В файле header.tpl каждого шаблона перед
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default_mobile/stylesheet/stylesheet.css" />
- добавляем запись куки mobile в мобильном шаблоне
<?php setcookie('ver', 'mobile', time() + 60 * 60 * 24 * 30, '/'); ?>
- добавляем запись куки full в обычном шаблоне
<?php setcookie('ver', 'full', time() + 60 * 60 * 24 * 30, '/'); ?>
4. Если же пользователю надо дать возможность переходить с мобильной версии на полную и наоборот.
В контроллере footer.php добавляем запись для проверки отображать нам кнопку переход в полную версию или нет (В примере условие только для мобильных)
if(isMobile && !isTablet){ $this->data['gofull'] = true; }else{ $this->data['gofull'] = false; }
В файле footer.tpl каждого шаблона где вам удобно:
- добавляем кнопки перехода в полную версию для mobile шаблона
<div class="ver">Перейти на: <span id="gofull">Полный сайт</span></div>
- добавляем кнопки перехода в мобильную версию для default шаблона
<?php if($gofull){ ?> Перейти на: <span id="gofull">Мобильную версию</span> <?php } ?>
- в файле common.js после
$(document).ready(function() {
добавляем
$('#gofull').on('tap click touchstart', function(){ $.cookie('ver', 'mobile', { expires: 1, path: '/' }); location.reload(); });
При клике на элемент с id="gofull" будет срабатывать на всех устройствах переход либо в полную версию либо обратно.
Возможно местами это костыли, зато работает и проверено на живом магазине с большой посещалкой в сезон.
Всем спасибо. Благодарности принимаю в денежном эквиваленте 2 чашек кофе 8-) ))
Если тема актуальна буду рад дальнейшему развитию и усовершенствованию решения, потому-что прибегать к использованию коммерческих буржуйских решений Opencart Mobile Framework или Omtex Mobile Template не очень удобно, так как нужно перепиливать готовый дизайн под себя. И нет ничего хуже ковырять чужой код.
-
15
-
Нашел еще 1 небольшой косяк
При постраничной навигации в категориях (или производителях не важно) при переходе скажем на страницу №3 ссылки назад "<" и в начало "|<", они сливаются.
Решение: в файле system/library/pagination.php строка 38 строка '</a>'; В конце пробел добавить '</a> ';
-
При добавлении товара в корзину у нас вылазит блок success и уведомляет о том что товар добавлен в корзину, закрывается при нажатии на крестик.
Крестик это картинка с классом "close"
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
Что обрабатывает class="close", что бы блок success исчез?
-
Это да, в браузере я могу изменить цвет :-)
А так, чтобы грузилось с ним... как-то нет.
...грусть печаль. Учите html+css
-
Это потому что на версии 1.5.5.1 есть уже свой фильтр (во всех предыдущих не было) и автор видимо просто забил на проект, так как на новых версиях модуль не работает
-
В версии 1.5.5.1 работает немножко с другим кодом
function addToCartQuick(product_id, quantity) { quantity = typeof(quantity) != 'undefined' ? quantity : 1; $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, .information, .error').remove(); window.location.href = 'index.php?route=checkout/cart'; } }); }
-
Waha, Огромное спасибо тебе за фикс, выручил. Я уже голову сломал с этими категориями)
Нз)
-
А где взять бета-тестеров? Только не говорите, что все прям кинутся тестировать.
Я же написал, "решение для себя, делать тестирование"
-
Спасибо), но вот в этом случае сортировка в обратном порядке идет, с конца))
-
Только заметил вот какой косяк, при добавлении товара, во вкладке Связи, в полях - Главная категория, Показывать в категориях - нарушена сортировка категорий, в версии 1.5.4.1 все хорошо было.
в 1.5.4.1 - Сортировка идет
Категория родитель
- вложенная
- вложенная
Категория родитель 2
- вложенная....
Начиная с 1.5.5.1
Сортировка непонятная совсем((( И Заданный порядок сортировки в категориях не срабатывает в этих полях при добавлении товара.
Было замечено минимум на 5 сайтах
Решение для себя, не в обиду разработчика релиза, но надо запускать отдельный бета тест на выявление ошибок.
Решение проблемой с сортировкой описанной выше:
в файле admin/controller/catalog/product.php
Заменяем код с строки 1283 по 1304 на следующее:
$this->load->model('catalog/category'); $categories = $this->model_catalog_category->getAllCategories(); $this->data['categories'] = $this->getAllCategories($categories); if (isset($this->request->post['main_category_id'])) { $this->data['main_category_id'] = $this->request->post['main_category_id']; } elseif (isset($product_info)) { $this->data['main_category_id'] = $this->model_catalog_product->getProductMainCategoryId($this->request->get['product_id']); } else { $this->data['main_category_id'] = 0; } if (isset($this->request->post['product_category'])) { $this->data['product_category'] = $this->request->post['product_category']; } elseif (isset($this->request->get['product_id'])) { $this->data['product_category'] = $this->model_catalog_product->getProductCategories($this->request->get['product_id']); } else { $this->data['product_category'] = array(); }
и в конце файла перед 1709 строкой } ?> добавляем:
private function getAllCategories($categories, $parent_id = 0, $parent_name = '') { $output = array(); if (array_key_exists($parent_id, $categories)) { if ($parent_name != '') { $parent_name .= $this->language->get('text_separator'); } foreach ($categories[$parent_id] as $category) { $output[$category['category_id']] = array( 'category_id' => $category['category_id'], 'name' => $parent_name . $category['name'] ); $output += $this->getAllCategories($categories, $category['category_id'], $parent_name . $category['name']); } } return $output; }
Дернул с контролера 1.5.4.1 так как там работает! спасибо за внимание.
-
Только заметил вот какой косяк, при добавлении товара, во вкладке Связи, в полях - Главная категория, Показывать в категориях - нарушена сортировка категорий, в версии 1.5.4.1 все хорошо было.
в 1.5.4.1 - Сортировка идет
Категория родитель
- вложенная- вложенная
Категория родитель 2
- вложенная....
Начиная с 1.5.5.1
Сортировка непонятная совсем((( И Заданный порядок сортировки в категориях не срабатывает в этих полях при добавлении товара.
Было замечено минимум на 5 сайтах
-
Сделали с горем пополам.
-
сделать поддоменный тип магазина а не подкаталогом... то есть не domain.com/shop а shop.domain.com
Да спасибо, но этот вариант не подходит для сеошников.
-
Начинающий?
Не хрена себе.
Я создаю сайты в отличи от Вас не барижничаю.
P.S дела не в 150 рублях возврать не прощу. Чтоб другие знали пережде чем покупать.
Молодой человек, прежде чем бить себя в грудь и говорить"Да я, да то", ВНИМАТЕЛЬНО читайте что вам пишут! Где вы увидели слово "начинающий" ?. Если ваши эмоции не позволяют вам адекватно работать и оценивать ситуацию, обратитесь к специалисту, думаю поможет. Да и еще судя по количеству допущенных грамматических ошибок, могу предположить, что сайты у вас точно такие же.
В дальнейшем продолжении нашей дискуссии не вижу смысла. Всего доброго.
-
Че за фигня?
Отображается товары одной категории на всех категориях.
Например включил отображаение в подвале странице категории - товары из категории 3 тперь эти товары отображается на все категориях в подвале.
И Демо не то, что в файлах.
Чушь полный.
С претензиями начинающимися со слов "Че за фигня?", принципиально отвечать не буду. Рекомендую воздержатся от подобных высказываний и вопросы по работе модуля формировать более конструктивно.
И еще раз, внимательно читайте описание модуля, что он делает!!! Модуль выводит товары из категории которую вы выбрали в настройках модуля в админ панели, без постраничной навигации.
-
Все круто, вот только я не гуру .htaccess, при установке RewriteBase /shop (папка где находиться магазин), браузер выдает сообщение об Бесконечной переадресации.
-
сделать поддоменный тип магазина а не подкаталогом... то есть не domain.com/shop а shop.domain.com
Это был бы один из самых простых путей, но SEO специалисты сказали, именно так надо, так лучшее в продвижении.
-
Есть основной сайт на wordpress domain.com и магазин на opencart в папке shop (domain.com/shop)
Ссылки формируются по типу /shop/cvety (Как ссылка выглядят domain.com/shop/cvety) соответственно срабатывает wordpress чпу и выдает, что страница не существует.
Как разделить ЧПУ?! -
У меня не сработал данный способ, версия osstore 1541, сделал всё 1 в 1, создал лейаут, ид16, подключил категорию на этот лейаут, отредактировал category.php
в результате выводится тот же самый шаблон category.tpl, а subcategory.tpl нет.
upd в версии 1541 нужно менять строки 350 в шаблоне category.php
всё подключилось!
Спасибо за тестирование на 1541, я на нем не проверял (только на 1551)
-
Сегодня купил модуль!
выдает ошибку
Вот на что он жалуется
Как решить вопрос?
Читать инструкцию к модулю! ...нужно добавить указанный код из инструкции в модель model/catalog/product.php
Мобильная версия сайта Opencart
в Мобильная витрина
Опубліковано:
Да это без проблем)) Кому как надо будет так и сделает, я всего лишь предоставил решение через которое можно очень много интересного сделать. В том числе аналогичную штуку как в Магенто, это тоже можно.