2012年9月9日日曜日

cakephp2.2 jQuery mobile layout レイアウトファイル

cakephp2.2 + jQuery mobile layout
例えば、レイアウトファイル名を「mobile.ctp」として app/View/Layouts/mobile.ctp に配置する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="Toshio Nakashima">
<title><?php echo $title_for_layout; ?></title>
<?php echo $this->Html->meta('favicon.ico', $this->Html->url('/icons/favicon.ico'), array('type' => 'icon'));  ?>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
</head>

<body lang="ja">

<?php echo $this->Session->flash(); ?>
<?php echo $this->fetch('content');  ?>

</body>
</html>
コントローラ
デモソフトのdemo1とdemo2のコントローラでの記述です。
(何もありませんが)
controller
  public function demo1($id=null) {
   $this->layout = 'mobile';
   $this->set('title_for_layout', 'モバイルdemo1');
  }
  public function demo2($id=null) {
   $this->layout = 'mobile';
   $this->set('title_for_layout', 'モバイルdemo2');
  }

demo1 基本


demo1画面 その1
ソフトの配置等が合っているか、表示してみましょう
<div data-role="page" id="home">
 <div data-role="header" id="header">
  <h1>ソーシャルウェア</h1>
 </div>
 <div data-role="content">
<!-- ------------------------------------------------------    -->
モバイルのページです。<br/>
PCで作った表をそのまま表示しています<br/>
<br/>
<table class="gray">
<tbody>
<tr>
 <th>テーマを選ぶ</th>
 <th>ヘッダー</th>
 <th>フッター</th>
</tr>
<tr>
 <td>テーマ a,b,c,d,</td>
 <td>タイトル表示</td>
 <td>Facebook、Twitte</td>
</tr>
</tbody>
</table>

<!-- ------------------------------------------------------    -->
 </div><!-- id=content -->
 <div data-role="footer" id="footer">
  <h4>Copyright 2012 SoftwareFactoryTokyo inc.</h4>
 </div>
</div><!-- id=home -->

demo2 基本 その2


demo2画面
基本的な部品を配置してみましょう

demo2
<div data-role="page" id="home">
 <div data-role="header" id="header" data-theme="b">
  <h1>ソーシャルウェア</h1>
  <a href="#" data-icon="home" class="ui-btn-left">ホーム</a>
  <a href="#" data-icon="gear" class="ui-btn-right">オプション</a>
 </div>
 <div data-role="content"  data-theme="c">
<!-- ------------------------------------------------------    -->
<div data-role="navbar">
 <ul>
  <li><?php echo $this->Html->link(
      __('Nav-bar デモ1', true), 
      array('controller' =>'menus','action' => 'demo1', ''),
      array('data-transition'=>'')); ?>
  </li>
  <li><?php echo $this->Html->link(
      __('デモ2', true), 
      array('controller' => 'menus','action' => 'demo2', ''),
      array('data-transition' => '') ); ?>
  </li>
  <li><?php echo $this->Html->link(
      __('デモ3', true), 
      array('controller' => 'menus','action' => 'demo3', ''),
      array('data-transition' => '') ); ?></li>
 </ul>
</div>
<br/>
<table class="blue">
<tbody>
<tr><th>テーマの色を選ぶ</th><th>ヘッダー</th><th>フッター</th></tr>
<tr><td>色、表題、ナビゲーション</td><td>Facebook、Twitte</td><td>選択画面を作る</td></tr>
</tbody>
</table>
<br/><br/>
<ul data-role="listview">
 <li><?php echo $this->Html->link('リスト表示 デモ1', array('action' => 'demo1')); ?></li>
 <li><?php echo $this->Html->link('デモ2', array('action' => 'demo1')); ?></li>
 <li><a href="#">イベントリスト</a></li>
 <li><a href="#">チェックインリスト</a></li>
</ul>
<br/>

<!-- ------------------------------------------------------    -->
 </div><!-- id=content -->
 <div data-role="footer" id="footer" data-theme="b" class="ui-bar" data-position="fixed">
 <a href="#" data-role="button" data-icon="star" data-iconpos="left">Twitter</a>
 <a href="#" data-icon="star" data-iconpos="left">Facebook</a>
 <a href="#" data-icon="info" data-iconpos="left">SoftwareFactoryTokyo inc.</a>
 </div>
</div><!-- id=home -->

0 件のコメント:

コメントを投稿