[OPGELOST] Mobile Detect - Mobiele website

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

[OPGELOST] Mobile Detect - Mobiele website

Post by brentnl »

Ik heb een scriptje gevonden om een mobile browser te detecteren met daarbij de optie om middels een cookie te switchen tussen desktop/mobiele versie van de website.

Echter krijg ik dit middels een UDT niet werkend op de site.

Code: Select all

     if (isset($_COOKIE['nomobile'])) {
      $version = "desktop";
    } else {

    if (preg_match('/iPhone|(...etc...)/', $_SERVER['HTTP_USER_AGENT'])) {
       $version = "mobile";
    } 

if ($version == "mobile") {
header('Location: http://yourwebsite.com/mobile');
}

En dan moet er ook nog een linkje komen om te switchen tussen mobiel en desktop. Daar is deze code voor, maar ik weet niet goed hoe ik dat moet gebruiken.

Code: Select all

<?php 
setcookie('nomobile', 'true');
   header('Location: http://yourwebsite.com');
?>
Last edited by brentnl on Sat Apr 20, 2013 3:44 pm, edited 1 time in total.
brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

Re: Mobile Detect - Mobiele website

Post by brentnl »

Het script kwam van deze en deze pagina af.
Het mag ook een ander script zijn, als ik mensen maar automatisch door kan laten verwijzen naar een mobiele variant van de website + ze de optie kan geven (middels een sessie/cookie etc) om toch de desktop-versie te zien.
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Mobile Detect - Mobiele website

Post by janvl »

pasmaskas
Power Poster
Power Poster
Posts: 509
Joined: Tue Nov 29, 2011 10:42 am

Re: Mobile Detect - Mobiele website

Post by pasmaskas »

Ik gebruik dit op een website.

Dit op desktop website in de <header> tag:

Code: Select all

<__script__ type="text/javascript" src="/mobiel.js"></__script>
<__script__ type="text/javascript">
if (!document.location.search.match(/\bfull=1\b/)) {
    vSwitchToMobile("http://www.website.nl/mobiel");
}
</__script>
En dit in het "mobiel.js" bestandje dat je dan moet uploaden naar de root van je website.

Code: Select all

/**
 * Test of de browser op een telefoon draait
 * 
 * @returns boolean					true = mobiel, false = geen mobiel
 * @since 1.0.0 - 12 november 2012
 * @auhtor http://www.mobile247.eu
 */
function bTestForPhone() {
	var aSmartPhoneUserAgentStrings = new Array('iPhone', 'Nokia', 'MOT', 'Android', 'PalmSource', 'webOS', 'SAMSUNG', 'SonyEricsson', 'LG', 'HTC', 'BlackBerry', 'Windows Phone');
	for (var i=0; i < aSmartPhoneUserAgentStrings.length; ++i ) {
		var oRegularExpression = new RegExp(aSmartPhoneUserAgentStrings[i], "i");
		if (navigator.userAgent.match(oRegularExpression)) return true;
	}
	return false;
}

/**
 * Toont een alert als de gebruikte browser op een mobiele telefoon draait
 * 
 * @param a_sMessageMobile			de melding die getoond wordt indien een mobiel gedetecteerd wordt
 * @param a_sMessageDesktop			de melding die getoond wordt indien geen mobiel gedetecteerd wordt
 * @since 1.0.0 - 12 november 2012
 * @auhtor http://www.mobile247.eu
 */
function vAlertOnPhone(a_sMessageMobile, a_sMessageDesktop) {
	if (bTestForPhone()) alert(a_sMessageMobile);
	else alert(a_sMessageDesktop);
}

/**
 * Schakelt over naar mobiel indien nodig
 * 
 * @param a_sMobileDomain			het domein van de mobiele website
 * @since 1.0.0 - 12 november 2012
 * @auhtor http://www.mobile247.eu
 */
function vSwitchToMobile(a_sMobileDomain) {
	if (bTestForPhone()) document.location = a_sMobileDomain;
}

De link naar de mobiele website is dan http://www.website.nl/mobiel en naar de desktop versie http://www.website.nl/?full=1 dit moet je dan even wijzigen naar de juiste URL voor jou website. Allen in de terug link naar de desktop versie moet ?full=1 achter de url staan.

Het scriptje kijkt of je op een mobieltje/mobiele browser zit en schakelt over naar de mobiele website. Om te voorkomen dat hij die blijft doen zit er een soort rem in het script door "?full=1" er achter te zetten doet hij dat niet meer.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Mobile Detect - Mobiele website

Post by velden »

Maar als ik het goed lees test dit stukje javascript het bij elke pagina opnieuw en slaat het niks op in een cookie ofzo.

Dus ik zou verwachten dat wanneer je met een mobiel device kiest voor de desktop-versie, je bij elke vervolgpagina toch weer op de mobiele site terecht komt.

Tenzij je een manier hebt om die 'full=1' dan op elke url te handhaven.
pasmaskas
Power Poster
Power Poster
Posts: 509
Joined: Tue Nov 29, 2011 10:42 am

Re: Mobile Detect - Mobiele website

Post by pasmaskas »

Klopt idd. Ik heb het ook alleen op een plate html site getest. Je zou 2 templates aan kunnen maken die het zelfde zijn alleen 1 met het scriptje er in voor de homepage. In de html site staat hij ook alleen op de homepage zodat de andere pagina's niet reageren op het script en terug willen naar de mobiele site.
brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

Re: Mobile Detect - Mobiele website

Post by brentnl »

Sorry voor de (hele) late response..
Ik heb de optie uit de 3e post verwerkt in m'n CMSMS installatie, maar nu heb ik een probleem bij het aanpassen van pagina's.

Code: Select all

@include("Mobile_Detect.php");
 
$detect = new Mobile_Detect();
 
if ($detect->isMobile() && isset($_COOKIE['mobile']))
{
$detect = "false";
}
 
elseif ($detect->isMobile())
{
header("Location:http://www.website.nl/mobile");
}
Ik heb van deze code een UDT gemaakt, en deze in een HTML blok gezet {detectmobile}, samen met de rest van de benodigde javascript (jquery, analytics). Als ik nu een pagina wil aanpassen krijg ik een blanco pagina te zien. Zodra ik de tag {detectmobile} eruit haal is er niets aan de hand.

Wat doe ik fout?
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Mobile Detect - Mobiele website

Post by velden »

Wat is je cmsms versie?
brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

Re: Mobile Detect - Mobiele website

Post by brentnl »

CMS Made Simple™ 1.11.4 “Fernandina”
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Mobile Detect - Mobiele website

Post by velden »

Sorry kan het niet meer vinden. Dacht dat er ooit gesproken was op dit forum over problemen met UDT's en de Admin. Weet het eigenlijk wel zeker.

Maar weet niet meer om welke versie het precies ging, dus kan ook niet zeggen of het met 1.11.5 opgelost is.
brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

Re: Mobile Detect - Mobiele website

Post by brentnl »

dit probleem bedoel je?

Ja er iets mis met deze UDT inderdaad, maar ik heb te weinig verstand van PHP om te vinden wat. Met {stylesheet} oid is niets mis, dat gebruik ik ook niet.

Code: Select all

@include("Mobile_Detect.php");
$detect = new Mobile_Detect();
if (($detect->isMobile() && isset($_COOKIE['mobile'])) || $detect->isTablet())
{
$detect = "false";
}
elseif ($detect->isMobile())
{
header("Location:http://www.domein.nl/mobile");
}
brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

Re: Mobile Detect - Mobiele website

Post by brentnl »

Heb nu geupgrade naar 1.11.5 en krijg ipv een blanco pagina nu deze error mbt die UDT.

Code: Select all

Fatal error: Class 'Mobile_Detect' not found in /home/deb60619n5/domains/website.nl/public_html/lib/classes/class.usertagoperations.inc.php(265) : eval()'d code on line 2
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Mobile Detect - Mobiele website

Post by janvl »

Probeer module toolbox eens die heeft ook mogelijkheden voor mobile-detect.

m.vr.g.
Jan
brentnl
Power Poster
Power Poster
Posts: 493
Joined: Mon May 11, 2009 4:35 pm

Re: Mobile Detect - Mobiele website

Post by brentnl »

janvl wrote:Probeer module toolbox eens die heeft ook mogelijkheden voor mobile-detect.

m.vr.g.
Jan
Nja het hele mobile-detect werkt nu top, inclusief cookie en een link naar de volledige website. Echter kan ik nu geen pagina's aanpassen doordat die UDT dwars ligt (terwijl die wel werkt). Dus die UDT moet iets aangepast worden ofzo, .. heb alleen weinig verstand van PHP.
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Mobile Detect - Mobiele website

Post by janvl »

Hier is de manier zoals ik het gebruik
in de template van de normale pagina in [head]:

Code: Select all

{* omleiden mobiele gebruiker naar pagina "mobil" *}
{if $smarty.get.useDesktop == "1" or $smarty.session.useDesktop == "1"} {*do nothing*}
{elseif ($tbmobile->isMobile())} {redirect_page page="mobil"} 
{/if}

{* omleiden gebruiker met browservenster onder 960px naar pagina "mobil" *}
 {literal}
<__script__ type="text/javascript">
<!--
$(document).ready(function(){ if($(window).width() < 960){ window.location.href = "http://www.taxigerhard.at/index.php?page=mobil" } }); 
//-->
</__script>
{/literal}
en in template van de mobiele pagina in [head]

Code: Select all

  
{tbSessionSet name="useDesktop" value="1"}
zo kun je weer met een link naar de volle Site.

Funktioneert zonder problemen.
Module Toolbox moet natuurlijk wel geinstalleerd zijn.

m.vr.gr.
Jan
Post Reply

Return to “Dutch - Nederlands”