¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

PHP/Smarty ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×(No.4)


[PHP]


Smarty´ØÏ¢¥ê¥ó¥¯

¥³¥á¥ó¥È

¥³¥á¥ó¥È¤Ï¼¡¤Î¤è¤¦¤Ëµ­½Ò¤·¤Þ¤¹¡£
foo.tpl

{* ¤³¤ì¤ÏSmarty¤Î¥³¥á¥ó¥È¤Ç¤¹ *}

Æþ¤ì»Ò¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó¡£

Äê¿ô

¥Æ¥ó¥×¥ì¡¼¥È¤ÇÄê¿ô¤òÄêµÁ¤·¤Æɽ¼¨

ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤ëÊÑ¿ôÄêµÁ
foo.conf

fax = '111-222-3333'

foo.tpl

{config_load file='foo.conf'}
{#fax#}

PHP¤ÇÄê¿ô¤òÄêµÁ¤·¤Æɽ¼¨

foo.php

define('FAX','111-222-3333');

foo.tpl

{$smarty.const.FAX}

¢¨Í½ÌóÊÑ¿ô{$smarty}¤òÍøÍѤ·¤Þ¤¹¡£

ÊÑ¿ô

¥Æ¥ó¥×¥ì¡¼¥È¤ÇÊÑ¿ô¤òÄêµÁ¤·¤Æɽ¼¨

foo.tpl

{assign var=fax value='111-222-3333'}
{$fax}

PHP¤ÇÊÑ¿ô¤òÄêµÁ¤·¤Æɽ¼¨

foo.php

$smarty = new Smarty();
$smarty->assign('fax', '111-222-3333');

foo.tpl

{$fax}

Ï¢ÁÛÇÛÎóÊÑ¿ô

PHP¤ÇÏ¢ÁÛÇÛÎóÊÑ¿ô¤òÄêµÁ¤·¤Æɽ¼¨

foo.php

$smarty = new Smarty();
$smarty->assign('foo',
	array('fax' => '111-222-3333',
		'email' => 'zaphod@slartibartfast.example.com',
		'phone' => array('home' => '111-222-3334',
						'cell' => '111-222-3335')
					)
	);

foo.tpl

{$foo.fax}

Ï¢ÁÛÇÛÎóÊÑ¿ô$foo['fax']¤òɽ¼¨ ¢¨Ï¢ÁÛÇÛÎó¤Ï¥Ô¥ê¥ª¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ ¢¨Ä̾ï¤ÎÇÛÎó¤Ï{$foo[4]}¤È¤¤¤¦É÷¤Ë¤½¤Î¤Þ¤Þ¥Æ¥ó¥×¥ì¡¼¥È¤Ëµ­½Ò¤·¤Þ¤¹

ͽÌóÊÑ¿ô{$smarty}

¥Ú¡¼¥¸Æɤ߹þ¤ß»þÅÀ¤ÇÍøÍѲÄǽ¤ÊͽÌóÊÑ¿ô{$smarty}

»ÈÍÑÎãÆâÍÆPHP¤Ç¤Îɽµ­
Smarty¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï{$smarty.version}¤Ç¤¹¡£Smarty¤Î¥Ð¡¼¥¸¥ç¥ó-
¸½ºß¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë̾¤Ï{$smarty.template}¤Ç¤¹¡£¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë̾-
<a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a>HTML¥Õ¥¡¥¤¥ë̾-
Smarty¤Ç¤Î¥Ç¥ê¥ß¥¿¤Ï {$smarty.ldelim} ¤È {$smarty.rdelim} ¤Ç¤¹¡£Smarty¤Î¥Ç¥ê¥ß¥¿-
{$smarty.get.foo}get¥Ñ¥é¥á¡¼¥¿foo¤ÎÃÍ¡£$_GET['foo']
{$smarty.post.foo}post¥Ñ¥é¥á¡¼¥¿foo¤ÎÃÍ¡£$_POST['foo']
{$smarty.cookies.foo}¥¯¥Ã¥­¡¼ÊÑ¿ôfoo¤ÎÃÍ¡£$_COOKIE['foo']
{$smarty.server.HTTP_USER_AGENT}¥µ¡¼¥ÐÊÑ¿ôHTTP_USER_AGENT¤ÎÃÍ¡£$_SERVER['HTTP_USER_AGENT']
{$smarty.env.PATH}´Ä¶­ÊÑ¿ôPATH¤ÎÃÍ¡£$_ENV['PATH']
{$smarty.session.foo}¥»¥Ã¥·¥ç¥óÊÑ¿ôfoo¤ÎÃÍ¡£$_SESSION['foo']
{$smarty.request.foo}get, post, cookies, server, env¤É¤ì¤«¤Îfoo¤ÎÃÍ-
{$smarty.const.MY_CONST}PHP¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤·¤¿ÃÍdefine('MY_CONST', 'abc');MY_CONST
1970ǯ1·î1Æü¤«¤é¸½ºß¤Þ¤Ç¤Î·Ð²áÉÿô¤Ï{$smarty.now}ÉäǤ¹¡£1970ǯ1·î1Æü¤«¤é¤Î·Ð²áÉÿô-
¸½ºß¤ÎÆü»þ¤Ï{$smarty.now|date_format:'%Y/%m/%d %H:%M:%S'}¤Ç¤¹¡£¸½ºßÆü»þɽ¼¨-

{foreach}¥ë¡¼¥×¤ÇÍøÍѲÄǽ¤ÊͽÌóÊÑ¿ô{$smarty}

»ÈÍÑÎãÆâÍÆÃÍ
{$smarty.foreach.loopname.iteration}¥ë¡¼¥×²ó¿ô1, 2, 3, ...
{$smarty.foreach.loopname.index}¥¤¥ó¥Ç¥Ã¥¯¥¹0, 1, 2, ...
{if $smarty.foreach.loopname.first}ºÇ½é¤Î¹àÌܤ«¤É¤¦¤«¿¿µ¶ÃÍtrue, false
{elseif $smarty.foreach.loopname.last}ºÇ¸å¤Î¹àÌܤ«¤É¤¦¤«¿¿µ¶ÃÍtrue, false
{$smarty.foreach.loopname.total}¥ë¡¼¥×¤Î¥È¡¼¥¿¥ë²ó¿ô¡£¥ë¡¼¥×¤òÈ´¤±¤Æ¤âÍøÍѲÄǽ¿ôÃÍ

{capture}¤ÇÍøÍѲÄǽ¤È¤Ê¤ëͽÌóÊÑ¿ô{$smarty}

{capture}¥¿¥°¤Ç°Ï¤Þ¤ì¤¿½ÐÎÏÆâÍƤòname°À­¤Ç»ØÄꤷ¤¿ÊÑ¿ô¤Ë¼èÆÀ¤·¤Þ¤¹¡£
{capture}»ÈÍÑÎã

{* ¥³¥ó¥Æ¥ó¥Ä¤¬É½¼¨¤µ¤ì¤Ê¤¤¸Â¤ê¡¢¥Æ¡¼¥Ö¥ë¤Î¹Ô¤òɽ¼¨¤·¤Þ¤»¤ó *}
{capture name=banner}
	{include file='get_banner.tpl'}
{/capture}

{if $smarty.capture.banner != ''}
	<div id="banner">{$smarty.capture.banner}</div>
{/if}

¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç·×»»¤¹¤ëÊýË¡

ÇÛÎó¤Ç¥Ò¥Ã¥È¤·¤¿¹àÌÜ¿ô¡¢¤ª¤è¤Ó¡¢¥Ò¥Ã¥È¤·¤Ê¤¤¹àÌÜ¿ô¤ò¥«¥¦¥ó¥È¤¹¤ëÎã
foreach¤ÎÁ°¤Ç¥«¥¦¥ó¥¿¤ò½é´ü²½

 {assign var = "hit_count" value = 0}

foreach¤ÎÃæ¤Ç¥Þ¥Ã¥Á¤·¤¿¹Ô¤ò¥«¥¦¥ó¥È

 {math equation = "x + 1" x = $hit_count assign = hit_count}

foreach¸å¤Ë¥ë¡¼¥×²ó¿ô¤«¤é¥Þ¥Ã¥Á¤·¤¿¹Ô¤ò°ú¤¤¤Æ¡¢»Ä¤ê¹Ô¿ô¤òµá¤á¤ë

 {math equation = "x - y" x = $smarty.foreach.list_loop.total y = $hit_count assign = unhit_count}

ɽ¼¨

 ¥Ò¥Ã¥È¤·¤¿¤Î¤Ï{$hit_count}²ó¤Ç¤¹¡£<br />
 ¥Ò¥Ã¥È¤·¤Ê¤«¤Ã¤¿¤Î¤Ï{$unhit_count}²ó¤Ç¤¹¡£

¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Çʸ»úÎó¹çÀ®¤¹¤ëÊýË¡

{assign var = "now_date" value = "`$v.year`/`$v.month`/`$v.date`"}