Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Мобильная версия сайта Opencart


ocdev_pro

Recommended Posts

Как избавится от постоянно всплывающего окна подтверждения Hello, New user. Появляется при лбом клике и перезагрузке страницы.

 

Простите за мусорный вопрос, все решилось и темы не косается

 

Есть проблема..... при переходе по ссылкам на сайте он поочередно переходит с полной версии на мобильную, так же при обновлении страницы он переключает то на мобильную то полную.

 

Это странно, но возможно у вас куки отключены? а возможно что-то не так сделали... нужно сайт смотреть - пишите в ЛС

Надіслати
Поділитися на інших сайтах

 

Давно пора, сделать какой ни какой моб шаблон с подробным описанием и выставить на продажу, а там тем кто купил оказывать поддержку.

много вопросов по теме. и как обычно не понятно чего куда когда и где)

Надіслати
Поділитися на інших сайтах


Давно пора, сделать какой ни какой моб шаблон с подробным описанием и выставить на продажу, а там тем кто купил оказывать поддержку.

много вопросов по теме. и как обычно не понятно чего куда когда и где)

Реально нету времени на такое)))) а так теоретически возможно

Надіслати
Поділитися на інших сайтах

Реально нету времени на такое)))) а так теоретически возможно

Давайте давайте)

я на прошлых страницах спрашивал чего и как, так вы сказали что забили на всё.

терь вот захожу а тут целый теоретический холивар растянулся на всю тему) Пора выводить на практику)

Надіслати
Поділитися на інших сайтах


Давно пора, сделать какой ни какой моб шаблон с подробным описанием и выставить на продажу, а там тем кто купил оказывать поддержку.

много вопросов по теме. и как обычно не понятно чего куда когда и где)

 

Потихоньку занимаюсь, хочу сделать именно шаблон + переключатель, сначала для своих целей, насчет продажи и не думал пока. Единственно что пока тормозит, все никак не могу понять, может просто переходить на 2-ю версию, в принципе там неплохая адаптивная верстка. Есть конечно кривые моменты именно на мобильных девайсах. 

Или 1.5 еще долго будет боевым движком? Вы вот как считаете?

Надіслати
Поділитися на інших сайтах


Потихоньку занимаюсь, хочу сделать именно шаблон + переключатель, сначала для своих целей, насчет продажи и не думал пока. Единственно что пока тормозит, все никак не могу понять, может просто переходить на 2-ю версию, в принципе там неплохая адаптивная верстка. Есть конечно кривые моменты именно на мобильных девайсах. 

Или 1.5 еще долго будет боевым движком? Вы вот как считаете?

есть проект где я до сих пор ещё 1.5.3.1 использую ;)

кому то в лом перепиливать под 2.0

проще моб версию замутить..

мнеб лично понять как переключалку сделать и всё.

а там срезал правый и левый сайд бар вот те и моб версия))

 

Надіслати
Поділитися на інших сайтах


мнеб лично понять как переключалку сделать и всё.

 

 

Вообще автор показал переключатель, за что ему респект.

 

Но я сделал немного по-другому

Задача

1. Юзер зашел с десктопа. -> Загружается стандартный шаблон. В футере нет ссылки на мобильную версию.

2. Юзер зашел с мобильного. -> Загружается мобильный шаблон. В футере ссылка на полную версию

 - Юзер тапнул по ссылке "на полную" -> Загрузился стандартный шаблон.

 - Юзер тапнул по ссылке "на мобильную" -> Загрузился мобильный шаблон.

 

Пошагово (часть повтор первого поста автора темы)

1. в папку /catalog/view/theme заливаем папку с шаблонами с именем 'mobile_theme'. 

2. в папку /system/library/ файл mobile_detect.php (есть в первом сообщении темы и во всех интернетах)

3. в файл /cart/system/startup.php добавляем в раздел //common

$detect = new Mobile_Detect(); 
define('isMobile', $detect->isMobile(), false);
define('isTablet', $detect->isTablet(), false);

