Strict Standards: Non-static method Protector::getInstance() should not be called statically in /home/suehirogari/suehirogari.com/xoops_trust_path/modules/protector/include/precheck_functions.php on line 12

Strict Standards: Non-static method XCube_Root::getSingleton() should not be called statically in /home/suehirogari/suehirogari.com/public_html/include/common.php on line 18

Deprecated: Non-static method XCube_Root::getSingleton() should not be called statically, assuming $this from incompatible context in /home/suehirogari/suehirogari.com/public_html/modules/user/preload/Primary/Primary.class.php on line 13
xoops内でPHPでスマートフォンを判別して、if文でソースを追加する方法 | 社内SEのウェブ制作

2012.09.11xoopsズープス

xoops内でPHPでスマートフォンを判別して、if文でソースを追加する方法

 xoops内でスマートフォン判別する方法

ページ全体をスマートフォン化するのは、手間がかかるし、技術的に難しい、
現在のPC用のサイトに、ひとてま加えて、スマートフォンでアクセスしているときには、電話のボタンを置いて電話を掛けやすくしたり、スマートフォンで入力しやすいフォームに飛ばしたりしたい

と考えたことありませんか?
phpでスマートフォンを判別して、スマートフォンでアクセスした場合のみ、if文でhtmlを書き出す方法をお教えいたします。

 

xoopsのthemeファイル内で利用できるスマートフォン判別PHP

xoops_root_path/themes/ ファイルの現在利用しているテーマファイルの先頭に、以下のスマートフォン判別用のソースを記述します。

 

<{php}>
//スマートフォンならPCサイトへリダイレクト
function is_mobile () {
$useragents = array(
'iPhone', // Apple iPhone
'iPod', // Apple iPod touch
'Android', // 1.5+ Android
'dream', // Pre 1.5 Android
'CUPCAKE', // 1.5+ Android
'blackberry9500', // Storm
'blackberry9530', // Storm
'blackberry9520', // Storm v2
'blackberry9550', // Storm v2
'blackberry9800', // Torch
'webOS', // Palm Pre Experimental
'incognito', // Other iPhone browser
'webmate' // Other iPhone browser
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
<{/php}>

xoops内で利用できるスマートフォン判別後のif文の記載方法

もしスマートフォンだったら、このソースを表示する。EOF の間のソースが表示されます。

 

<{php}>
//判別実行
if (is_mobile()) 
{
print<<<EOF
<span style=" font-size:1em">test</span>
EOF;
}
//}
<{/php}>

 

xoopsの各モジュールのテンプレートファイル内ではjavascriptの方が使いやすい。

is_mobile.js といったjsファイルをルートディレクトリにアップロード

// JavaScript Document
// Thanks to BraveNewCode's WPtouch iPhone Theme for the UA list.
// (http://wordpress.org/extend/plugins/wptouch/)
function is_mobile () {
  var useragents = [
    'iPhone',         // Apple iPhone
    'iPod',           // Apple iPod touch
    'Android',        // 1.5+ Android
    'dream',          // Pre 1.5 Android
    'CUPCAKE',        // 1.5+ Android
    'blackberry9500', // Storm
    'blackberry9530', // Storm
    'blackberry9520', // Storm v2
    'blackberry9550', // Storm v2
    'blackberry9800', // Torch
    'webOS',          // Palm Pre Experimental
    'incognito',      // Other iPhone browser
    'webmate'         // Other iPhone browser
  ];
  var pattern = new RegExp(useragents.join('|'), 'i');
  return pattern.test(navigator.userAgent);
}

上記のjsファイルをthemeファイルで読み込みます。

<script type="text/javascript" src="<{$xoops_url}>/is_mobile.js"></script>

picoモジュールのテンプレート内で、javascriptのif文を追加

<script type="text/javascript">
//もしPCだったら
if(!is_mobile()){
document.write("PC");
}
//もしスマートフォンだったら
if(is_mobile()){
document.write("スマホ");
}
</script>

 

 

 

 

 


このカテゴリの人気記事



  • コメント (0)
  • トラックバック (0)
  • 閲覧 (15530)

トラックバック

トラックバックpingアドレス http://www.suehirogari.com/modules/blog/tb.php/586

コメントの投稿

コメント投稿に関するルール : コメントは全て承認が必要

キーワードでサイト内を検索
人気のエントリ