TOOL更新_「kaz PHPプログラム自動作成◎自動生成お助けツール」をjQuery Mobileでスマートフォン対応にする。その1。index.php関連
TOOL更新_「kaz PHPプログラム自動作成◎自動生成お助けツール」をjQuery Mobileでスマートフォン対応にする。その1。index.php関連
☆とりあえずindex.php画面のハードコピー。「http://kazpgm.ddo.jp/kaz01u/admin/index.php?mode_suma=yes」、「http://kazpgm.ddo.jp/kaz01u/index.php?mode_suma=yes」でスマートフォンかIE9かfireFox4.0.1かで動くようにしてみました。<=IE8は固まります。気をつけて。
<<管理者側のログイン画面とログイン後のメニュー画面>>
<<ユーザ側のログイン画面とログイン後のメニュー画面>>
1.php部分はできるだけ変えない。
■.kazphp/common.php 修正 ・スマートフォン用にview_sumaフォルダを作成 <<追加 start>> // VIEW DIR SUMAPHO define('DIR_VIEW_SUMA', dirname(__FILE__) . '/view_suma/'); <<追加 end>> ■kaz/admin/index.php 管理者側index.php 修正 ・「/kazu01/admin/index.php?mode_suma=yes」で普通のブラウザからでも スマートフォン画面を表示させるため。「mode_suma」を使う。 セッション消すタイミングを「$mode」が空のときのみに変更する。 <<修正 start>> //if ($mode != 'login_do') { if ($mode == '') { <<修正 end>> ・・・ session_destroy(); } <<追加 start>> // スマフォモード決定。テストのためにここでは'mode_suma'パラメータ入力可能にする。 $mode_suma = strtolower($_REQUEST['mode_suma']); if ($mode_suma!='yes' && $mode_suma!='no') { $mode_suma = ''; } if ($mode_suma == '') { if (chk_sumapho()) { // スマフォの場合 $mode_suma = 'yes'; } else { $mode_suma = 'no'; } } $_SESSION['mode_suma'] = $mode_suma; // スマフォモード保存 $o['mode_suma'] = $mode_suma; // スマフォモード保存 <<追加 end>> <<修正 start>> //require_once(DIR_VIEW . 'admin/index.html'); require_once(($mode_suma == 'no'?DIR_VIEW:DIR_VIEW_SUMA) . 'admin/index.html'); <<修正 end>> ■kaz/index.php ユーザ側index.php 修正 ・「/kazu01/index.php?mode_suma=yes」で普通のブラウザからでも スマートフォン画面を表示させるため。「mode_suma」を使う。 セッション消すタイミングを「$mode」が空のときのみに変更する。 <<修正 start>> //if ($mode != 'login_do') { if ($mode == '') { <<修正 end>> ・・・ session_destroy(); } <<追加 start>> // スマフォモード決定。テストのためにここでは'mode_suma'パラメータ入力可能にする。 $mode_suma = strtolower($_REQUEST['mode_suma']); if ($mode_suma!='yes' && $mode_suma!='no') { $mode_suma = ''; } if ($mode_suma == '') { if (chk_sumapho()) { // スマフォの場合 $mode_suma = 'yes'; } else { $mode_suma = 'no'; } } $_SESSION['mode_suma'] = $mode_suma; // スマフォモード保存 $o['mode_suma'] = $mode_suma; // スマフォモード保存 <<追加 end>> <<修正 start>> //require_once(DIR_VIEW . '/index.html'); require_once(($mode_suma == 'no'?DIR_VIEW:DIR_VIEW_SUMA) . 'index.html'); <<修正 end>> ■kaz/admin/index1.php 管理者側index1.php 修正 ・index1.phpをindex1.phpと(.kazphp/view/admin/index1.html(PC用)、 .kazphp/view_suma/admin/index1.html(スマートフォン用))に分ける。 <<修正後 start>> <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ require_once('../common_admin.php'); session_start(); if ($_SESSION['mode_suma'] != '') { // スマフォモード決定 $mode_suma = $_SESSION['mode_suma']; } else { // 初期状態 if (chk_sumapho()) { // スマフォの場合 $mode_suma = 'yes'; } else { $mode_suma = 'no'; } } $_SESSION['mode_suma'] = $mode_suma; // スマフォモード保存 require_once(($mode_suma == 'no'?DIR_VIEW:DIR_VIEW_SUMA) . 'admin/index1.html'); index1($o, $err); ?> <<修正後 end>> ■.kazphp/view/admin/index1.html PC用管理者側index1.html 新規 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ // index1 画面 function index1($o, $err) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>kaz PHP自動作成お助けTOOL サイト管理システム</title> <link rel="stylesheet" href="/kaz01u/admin/css/screen.css" type="text/css" media="screen,print" /> </head> <body> <!-- wrapper start --> <div id="wrapper"> <!-- #BeginLibraryItem "/Library/header.lbi" --> <?php require_once(DIR_VIEW . 'admin/header.lbi'); ?> <!-- #EndLibraryItem --> <!-- contents start --> <div id="contents"> <!-- #BeginLibraryItem "/Library/menu.lbi" --> <?php require_once(DIR_VIEW . 'admin/menu.lbi'); ?> <!-- #EndLibraryItem --><br> <p class="clear"></p> </div> <!-- contents end --> <!-- #BeginLibraryItem "/Library/footer.lbi" --> <?php require_once(DIR_VIEW . 'admin/footer.lbi'); ?> <!-- #EndLibraryItem --> </div> <!-- wrapper end --> <?php require_once(DIR_VIEW . 'admin/analytics.lbi'); ?> </body> </html> <? } ?> ■.kazphp/view_suma/admin/index1.html スマートフォン用管理者側index1.html 新規 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ // index1 画面 function index1($o, $err) { ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>kaz PHP自動作成お助けTOOL サイト管理システム サンプル</title> </head> <body> <!-- #BeginLibraryItem "/Library/header.lbi" --> <?php require_once(DIR_VIEW_SUMA . 'admin/header.lbi'); ?> <!-- #EndLibraryItem --> <form name="frm" method="POST" action="/kaz01u/admin/index1.php"> <input type="text" name="dummy" style="display:none;" /> </form> <form name="fmModeSuma" id="fmModeSuma"> <input type="hidden" name="mode_suma" id="mode_suma" value="no" /> </form> <!-- /////////////////////////////////////////////////// --> <div data-role="page" id="mob-menu" data-theme="a"> <div data-role="header"> <h1>管理者メニュー</h1> <div data-type="horizontal"> <a href="#mob-menu" data-role="button" data-icon="check">menu</a> <a href="javascript:on_btn_mode_suma();" data-role="button" name='btn_mode_suma' id='btn_mode_suma'>PC</a> <a href="/kaz01u/admin/index.php?mode_suma=yes" rel="external" data-role="button">アウト</a> </div> </div><!-- /header --> <!-- #BeginLibraryItem "/Library/menu.lbi" --> <?php require_once(DIR_VIEW_SUMA . 'admin/menu.lbi'); ?> <!-- #EndLibraryItem --><br> <div data-role="footer"> <!-- #BeginLibraryItem "/Library/footer.lbi" --> <?php require(DIR_VIEW_SUMA . 'admin/footer.lbi'); ?> <!-- #EndLibraryItem --> </div><!-- /footer --> </div><!-- /page --> <?php require_once(DIR_VIEW_SUMA . 'admin/analytics.lbi'); ?> </body> </html> <? } ?> ■kaz/index1.php ユーザ側index1.php 修正 ・index1.phpをindex1.phpと(.kazphp/view/index1.html(PC用)、 .kazphp/view_suma/index1.html(スマートフォン用))に分ける。 <<修正後 start>> <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ require_once('common_user.php'); session_start(); if ($_SESSION['mode_suma'] != '') { // スマフォモード決定 $mode_suma = $_SESSION['mode_suma']; } else { // 初期状態 if (chk_sumapho()) { // スマフォの場合 $mode_suma = 'yes'; } else { $mode_suma = 'no'; } } $_SESSION['mode_suma'] = $mode_suma; // スマフォモード保存 require_once(($mode_suma == 'no'?DIR_VIEW:DIR_VIEW_SUMA) . 'admin/index1.html'); index1($o, $err); ?> <<修正後 end>> ■.kazphp/view/index1.html PC用ユーザ側index1.html 新規 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ // index1 画面 function index1($o, $err) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>kaz PHP自動作成お助けTOOL サイト管理システム</title> <link rel="stylesheet" href="/kaz01u/css/screen.css" type="text/css" media="screen,print" /> </head> <body> <!-- wrapper start --> <div id="wrapper"> <!-- #BeginLibraryItem "/Library/header.lbi" --> <?php require_once(DIR_VIEW . '/header.lbi'); ?> <!-- #EndLibraryItem --> <!-- contents start --> <div id="contents"> <!-- #BeginLibraryItem "/Library/menu.lbi" --> <?php require_once(DIR_VIEW . '/menu.lbi'); ?> <!-- #EndLibraryItem --><br> <p class="clear"></p> </div> <!-- contents end --> <!-- #BeginLibraryItem "/Library/footer.lbi" --> <?php require_once(DIR_VIEW . '/footer.lbi'); ?> <!-- #EndLibraryItem --> </div> <!-- wrapper end --> <?php require_once(DIR_VIEW . '/analytics.lbi'); ?> </body> </html> <? } ?> ■.kazphp/view_suma/index1.html スマートフォン用ユーザ側index1.html 新規 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ // index1 画面 function index1($o, $err) { ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>kaz PHP自動作成お助けTOOL サイト管理システム サンプル</title> </head> <body> <!-- #BeginLibraryItem "/Library/header.lbi" --> <?php require_once(DIR_VIEW_SUMA . 'header.lbi'); ?> <!-- #EndLibraryItem --> <form name="frm" method="POST" action="/kaz01u/index1.php"> <input type="text" name="dummy" style="display:none;" /> </form> <form name="fmModeSuma" id="fmModeSuma"> <input type="hidden" name="mode_suma" id="mode_suma" value="no" /> </form> <!-- /////////////////////////////////////////////////// --> <div data-role="page" id="mob-menu" data-theme="a"> <div data-role="header"> <h1>ユーザメニュー</h1> <div data-type="horizontal"> <a href="#mob-menu" data-role="button" data-icon="check">menu</a> <a href="javascript:on_btn_mode_suma();" data-role="button" name='btn_mode_suma' id='btn_mode_suma'>PC</a> <?php if ( '' != $_SESSION['u_login_id_login']) { // ユーザのログイン ?> <a href="/kaz01u/index.php?mode_suma=yes" rel="external" data-role="button">アウト</a> <?php } else { ?> <a href="/kaz01u/index.php?mode_suma=yes" rel="external" data-role="button">LOGIN</a> <?PHP } ?> </div> </div><!-- /header --> <!-- #BeginLibraryItem "/Library/menu.lbi" --> <?php require_once(DIR_VIEW_SUMA . 'menu.lbi'); ?> <!-- #EndLibraryItem --><br> <div data-role="footer"> <!-- #BeginLibraryItem "/Library/footer.lbi" --> <?php require(DIR_VIEW_SUMA . 'footer.lbi'); ?> <!-- #EndLibraryItem --> </div><!-- /footer --> </div><!-- /page --> <?php require_once(DIR_VIEW_SUMA . 'analytics.lbi'); ?> </body> </html> <? } ?> ■(kaz/index.php、kaz/admin/index.php、kaz/admin/index1.php)以外のphpプログラムの修正内容 ・・・ <<追加 start>> if ($_SESSION['mode_suma'] != '') { // スマフォモード決定 $mode_suma = $_SESSION['mode_suma']; } else { // 初期状態 if (chk_sumapho()) { // スマフォの場合 $mode_suma = 'yes'; } else { $mode_suma = 'no'; } } $_SESSION['mode_suma'] = $mode_suma; // スマフォモード保存 <<追加 end>> <<修正 start>> //require_once(DIR_VIEW . 'xxxxx.html'); require_once(($mode_suma == 'no'?DIR_VIEW:DIR_VIEW_SUMA) . 'xxxxx.html'); <<修正 end>>
2.viewはスマートフォン用にview_sumaフォルダを作成して同じ名前で使う。(1対1とする。)
スマートフォンのhtml作成は「jquery.mobile-1.0a4.1.js」を使う。
■kaz/js/または、kaz/admin/js/フォルダ 修正 <<追加 start>> suma/jquery-1.5.2.min.js suma/jquery.mobile-1.0a4.1.min.js ■kaz/css/または、kaz/admin/css/フォルダ 修正 <<追加 start>> suma/jquery.mobile-1.0a4.1.min.css suma/mobileparts.css ■(.kazphp/view_suma/または、.kazphp/view_suma/admin/)header.lbi スマートフォン用管理者側ユーザ側header.lbi 新規 <link rel="stylesheet" href="/kaz01u/admin/css/suma/jquery.mobile-1.0a4.1.min.css" /> <script type="text/javascript" src="/kaz01u/admin/js/suma/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="/kaz01u/admin/js/suma/jquery.mobile-1.0a4.1.min.js"></script> <link rel="stylesheet" href="/kaz01u/admin/css/suma/mobileparts.css" /> <script type="text/javascript" src="/kaz01u/admin/js/kaz.js"></script> <script type="text/javascript" src="/kaz01u/admin/js/jkl-calendar_20090707u.js" charset="SHIFT-JIS"></script> <form name="fmatag" id="fmatag" method="POST" action=""> </form> ■(.kazphp/view_suma/または、.kazphp/view_suma/admin/) analytics.lbi、footer.lbi、pagetop.lbi スマートフォン用管理者側ユーザ側 新規 内容はほとんど空なので省略 ■.kazphp/view_suma/admin/menu.lbi スマートフォン用管理者側メニュー 新規 <div data-role="content"> <!-- menu-top start --> <div> <a href="/kaz01u/admin/index1.php" data-role="button" rel="external">管理者機能TOP</a> </div> <!-- menu-top end --> <?php if( $_SESSION['login_type'] == '1'){ ?> <!-- menu buhin --> <div> <p>ログイン情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/logininfo/logininfo.php?mode=ins" rel="external">ログイン情報登録</a></li> <li><a href="/kaz01u/admin/logininfo/logininfo.php?mode=list" rel="external">ログイン情報一覧</a></li> </ul><?php } ?> <!-- menu buhin --> <div> <p>会員情報1管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/user/user.php?mode=ins" rel="external">会員情報1登録</a></li> <li><a href="/kaz01u/admin/user/user.php?mode=list" rel="external">会員情報1一覧</a></li> </ul><!-- menu buhin --> <div> <p>業種情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/biztype/biztypeA.php?mode=ins" rel="external">業種情報登録</a></li> <li><a href="/kaz01u/admin/biztype/biztypeA.php?mode=list" rel="external">業種情報一覧</a></li> </ul><!-- menu buhin --> <div> <p>企業情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/corp/corpA.php?mode=ins" rel="external">企業情報登録</a></li> <li><a href="/kaz01u/admin/corp/corpA.php?mode=list" rel="external">企業情報一覧</a></li> </ul><!-- menu buhin --> <div> <p>使用できる項目管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/item/itemA.php?mode=ins" rel="external">使用できる項目登録</a></li> <li><a href="/kaz01u/admin/item/itemA.php?mode=list" rel="external">使用できる項目一覧</a></li> </ul><!-- menu buhin --> <div> <p>大分類情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/category/categoryA.php?mode=ins" rel="external">大分類情報登録</a></li> <li><a href="/kaz01u/admin/category/categoryA.php?mode=list" rel="external">大分類情報一覧</a></li> </ul><!-- menu buhin --> <div> <p>中分類情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/subcategory/subcategoryA.php?mode=ins" rel="external">中分類情報登録</a></li> <li><a href="/kaz01u/admin/subcategory/subcategoryA.php?mode=list" rel="external">中分類情報一覧</a></li> </ul><!-- menu buhin --> <div> <p>小分類情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/extracategory/extracategoryA.php?mode=ins" rel="external">小分類情報登録</a></li> <li><a href="/kaz01u/admin/extracategory/extracategoryA.php?mode=list" rel="external">小分類情報一覧</a></li> </ul><!-- menu buhin --> <div> <p>商品情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/shohin/shohinA.php?mode=ins" rel="external">商品情報登録</a></li> <li><a href="/kaz01u/admin/shohin/shohinA.php?mode=list" rel="external">商品情報一覧</a></li> </ul> <!-- menu buhin --> <div> <p>初期データアップロード管理</p> </div> <!-- menu buhin --> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/admin/initupload/iUplogininfoCsv.php" rel="external">ログイン情報アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpuserCsv.php" rel="external">会員情報1アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpbiztypeACsv.php" rel="external">業種情報アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpcorpACsv.php" rel="external">企業情報アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpitemACsv.php" rel="external">使用できる項目アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpcategoryACsv.php" rel="external">大分類情報アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpsubcategoryACsv.php" rel="external">中分類情報アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpextracategoryACsv.php" rel="external">小分類情報アップロード</a></li> <li><a href="/kaz01u/admin/initupload/iUpshohinACsv.php" rel="external">商品情報アップロード</a></li> </ul> </div> <!-- /content --> ■.kazphp/view_suma/menu.lbi スマートフォン用ユーザ側メニュー 新規 <div data-role="content"> <!-- menu start --> <div> <p>企業情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/corp/corpUadd.php?mode=ins" rel="external">企業情報登録</a></li> <?PHP if (( '' == $_SESSION['u_login_id_login']) && // ユーザのログイン ( $_SESSION['login_type'] != '1' && $_SESSION['login_type'] != '2' && $_SESSION['login_type'] != '3')) { // 管理者のログイン ?> <li><a href="/kaz01u/corp/corpU.php?mode=list" rel="external" disabled >企業情報一覧</a></li> <?PHP } else { ?> <li><a href="/kaz01u/corp/corpU.php?mode=list" rel="external">企業情報一覧</a></li> <?PHP } ?> <li><a href="/kaz01u/corp/corpU.php?mode=list_new" rel="external">企業情報登録日時降順</a></li> </ul><!-- menu buhin user --> <div> <p>使用できる項目管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/item/itemUadd.php?mode=ins" rel="external">使用できる項目登録</a></li> <?PHP if (( '' == $_SESSION['u_login_id_login']) && // ユーザのログイン ( $_SESSION['login_type'] != '1' && $_SESSION['login_type'] != '2' && $_SESSION['login_type'] != '3')) { // 管理者のログイン ?> <li><a href="/kaz01u/item/itemU.php?mode=list" rel="external" disabled >使用できる項目一覧</a></li> <?PHP } else { ?> <li><a href="/kaz01u/item/itemU.php?mode=list" rel="external">使用できる項目一覧</a></li> <?PHP } ?> <li><a href="/kaz01u/item/itemU.php?mode=list_new" rel="external">使用できる項目登録日時降順</a></li> </ul><!-- menu buhin user --> <div> <p>大分類情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/category/categoryUadd.php?mode=ins" rel="external">大分類情報登録</a></li> <?PHP if (( '' == $_SESSION['u_login_id_login']) && // ユーザのログイン ( $_SESSION['login_type'] != '1' && $_SESSION['login_type'] != '2' && $_SESSION['login_type'] != '3')) { // 管理者のログイン ?> <li><a href="/kaz01u/category/categoryU.php?mode=list" rel="external" disabled >大分類情報一覧</a></li> <?PHP } else { ?> <li><a href="/kaz01u/category/categoryU.php?mode=list" rel="external">大分類情報一覧</a></li> <?PHP } ?> <li><a href="/kaz01u/category/categoryU.php?mode=list_new" rel="external">大分類情報登録日時降順</a></li> </ul><!-- menu buhin user --> <div> <p>中分類情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/subcategory/subcategoryUadd.php?mode=ins" rel="external">中分類情報登録</a></li> <?PHP if (( '' == $_SESSION['u_login_id_login']) && // ユーザのログイン ( $_SESSION['login_type'] != '1' && $_SESSION['login_type'] != '2' && $_SESSION['login_type'] != '3')) { // 管理者のログイン ?> <li><a href="/kaz01u/subcategory/subcategoryU.php?mode=list" rel="external" disabled >中分類情報一覧</a></li> <?PHP } else { ?> <li><a href="/kaz01u/subcategory/subcategoryU.php?mode=list" rel="external">中分類情報一覧</a></li> <?PHP } ?> <li><a href="/kaz01u/subcategory/subcategoryU.php?mode=list_new" rel="external">中分類情報登録日時降順</a></li> </ul><!-- menu buhin user --> <div> <p>小分類情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/extracategory/extracategoryUadd.php?mode=ins" rel="external">小分類情報登録</a></li> <?PHP if (( '' == $_SESSION['u_login_id_login']) && // ユーザのログイン ( $_SESSION['login_type'] != '1' && $_SESSION['login_type'] != '2' && $_SESSION['login_type'] != '3')) { // 管理者のログイン ?> <li><a href="/kaz01u/extracategory/extracategoryU.php?mode=list" rel="external" disabled >小分類情報一覧</a></li> <?PHP } else { ?> <li><a href="/kaz01u/extracategory/extracategoryU.php?mode=list" rel="external">小分類情報一覧</a></li> <?PHP } ?> <li><a href="/kaz01u/extracategory/extracategoryU.php?mode=list_new" rel="external">小分類情報登録日時降順</a></li> </ul><!-- menu buhin user --> <div> <p>商品情報管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/shohin/shohinUadd.php?mode=ins" rel="external">商品情報登録</a></li> <?PHP if (( '' == $_SESSION['u_login_id_login']) && // ユーザのログイン ( $_SESSION['login_type'] != '1' && $_SESSION['login_type'] != '2' && $_SESSION['login_type'] != '3')) { // 管理者のログイン ?> <li><a href="/kaz01u/shohin/shohinU.php?mode=list" rel="external" disabled >商品情報一覧</a></li> <?PHP } else { ?> <li><a href="/kaz01u/shohin/shohinU.php?mode=list" rel="external">商品情報一覧</a></li> <?PHP } ?> <li><a href="/kaz01u/shohin/shohinU.php?mode=list_new" rel="external">商品情報登録日時降順</a></li> </ul><!-- menu buhin user --> <div> <p>お問い合わせ管理</p> </div> <ul data-role="listview" data-inset="true"> <li><a href="/kaz01u/contact/inqUadd.php?mode=ins" rel="external">お問い合わせ登録</a></li> </ul> </div> <!-- /content -->
3.PCとスマートフォンの切り替えボタンを作りjQueryのAJAXでセッションのフラグを切り替える。
■(kaz/js/または、kaz/admin/js/)kaz.js 修正 <<追加 start>> //-- ここからは jQueryを使っています。 ------ //-- ブラウザのスマートフォン/PC切替処理 function on_btn_mode_suma() { $.ajax({ url: '/kaz01u/chgModeSuma.php', type: 'POST', dataType: 'text', // data: '{mode_suma:["no"]}' , data: $('#fmModeSuma').serializeArray(), timeout: 5000, success: function(data, status, xhr){ //alert('次の処理からブラウザが' + data + 'に切り替わります。'); window.location.reload(); }, error: function (XMLHttpRequest, status, errorThrown) { alert('サーバーとの通信エラーが発生しました。'); } }); } <<追加 end>> ■kaz/chgModeSuma.php 新規 ・テストでスマフォにモードを変えるには URLに"http://localhost/kaz01u/chgModeSuma.php?mode_suma=yes"と入れる。 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ require_once('../.kazphp/common.php'); $o =& htmlspecialchars_r($_REQUEST); // output用(FORMからの入力値) $mode_suma = strtolower($_REQUEST['mode_suma']); session_start(); if ($_SESSION['mode_suma'] != '' && $mode_suma == '') { // スマフォモード決定 $mode_suma = $_SESSION['mode_suma']; } else if ($_SESSION['mode_suma'] == '' && $mode_suma == ''){ // 初期状態 if (chk_sumapho()) { // スマフォの場合 $mode_suma = 'yes'; } else { $mode_suma = 'no'; } } $_SESSION['mode_suma'] = $mode_suma; // スマフォモード保存 mb_http_output('UTF-8'); mb_internal_encoding('UTF-8'); header('Content-Type: text/plain;charset=UTF-8'); echo($mode_suma == 'no'?"PC":"スマートフォン"); ?> ■.kazphp/view/admin/header.lbi PC用管理者側header.lbi 修正 ・PCとスマートフォンの切り替えボタン。 <<追加 start>> <script type="text/javascript" src="/kaz01u/admin/js/suma/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="/kaz01u/admin/js/kaz.js"></script> <?PHP if ( chk_sumapho()) { // スマートフォン判別 ?> <form name="fmModeSuma" id="fmModeSuma"> <input type="hidden" name="mode_suma" id="mode_suma" value="yes" /> </form> <a href="javascript:on_btn_mode_suma();" name='btn_mode_suma' id='btn_mode_suma'><span style="color:#000000;">スマートフォン</span></a> <?PHP } ?> <<追加 end>> ■.kazphp/view/header.lbi PC用ユーザ側header.lbi 修正 ・PCとスマートフォンの切り替えボタン <<追加 start>> <script type="text/javascript" src="/kaz01u/admin/js/suma/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="/kaz01u/admin/js/kaz.js"></script> <?PHP if ( chk_sumapho()) { // スマートフォン判別 ?> <form name="fmModeSuma" id="fmModeSuma"> <input type="hidden" name="mode_suma" id="mode_suma" value="yes" /> </form> <a href="javascript:on_btn_mode_suma();" name='btn_mode_suma' id='btn_mode_suma'><span style="color:#FFFFFF;">スマートフォン</span></a> <?PHP } ?> <<追加 end>> ■.kazphp/view_suma/admin/index.html スマートフォン用管理者側index.html 新規 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ // index 画面 function index($o, $err) { ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>kaz PHP自動作成お助けTOOL サイト管理システム サンプル</title> </head> <body onload="document.frm.loginid.focus()"> <!-- #BeginLibraryItem "/Library/header.lbi" --> <?php require(DIR_VIEW_SUMA . 'admin/header.lbi'); ?> <!-- #EndLibraryItem --> <form name="fmModeSuma" id="fmModeSuma"> <input type="hidden" name="mode_suma" id="mode_suma" value="no" /> </form> <!-- /////////////////////////////////////////////////// --> <div data-role="page" id="login_do" data-theme="a"> <div data-role="header"> <h1>管理者ログイン</h1> <div data-type="horizontal"> <a href="javascript:on_btn_mode_suma();" data-role="button" name='btn_mode_suma' id='btn_mode_suma'>PC</a> <a href="/kaz01u/admin/index.php?mode_suma=yes" rel="external" data-role="button">アウト</a> </div> </div><!-- /header --> <div data-role="content"> <form name="frm" method="POST" action="/kaz01u/admin/index.php"> <input type="text" name="dummy" style="display:none;" /> <input type="hidden" name="mode" id="mode" value="login_do" /> <input type="hidden" name="mode_suma" id="mode_suma" value="<?= $o['mode_suma']?>" /> <span class="font-hissu">※サンプルなのでIDにadmin、パスワードにadmin</span>を固定で入力してあります。 <div data-role="fieldcontain" <?= $err['login'] !=''?'data-theme="e"':''; ?>> <label for="loginid">ログインID <span class="font-hissu">*</span></label> <input name="loginid" id="loginid" maxlength="50" value="admin" type="text" <?= $err['login'] !=''?'data-theme="e"':''; ?>> </div> <div data-role="fieldcontain"> <label for="loginpwd">パスワード <span class="font-hissu">*</span></label> <input name="loginpwd" id="loginpwd" maxlength="10" value="admin" type="password" <?= $err['login'] !=''?'data-theme="e"':''; ?>> <?php if ($err['login'] !='') { ?> <div class="font-s-red-form"><?= $err['login']?></div> <?php } ?> </div> </form> </div><!-- /content --> <div data-role="footer"> <div data-role="controlgroup" data-type="horizontal"> <a href="javascript:do_Submit_Clk1();" data-role="button">ログイン</a> <a href="javascript:document.frm.reset();" data-role="button">キャンセル</a> </div> <!-- #BeginLibraryItem "/Library/footer.lbi" --> <?php require(DIR_VIEW_SUMA . 'admin/footer.lbi'); ?> <!-- #EndLibraryItem --> </div><!-- /footer --> </div><!-- /page --> <?php require_once(DIR_VIEW_SUMA . 'admin/analytics.lbi'); ?> <!-- /////////////////////////////////////////////////// --> </body></html> <? } ?> ■.kazphp/view_suma/index.html スマートフォン用ユーザ側index.html 新規 <?php // ============================================================================ // Copyright (c) 2009 kaz PHP自動作成お助けTOOL. All rights reserved. // ============================================================================ // index 画面 function index($o, $err) { ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>kaz PHP自動作成お助けTOOL サイト管理システム サンプル</title> </head> <body onload="document.frm.loginid.focus()"> <!-- #BeginLibraryItem "/Library/header.lbi" --> <?php require(DIR_VIEW_SUMA . 'header.lbi'); ?> <!-- #EndLibraryItem --> <form name="fmModeSuma" id="fmModeSuma"> <input type="hidden" name="mode_suma" id="mode_suma" value="no" /> </form> <!-- /////////////////////////////////////////////////// --> <div data-role="page" id="login_do" data-theme="a"> <div data-role="header"> <h1>ユーザーログイン</h1> <div data-type="horizontal"> <a href="javascript:on_btn_mode_suma();" data-role="button" name='btn_mode_suma' id='btn_mode_suma'>PC</a> <a href="/kaz01u/index.php?mode_suma=yes" rel="external" data-role="button">アウト</a> </div> </div><!-- /header --> <div data-role="content"> <form name="frm" method="POST" action="/kaz01u/index.php"> <input type="text" name="dummy" style="display:none;" /> <input type="hidden" name="mode" id="mode" value="login_do" /> <input type="hidden" name="mode_suma" id="mode_suma" value="<?= $o['mode_suma']?>" /> <span class="font-hissu">※サンプルなのでIDにA0902150001、パスワードに12345678</span>を固定で入力してあります。 これは管理者側WEB(http://kazpgm.ddo.jp/kaz01u/admin/user/user.php?mode=list)の「会員情報1一覧」の会員番号とパスワードです。 <div data-role="fieldcontain" <?= $err['login'] !=''?'data-theme="e"':''; ?>> <label for="loginid">ID <span class="font-hissu">*</span></label> <input name="loginid" id="loginid" maxlength="50" value="A0902150001" type="text" <?= $err['login'] !=''?'data-theme="e"':''; ?>> </div> <div data-role="fieldcontain"> <label for="loginpwd">パスワード <span class="font-hissu">*</span></label> <input name="loginpwd" id="loginpwd" maxlength="10" value="12345678" type="password" <?= $err['login'] !=''?'data-theme="e"':''; ?>> <?php if ($err['login'] !='') { ?> <div class="font-s-red-form"><?= $err['login']?></div> <?php } ?> </div> </form> </div><!-- /content --> <div data-role="footer"> <div data-role="controlgroup" data-type="horizontal"> <a href="javascript:do_Submit_Clk1();" data-role="button">ログイン</a> <a href="javascript:document.frm.reset();" data-role="button">キャンセル</a> </div> <!-- #BeginLibraryItem "/Library/footer.lbi" --> <?php require(DIR_VIEW_SUMA . 'footer.lbi'); ?> <!-- #EndLibraryItem --> </div><!-- /footer --> </div><!-- /page --> <?php require_once(DIR_VIEW_SUMA . 'analytics.lbi'); ?> <!-- /////////////////////////////////////////////////// --> </body></html> <? } ?>
4.初回のPC/スマートフォンは「getenv('HTTP_USER_AGENT')」を見て決定する。
■.kazphp/check_functions.php <<追加 start>> // スマートフォン判別 function chk_sumapho() { // ブラウザの種類を取得 $ua = getenv('HTTP_USER_AGENT'); if (preg_match('/iPhone/', $ua) || preg_match('/Android/', $ua)) { return true; } return false; } <<追加 end>>
5.その他
(1)IE9で今までの「kaz.js」がエラーになる。 <<修正前 2箇所>> return; false; <<修正後 2箇所>> return false;
6.参考リンク
・jQuery Mobile 1.0a4.1 日本語リファレンス http://dev.screw-axis.com/doc/jquery_mobile
======================
2011/06/04 8:00-21:30 ブラウザのスマートフォン/PC切替処理に一苦労。結果AJAX非同期通信でセッションを書き換えることにした。jQueryなら簡単。・・・ちなみに「jkl-calendar_20090707u.js」では自力でAJAXしている。・・・ほら、jQueryがすごく簡単な事がわかる。
2011/06/05 5:00-12:30 22:00-24:00 スマートフォン用jquery.mobile-1.0a4.1.jsで”to.data page is undefined”というエラーがでる。。。てこづった。が。解決した。
2011/06/06 8:00-9:00 index.phpのセッション消すタイミングを「$mode」が空のときのみに変更する。
2011/06/06 9:00-10:30 menue.lbiのメニューaタグが動かないので調査した。「javascript:do_Submit_fmATag()」を作って動かすことにした。 IE9で、今まで動いていた「kaz.js」の「return; false;」がエラーになるので修正した。
2011/06/06 10:30-20:00 とりあえず自WEBデモサーバにできたものを載せてみた。スマートフォンかIE9かfireFox4.0.1かでURLたたけば行くはず「http://kazpgm.ddo.jp/kaz01u/admin/index.php?mode_suma=yes」、「http://kazpgm.ddo.jp/kaz01u/index.php?mode_suma=yes」。ただし、まだ、ログイン画面(index.php、admin/index.php)とメニュー画面(index1.php、admin/index1.php)だけだけど。
2011/06/07 18:30-20:00 ユーザ側のログイン画面とログイン後のメニュー画面を貼り付けた。
2011/06/05 13:00-17:00 jQuery Mobileのaタグ「通常のリンク」説明発見。「rel="external"」だそうだ。<=「外部指定」ってこのことだった。自分がjavascriptでform・action換えてsubmitしたのはNG。修正する。「<a href="javascript:do_Submit_fmATag('/kaz01u/xxxxxx);">」を「<a href="/kaz01u/xxxxxx" rel="external">」にした。「kaz.js」のdo_Submit_fmATagを削除した。
2011/11/22 15:00-16:00 PCボタン押したらすぐにリロードするように変えた。
kaz/js/または、kaz/admin/js/)kaz.jsの //-- ブラウザのスマートフォン/PC切替処理 function on_btn_mode_suma() { ・・・ success: function(data, status, xhr){ alert('次の処理からブラウザが' + data + 'に切り替わります。'); }, を success: function(data, status, xhr){ //alert('次の処理からブラウザが' + data + 'に切り替わります。'); window.location.reload(); }, に変更した。