4. В файле /system/library/config.php я сделал по-своему, это чтобы мобильный юзер мог прыгать туда-сюда. Заменить функцию public function get($key)

  	public function get($key) {
  		  		
  		if ($key == "config_template") {
				if (isMobile && !isTablet) {
					
					if (!isset($_GET['ver']) && !isset($_COOKIE['ver'])) {
						return (isset($this->data[$key]) ? 'mobile_theme' : null);
					}
					
					if (isset($_GET['ver']) ) {
						setcookie('ver', $_GET['ver'], time() + 86400, '/', '.www.АДРЕС_САЙТА.ru'); 
						if ($_GET['ver'] == 'mobile') {
							return (isset($this->data[$key]) ? 'mobile_theme' : null); 
						} else {
							return (isset($this->data[$key]) ? $this->data[$key] : null);
						}
						
					}
					
					if (isset($_COOKIE['ver']) && $_COOKIE['ver'] != 'full') {
						return (isset($this->data[$key]) ? 'mobile_theme' : null); 
					}
	  			}  				
		}  				
		
    	return (isset($this->data[$key]) ? $this->data[$key] : null);
  	}	

4. в файле /catalog/view/theme/default/template/common/footer.tpl добавляем ссылку на мобильную, если юзер сидит с мобильного

  <div class="column">
    <h3><?php echo $text_account; ?></h3>
    <ul>
      <li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
      <li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
      <li><a href="<?php echo $wishlist; ?>"><?php echo $text_wishlist; ?></a></li>
      <li><a href="<?php echo $newsletter; ?>"><?php echo $text_newsletter; ?></a></li>
      //сслыка на мобильную если юзер на полной версии с мобильного
      <?php if (isMobile && !isTablet) { ?>
      <li><a href="<?php echo $home . '&ver=mobile'; ?>">На мобильную версию</a></li>
      <?php }?>
    </ul>
  </div>

5. в файле /catalog/controller/common/footer.php добавить

 

$this->data['home'] = $this->url->link('common/home');

6. в файле /catalog/view/theme/mobile_theme/template/common/footer.tpl добавляем ссылку на полную версию

	<div class="box">
	  <div class="box-heading"><?php echo $text_extra; ?></div>
		<ul class="link_list">
		  <li><a href="<?php echo $manufacturer; ?>"><?php echo $text_manufacturer; ?></a></li>
		  <li><a href="<?php echo $voucher; ?>"><?php echo $text_voucher; ?></a></li>
		  <li><a href="<?php echo $affiliate; ?>"><?php echo $text_affiliate; ?></a></li>
		  <li><a href="<?php echo $special; ?>"><?php echo $text_special; ?></a></li>
		  //ссылка на полную
                  <li><a href="<?php echo $home . '&ver=full'; ?>">На полную версию</a></li>
		</ul>
	</div>
Змінено користувачем mmicha
Надіслати
Поділитися на інших сайтах


 

 

Пошагово (часть повтор первого поста автора темы)

1. в папку /catalog/view/theme заливаем папку с шаблонами с именем 'mobile_theme'. 

2. в папку /system/library/ файл mobile_detect.php (есть в первом сообщении темы и во всех интернетах)

3. в файл /cart/system/startup.php добавляем в раздел //common

$detect = new Mobile_Detect();
define('isMobile', $detect->isMobile(), false);
define('isTablet', $detect->isTablet(), false);

 

Надо ли прописывать что-то в файле index.php ?

 

