ビュー(テンプレート)の基本
テンプレートの拡張子を変更する
共通テンプレートを使用する
URLの書き方
DOCTYPEの書き方
タイトルの書き方 <title>〜</title>
外部スタイルシートの書き方
ビューに関するファイルは下記のようになります。
─ application ├ configs │└ application.ini 設定ファイル ├ controllers │└ IndexController.php アクションコントローラ ├ layouts │└ scripts │ └ layout.phtml 共通レイアウト └ views └ scripts └ index └ index.phtml ページ別レイアウト
テンプレートの拡張子を変更する
標準では、テンプレートファイルの拡張子は『 phtml 』です。
これを『 html 』などに変更する方法です。
設定ファイルで変更する
resources.layout.viewSuffix = "html"
アクションコントローラ内で変更する
$this->_helper->viewRenderer->setViewSuffix('html');
共通テンプレートを使用する
ページ全体のレイアウトを共通化するには、共通テンプレートを作成します。
共通テンプレートの保存先ディレクトリを
/layouts/scripts
とすると、設定ファイルに下記を書くと、共通テンプレートを読むようになります。
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
デフォルトの共通テンプレートファイル名は『 layout.phtml 』になります。
共通テンプレートの書き方
ページごとのテンプレートを書くには下記のように書きます。
<?php echo $this->layout()->content ?>
具体的には
<html> <head> <title>test</title> </head> <body> <p>ヘッダー</p> <?php echo $this->layout()->content ?> <p>フッター</p> </body> </html>
デフォルトの共通テンプレートファイル名を変更する
設定ファイルで変更する
resources.layout.layout = "test"
アクションコントローラ内で変更する
$this->_helper->layout->setLayout('test'); または $this->view->layout()->setLayout('test');
共通テンプレートの使用を無効にする
全体では共通テンプレートを使い、一部のページでは使用しない方法です。
アクションコントローラ内で変更する
$this->_helper->layout->disableLayout(); または $this->view->layout()->disableLayout();
URLの書き方
Zend FrameworkではURLは基本的に相対パスではなく、絶対パスとなります。
たとえば作成したプロジェクトを
http://www.example.com/
から
http://www.example.com/hoge/
に置いたとき、URLをすべて書き直さなくてもすむように、URLをメソッドで記述します。
<?php echo $this->url(array('controller'=>'[コントローラ名]','action'=>'[アクション名]'), 'default', true) ?>
コントローラ名やアクション名を省略すると、indexを使用します。
DOCTYPEの書き方
Zend FrameworkではいくつかのDOCTYPEが用意されています。
定数 | DOCTYPE |
---|---|
XHTML11 | XHTML 1.1 |
XHTML1_STRICT | XHTML 1.0 Strict |
XHTML1_TRANSITIONAL | XHTML 1.0 Transitional |
XHTML1_FRAMESET | XHTML 1.0 Frameset |
XHTML_BASIC1 | XHTML Basic 1.0 |
HTML4_STRICT | HTML 4.01 |
HTML4_LOOSE | HTML 4.01 Transitional |
HTML4_FRAMESET | HTML 4.01 Frameset |
HTML5 | <!DOCTYPE html> |
CUSTOM_XHTML | |
CUSTOM |
HTML5以外はDTDのURLが付きます。
まずはテンプレートで記述する
<?php echo $this->doctype() ?>
コントローラでDOCTYPE仕様を指定する場合
$this->view->doctype('XHTML11');
Bootstrap.phpでDOCTYPE仕様を指定する場合
protected function _initView() { $view = new Zend_View(); $view->doctype('XHTML11'); }
テンプレートでDOCTYPE仕様を指定する場合
テンプレートに書いてしまうと、そもそもメソッドを使用する意味がなくなります。
<?php echo $this->doctype('XHTML11') ?>
タイトルの書き方 <title>〜</title>
まずはテンプレートで記述する
<?php echo $this->headTitle(); ?>
コントローラでタイトルを指定する場合
$this->view->headTitle('タイトル');
Bootstrap.phpでタイトルを指定する場合
protected function _initView() { $view = new Zend_View(); $view->headTitle('タイトル'); }
出力は、『タイトル』ではなくて『<title>タイトル</title>』になります。
外部スタイルシートの書き方
URLと同様に外部スタイルシートの記述も絶対パスとなる。
<?php echo $this->headLink()->appendStylesheet('/css/import.css') ?>
関連記事
- Composerコマンドでウクライナへのメッセージが表示されたことがあります
- Live Commerceとは
- CakePHP、Symfony、Zend Frameworkの比較
- Zend_Authでは重複するID・パスワードに注意
- リダイレクトとフォワード
- クエリデバッグする方法
- 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]: General error' とは
- Zend_DBのSELECTメソッドのまとめ
- Zend_DBの基本
- Zend_Authによる認証 (ログインページを作る)
- Zend Frameworkのデータベース接続
- Smartyを利用する方法
- ビューヘルパー
- 環境を分ける方法
- アクションコントローラの基本
- アクションコントローラとビューの関係
- コマンドで雛形を作る CLIツール
- 推奨ディレクトリ構成
- 環境設定とインストール
- 最小版のファイル一覧
- ファイル一覧
- 基本的な特徴
スポンサーリンク