トップ/pukiwiki1.4/smartphone
#author("2025-04-20T15:04:36+09:00","default:nemusg.pad","nemusg.pad") #author("2025-08-24T23:28:02+09:00;2025-04-20T15:04:36+09:00","default:nemusg.pad","nemusg.pad") * スマホ用スキン表示 [#e83f5a57] - 既存のガラケー用出し分けを廃止してスマホ用に使う。 - クッキーを使って、ユーザーがスキンを切り替えられるようにする。 ** 手順 [#abfe6c1d] - skin/pukiwiki.skin.php をコピーして smartphone.skin.php を作成。 -- <body>内にスマホ版だということが分かるように何か追記しておく。 - default.ini.php をコピーして smartphone.ini.php を作成。(keitai.skin.php は削除。) -- 下記変更する - define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.php'); + define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'smartphone.skin.php'); -- フェイスマーク定義ルールなど、全く同じでよい記述は pukiwiki.ini.php に移動させてしまっても良い。 - pukiwiki.ini.php -- User-Agent settingsを以下に差し替え ///////////////////////////////////////////////// // 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'; $expire = time() + 2592000; //クッキーの有効期限 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'; }else{ setcookie('skin', 'pc', $expire); } if($usr_skin=='sp'){ $set_skin='smartphone'; }else{ $set_skin='default'; } $agents = array( array('pattern'=>'#^#', 'profile'=>$set_skin) ); - setpkin.phpファイルを作成して / にアップロード、あとはsetpkin.phpをブラウザで叩く度にスキンとクッキーが変わります。 <?php $ref = $_SERVER['HTTP_REFERER']; $expire = time() + 2592000; //クッキーの有効期限 setcookie('skin', 'sp', $expire); if($_COOKIE['skin'] == 'sp'){ $skin='pc'; }elseif($_COOKIE['skin'] == 'pc'){ $skin='sp'; } setcookie('skin', $skin, $expire); header("Location: $ref"); ?> HTML <a href="setskin.php">setskin</a > ** 参考 [#pccf945d] - [[tDiaryスキン BugTrack/769:http://pukiwiki.sourceforge.jp/dev/?BugTrack%2F769]] -- tdiary.skin.phpも使わなければ削除できます。tdiary関連の記述はindex.php、default.ini.php、INSTALL.txtにあります。 - [[続・質問箱/468:http://pukiwiki.sourceforge.jp/?%E7%B6%9A%E3%83%BB%E8%B3%AA%E5%95%8F%E7%AE%B1%2F468]] -- Runtime errorが出てしまう場合は、default.ini.php または smartphone.ini.php の読み込みに失敗しています。 #include(parts/feedback,notitle)