サマリ | クッキー情報によりスキンを変える |
---|---|
リビジョン | 1.0 |
対応バージョン | All (未確認) |
投稿者 | . |
投稿日 | 2016-03-24 (木) 04:23:36 |
スマートフォン用スキンを導入時に簡単にPC用と切り替えできるようにする。
なお、pukiwiki.inc.phpの細工が必要となる。
スマートフォン用スキンをsp.ini.php、パソコン用をpc.ini.phpとした。
一応default.ini.phpとkeitai.ini.phpもそのまま使えるが、正常に表示するためには
default.ini.phpをpc.ini.phpにコピーする必要がある。
<?php function plugin_switchSkin_convert() { $_body .= <<<_HTML_ <p>表示切り替え : <a href="?cmd=switchSkin">PC版 / スマホ版</a ></p> _HTML_; return $_body; } function plugin_switchSkin_action() { $expire = time() + 60 * 60 * 24 * 30; //クッキーの有効期限 if ($_COOKIE['skin'] == 'pc') { $skin = 'sp'; } else { $skin = 'pc'; } setcookie('skin', $skin, $expire); header("Location: $_SERVER[HTTP_REFERER]"); } ?>
--- _pukiwiki.ini.php 2016-02-15 05:19:02.000000000 +0900 +++ pukiwiki.ini.php 2016-03-24 04:32:29.283189300 +0900 @@ -452,6 +452,7 @@ $usedatetime = 1; // If you want to to ignore desktop-PC browsers for simple wikisite, // copy keitai.ini.php to default.ini.php and customize it. +/* $agents = array( // pattern: A regular-expression that matches device(browser)'s name and version // profile: A group of browsers @@ -546,3 +547,5 @@ $agents = array( array('pattern'=>'#^#', 'profile'=>'default'), // Sentinel ); +*/ +require 'uaSwitch.php';
<?php /////////////////////////////// //// User-Agent settings $sp_ua = array( 'iPhone', // iPhone 'iPod', // iPod touch 'Android', // Android 'BlackBerry', // Blackberry 'Windows Phone', // Windows Phone ); $sp_ua_list = '/ ('.implode('|', $sp_ua).' )/i'; $kt_ua = array ( 'DoCoMo', // docomo 'UP\.Browser', // au-kddi 'J\-PHONE/', // j-phone 'Vodafone', // vodafone 'SoftBank', // softbank 'WILLCOM', // willcom 'emobile', // emobile ); $kt_ua_list = '/ ('.implode('|', $kt_ua).' )/i'; $expire = time() + 60 * 60 * 24 * 30 ; //クッキーの有効期限 if (isset($_COOKIE['skin'])) { $usr_skin = $_COOKIE['skin']; } elseif (preg_match($sp_ua_list, $_SERVER['HTTP_USER_AGENT'])) { //setcookie('skin', 'sp', $expire); $usr_skin = 'sp'; } elseif (preg_match($kt_ua_list, $_SERVER['HTTP_USER_AGENT'])) { //setcookie('skin', 'kt', $expire); $usr_skin = 'kt'; } else { //setcookie('skin', 'pc', $expire); $usr_skin = 'pc'; } setcookie('skin', $usr_skin, $expire); switch ($usr_skin) { case "kt": $set_skin = "keitai"; break; case "sp": $set_skin = "sp"; break; case "pc": $set_skin = "pc"; break; default: $set_skin = "default"; break; } $set_skin = (is_file($set_skin.".ini.php")) ? $set_skin : "default" ; $agents = array( array('pattern' => '#^#', 'profile' => $set_skin), );