Пробовал кучу разных вариантов, комбинировал Ваш метод с методом от Waha, но все равно, при заходе на сайт с мобильного получаю белый пустой экран ((

Змінено користувачем drewz
Надіслати
Поділитися на інших сайтах


 

 
 

 

Надо ли прописывать что-то в файле index.php ?

 

Пробовал кучу разных вариантов, комбинировал Ваш метод с методом от Waha, но все равно, при заходе на сайт с мобильного получаю белый пустой экран ((

 

Значит попробуйте как описано у меня в начале темы и внимательно все читайте.. Рекомендую постоянно мониторить лог ошибок там есть все ответы))

Надіслати
Поділитися на інших сайтах

Конечно смотреть лог ошибок.

 

Надо ли прописывать что-то в файле index.php ?

 

Пробовал кучу разных вариантов, комбинировал Ваш метод с методом от Waha, но все равно, при заходе на сайт с мобильного получаю белый пустой экран ((

 

В index.php ничего не надо. 

Конечно смотреть лог ошибок. Но можно для начала, вручную, в админке переключится на мобильный шаблон, просто проверить, что он работает. 

Надіслати
Поділитися на інших сайтах


Но можно для начала, вручную, в админке переключится на мобильный шаблон, просто проверить, что он работает.

Это был прекрасный совет! Шаблон таки был кривоват )))

Теперь сайт открывается и на мобильном.

Сделал по методу Waha. Но в index.php у меня следующий код, с которым все-таки заработало:

 

//Mobile
        if(isMobile && !isTablet && $_COOKIE['ver'] !== 'full'){
             $config->set('config_template', 'sb_mobile_theme');
        }elseif(isMobile && !isTablet && $_COOKIE['ver'] == 'full'){
             $config->set('config_template', 'sb_mobile_theme');
        } 
 

В обоих случаях должна загружаться мобильная версия, но при заходе с десктопа грузиться нормальная страница.

Также, в логе ошибок при "чистом" заходе на мобильную версию появляется ошибка:

PHP Notice: Undefined index: ver in /****/www/index.php on line 206

Змінено користувачем drewz
Надіслати
Поділитися на інших сайтах


mmicha,  Если я все правильно понял, то в итоге код должен выглядеть так: ?

if (!isset($_COOKIE['ver']) {
        if(isMobile && !isTablet && $_COOKIE['ver'] !== 'full'){
             $config->set('config_template', 'sb_mobile_theme');
        }elseif(isMobile && !isTablet && $_COOKIE['ver'] == 'full'){
             $config->set('config_template', 'sb_mobile_theme');
        } 
}

В таком случае выбивает общую ошибку:

 

Parse error: syntax error, unexpected '{' in /*****/www/index.php on line 207

 

Заранее спасибо

Надіслати
Поділитися на інших сайтах


Сори, я там закрывающую скобку забыл, когда говорил, что надо проверить куки 

 

Не правильно

  1. if (!isset($_COOKIE['ver']) {

 

Правильно

 

  1. if (!isset($_COOKIE['ver'])) {

 

Вы делаете проверку на то что куки не записаны, в этом случае зачем проверять значение индекса 

$_COOKIE['ver']

 

И еще надо прописать, что выполняется если куки записаны. Например, если по-вашему, сначала проверим случай что куки записаны

if (isset($_COOKIE['ver'])) {
        if(isMobile && !isTablet && $_COOKIE['ver'] !== 'full'){
             $config->set('config_template', 'sb_mobile_theme');
        }elseif(isMobile && !isTablet && $_COOKIE['ver'] == 'full'){
             $config->set('config_template', 'sb_mobile_theme');
        } 
} else {
// что делаем если куки не записаны
}

Только я не совсем понимаю этот подход, у вас что, каждый юзер будет переписывать конфиг? Я не такой уж гуру в opencart, но на первый взгляд, это так и будет, ведь у вас например

209. $config->set('config_template', 'sb_mobile_theme');
Змінено користувачем mmicha
Надіслати
Поділитися на інших сайтах


Честно говоря, я взял код из первого поста от Waha:

//Mobile
        if(isMobile && !isTablet && $_COOKIE['ver'] !== 'full'){
             $config->set('config_template', 'default_mobile');
        }elseif(isMobile && !isTablet && $_COOKIE['ver'] == 'full'){
             $config->set('config_template', 'default');
        } 

Ответ на вопрос по поводу "что делать, если куки не записаны", наверное будет - записать куки в зависимости от того, через какой девайс зашел пользователь.

Но ведь это действие уже происходит в файле с шаблоном  :unsure:

 

 

- добавляем запись куки mobile в мобильном шаблоне

 

<?php setcookie('ver', 'mobile', time() + 60 * 60 * 24 * 30, '/'); ?>

- добавляем запись куки full в обычном шаблоне
 

<?php setcookie('ver', 'full', time() + 60 * 60 * 24 * 30, '/'); ?>
Надіслати
Поділитися на інших сайтах


Но ведь это действие уже происходит в файле с шаблоном  :unsure:

 

 

Ну вот я и предлагал свой вариант переключали, где фактически все происходит в config.php.

В файлах шаблона добавляются только ссылки, чтобы передать версию, на которую хочет переключиться юзер. Не исключаю, что не вижу каких-то подводных камней.

Повторюсь, мне не совсем понятно это, в том варианте, который вы показываете.

$config->set('config_template', 'sb_mobile_theme');
Надіслати
Поділитися на інших сайтах


 

Ну вот я и предлагал свой вариант переключали, где фактически все происходит в config.php.

В файлах шаблона добавляются только ссылки, чтобы передать версию, на которую хочет переключиться юзер. Не исключаю, что не вижу каких-то подводных камней.

 

Сделал все, как написано в Вашем способе. Все работает.

+ еще добавил в catalog/controller/common/footer.php описание переменной $home, поскольку его там не было.

Ошибок никаких нет.

 

Но, при переходе из мобильной версии на полную и наоборот, пользователя перебрасывает таки на соответствующую тему, но на страницу "Запрашиваемая страница не найдена"  :(

Надіслати
Поділитися на інших сайтах


У меня там есть одно место, где я поленился сделать по уму, но выделил большими буквами, не исключено, что вы этот момен упустили:

Что в этой строке

setcookie('ver', $_GET['ver'], time() + 86400, '/', '.www.АДРЕС_САЙТА.ru');

Адрес сайта ручками надо, не забыли?

Извиняюсь что код без форматирования, пишу с мобильной версии :)

Надіслати
Поділитися на інших сайтах


Забыл я таки одну вещь, когда делал степ-бай-степ

Если линки переходов делаете как у меня, конечно надо в контроллере футера добавить строку:

файл

/catalog/controller/common/footer.php

$this->data['home'] = $this->url->link('common/home');
Надіслати
Поділитися на інших сайтах


ну тогда, еще один каверзный момент.  Там где пишутся куки и адрес сайт ручками, перед www точно не забыли?

 

Когда в лоб заходите с мобильного, нужный шаблон грузится?

 

Если хотите, выкладывайте сюда файлы переключателя в архиве, погляжу, самому интересно, что у вас не переключается.

Надіслати
Поділитися на інших сайтах


ну тогда, еще один каверзный момент.  Там где пишутся куки и адрес сайт ручками, перед www точно не забыли?

 

Когда в лоб заходите с мобильного, нужный шаблон грузится?

 

Если хотите, выкладывайте сюда файлы переключателя в архиве, погляжу, самому интересно, что у вас не переключается.

Ребята сюда выкладывать ничего не надо, если хотите в 2м решить свою проблему решайте в личной переписке.. Спасибо

Надіслати
Поділитися на інших сайтах

  • 1 month later...

3. в файл /cart/system/startup.php добавляем в раздел //common

$detect = new Mobile_Detect(); define('isMobile', $detect->isMobile(), false);define('isTablet', $detect->isTablet(), false);

Для тех, кто как я сделал по инструкции, но получил в ответ белый экран,

попробуйте это:

1. в тексте опечатка.

3. в файл /cart/system/startup.php добавляем в раздел //common

 

2. Там-же перед строкой

$detect = new Mobile_Detect();

сделайте запрос на скрипт:

require_once(DIR_SYSTEM . 'library/Mobile_Detect.php');

И всё должно заработать.

Спасибо всем, кто отписался в теме!

 

PS. Свежий файлик скачать можно тут http://mobiledetect.net/

Змінено користувачем bezzubtsev
Надіслати
Поділитися на інших сайтах


Ещё раз спасибо за скрипты!

Оставлю это сдесь. Код можно вставить в любой tpl (например на страницу продукта). Надписи можете заменить своим кодом.

Например, я для мобильных телефонов отключил colorbox

<?php $detect = new Mobile_Detect;
if ( $detect->isMobile() ) { ?>
Ok, mobile
<?php } else { ?>
 No, not mobile
<?php } ?>
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.