Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


ocdev_pro
 Погделиться

Рекомендованные сообещёния

Как избавится от постоянно всплываюещёго окна подтвержгдения 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
Ссылка на комменирий
Погделиться на других сайих


И правильно что появляется. 

Нужна проверка случая, когда куки еещё не записаны. 

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

 

}

Ссылка на комменирий
Погделиться на других сайих


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 месяц спустя...

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 } ?>
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.