トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

Smarty

Smarty

[PHP]
最終更新時間:2010年09月14日 11時06分15秒

インストール

※Linuxバージョンとmacバージョンが混ざっているのでそこは都度変更を行う必要がある。†

 $ wget http://www.smarty.net/do_download.php?download_file=Smarty-2.6.26.tar.gz
 $ tar xvfz Smarty-2.6.26.tar.gz
 $ cd Smarty-2.6.26/
 $ mkdir -p /usr/local/lib/php/Smarty/
 $ cp -R libs /usr/local/lib/php/Smarty/
 $ vim /etc/php.ini
 
     include_path = ".:/php/includes:/usr/local/lib"         // ここを追加
 
 $ /etc/init.d/httpd restart
 $ mkdir -p /Library/WebServer/smarty/templates        // テンプレート保存場所
 $ mkdir -p /Library/WebServer/smarty/templates_c
 $ mkdir -p /Library/WebServer/smarty/configs
 $ cd /Library/WebServer/Documents/index.php
   
   <?php
     require_once('php/Smarty/Smarty.class.php');
     $smarty = new Smarty;
     $smarty->template_dir = '/Library/WebServer/smarty/templates';
     $smarty->compile_dir = '/Library/WebServer/smarty/templates_c';
     
     $smarty->assign('name', 'kichon');
     
     $smarty->display('index.tpl');
 
 $ vim /Library/WebServer/smarty/templates/index.tpl
 
   <html>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <title>Smarty Test</title>
   </head>
   <body>
   
   <p>ユーザ情報:</p>
   名前:{$name}<br>
   </body>
   </html>

基礎

 

スクリプト作成
 # vim index.php
   <?php
   require_once('php/Smarty/Smarty.class.php');
   $smarty = new Smarty;
   $smarty->template_dir = '/Library/WebServer/smarty/templates';
   $smarty->compile_dir = '/Library/WebServer/smarty/templates_c';
   
   $smarty->assign('name', 'Kichon');
   $smarty->assign('url', 'http://kichon.net/');
   
   $smarty->display('index.tpl');
テンプレート作成
# vim /Library/WebServer/smarty/templates/index.tpl
   <html>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <title>Smarty Test</title>
   </head>
   <body>
   
   <p>ユーザ情報:</p>
   名前:{$name}<br>
   URL:<a href="{$url}">{$url}</a><br>
   日付:{$smarty.now|date_format:"%Y年%m月%d日"}<br>
   </body>
   </html>

 使い方

スクリプト
  • require_onceでsmartyのクラスを呼び出す
  • Smartyクラスのインスタンスを作成する
  • template_dir, compile_dirでディレクトリを設定する
  • assign('name', $name)で変数を設定する
  • display('index.tpl')でテンプレートファイルの指定
テンプレート
  • {$name}で変数を呼び出す

条件分岐

参考

http://www.php-labo.net/tutorial/class/smarty.html
http://www.smarty.net/manual/ja/