Zend FrameworkとSmartyの連携:その2-Smarty対応テンプレート

■ application.iniの修正

zf コマンドで作成された状態

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH “/../library”
bootstrap.path = APPLICATION_PATH “/Bootstrap.php”
bootstrap.class = “Bootstrap”
appnamespace = “Application”
resources.frontController.controllerDirectory = APPLICATION_PATH “/controllers”
resources.frontController.params.displayExceptions = 0

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

下記、太字の行を追加する。

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH “/../library”
bootstrap.path = APPLICATION_PATH “/Bootstrap.php”
bootstrap.class = “Bootstrap”
appnamespace = “Application”
resources.frontController.controllerDirectory = APPLICATION_PATH “/controllers”
resources.frontController.params.displayExceptions = 0

resources.layout.layoutPath = APPLICATION_PATH “/layouts/scripts”
resources.layout.viewSuffix = “tpl”

view.smarty.cache_dir = APPLICATION_PATH “/../data/smarty/cache/”
view.smarty.compile_dir = APPLICATION_PATH “/../data/smarty/templates_c/”
view.scriptPath = APPLICATION_PATH “/views/scripts”

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

■ layout.tplの作成

{$content}

layout.tpl のサンプルで、以下のような内容が多くあります。

<!DOCTYPE HTML>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>Smarty and ZendFramework test</title>
</head>
<body>
{$content|smarty:nodefaults}
</body>

これは、 {$content|smarty:nodefaults} の個所が、viewで定義した index.tpl の内容に入れ替わる大枠のテンプレートとなる。しかし、body 内だけだと、自由度が低くなる(?)ので、{$content} のみする。

■ index.tplの修正

<style>
  省略
</style>
<div id=”welcome”>
  省略
<p>
Helpful Links: <br />
<a href=”http://framework.zend.com/”>Zend Framework Website</a>
<a href=”http://framework.zend.com/manual/en/”>Zend Framework Manual</a>
</p>
</div>
</div>

layout.tpl を、{$content}のみにしたので、htmlとしてのタブを前後に追加する。

修正後

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>{$title}</title>
 <style>
  省略  
 </style>
</head>
<body>
<div id=”welcome”>
  省略
<p> Helpful Links: <br /> <a href=”http://framework.zend.com/”>Zend Framework Website</a> <a href=”http://framework.zend.com/manual/en/”>Zend Framework Manual</a> </p> <p>{$message}</p> </div>
</div>
</body>
</html>

補足:
Smartyの動作確認のため、$title と $message の変数を記述

関連リンク

コメントを残す