eZ Community » Forums » Developer » Detecting and Redirecting Mobile Users
expandshrink

Detecting and Redirecting Mobile Users

Detecting and Redirecting Mobile Users

Friday 01 June 2012 2:52:05 pm - 6 replies

Hello everyone;

I would like to know what is the best way for detecting the devices.

I have a javascript code:

<script type="text/javascript"><!--if (screen.width <= 699) {document.location = "MY-MOBILE-SITE.com";}//--></script>    
<script type="text/javascript"><!--if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {   location.replace("http://MY-MOBILE-SITE.com");}--></script>

 

 

but i dont know if i should put it in my the pagelayout.tpl or in my index.php?

If this is not the best way, can you help me to find the best solution for it?

cheers

Friday 01 June 2012 3:46:55 pm

Salut,I give you this link that deals with redirection, http://stackoverflow.com/questions/4617638/detect-ipad-users-using-jquery
to your question you can do the tests on your pagelayout either on the page or you want to do the redirect (. dwt)  

Saturday 02 June 2012 4:55:57 pm

Hi,

I think that javascript method is not optimized for eZ Publish. All views are generated before pagelayout, so your method should be call earlier. You can use config.php file instead index.php.

Saturday 02 June 2012 5:16:06 pm

If you are using 2012.01 or later, or the 4.7 Enterprise version, there is some functionality built in to eZ Publish:

https://github.com/ezsystems/ezpublish/commit/a695d9d6b5ec3fd346054132863ee9bd2315aa6f

Specifically, it is managed in site.ini:

https://github.com/ezsystems/ezpublish/blob/master/settings/site.ini#L778

And executed in index.php:

https://github.com/ezsystems/ezpublish/blob/master/index.php#L347

Monday 04 June 2012 9:38:22 am

In order to not have overhead on (at least the first pageload) we use a different approach:

Apache browser detect (search the internet for "mobile detect .htaccess" ) and two siteaccesses.

Example (we doe for a few languages):

en <-- normal version

mobileen <-- Mobile version

forceen <-- a virtual siteaccess that people can use to break out of the mobile version (only analyzed by Apache telling it to not check for mobile versions and use the standard en via a rewrite rule).

-David

Modified on Monday 04 June 2012 2:15:30 pm by David Ennis

Monday 04 June 2012 12:28:44 pm

Thank you everyone very much for your response,

Peter Keung I tried to use your code but i found a folder which called test  and tests and i didnt know if i should add them manually? i was confiused?

if i create a file config.php and put this code into it would it be correct?

 <span style="color: #000000;"> <span style="color: #0000bb;"></span><span style="color: #007700;">if (</span><span style="color: #0000bb;">$version </span><span style="color: #007700;">!= </span><span style="color: #dd0000;">"desktop"</span><span style="color: #007700;">) {
</span><span style="color: #0000bb;">$useragent</span><span style="color: #007700;">=</span><span style="color: #0000bb;">$_SERVER</span><span style="color: #007700;">[</span><span style="color: #dd0000;">'HTTP_USER_AGENT'</span><span style="color: #007700;">];
if(</span><span style="color: #0000bb;">preg_match</span><span style="color: #007700;">(</span><span style="color: #dd0000;">'/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i'</span><span style="color: #007700;">,</span><span style="color: #0000bb;">$useragent</span><span style="color: #007700;">)||</span><span style="color: #0000bb;">preg_match</span><span style="color: #007700;">(</span><span style="color: #dd0000;">'/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i'</span><span style="color: #007700;">,</span><span style="color: #0000bb;">substr</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$useragent</span><span style="color: #007700;">,</span><span style="color: #0000bb;">0</span><span style="color: #007700;">,</span><span style="color: #0000bb;">4</span><span style="color: #007700;">)))
</span><span style="color: #0000bb;">header</span><span style="color: #007700;">(</span><span style="color: #dd0000;">'Location: http://sub.domain.com'</span><span style="color: #007700;">);
}  </span></span>

Modified on Monday 04 June 2012 2:14:45 pm by ray lab

Monday 04 June 2012 4:02:17 pm

Finally i used the code of that Peter Keung suggested

Works perfectly happy.gif Emoticon

thanks

expandshrink

You must be logged in to post messages in this topic!

36 542 Users on board!

Forums menu