Smarty 메뉴얼을 보면 자바스크립트를 처리하기위해
{literal}{/literal} 구문과 {rdelim}{ldelim}이 준비되어 있다.
그냥 자바스크립트만 있는경우, 자바스크립트안에 스마티 변수를 사용하는 경우
나누어서 테스트해 봤다.
이렇게는 별로 사용되지 않을거지만 필요한 경우에는 유용한듯 하다.
[1.php]
위의 html의 자바스크립트 부분을 보면 {literal}{/literal} 구문과 {rdelim}{ldelim} 구문이 쓰여진것을
확인할수 있을것이다. display_str()함수안에 스마티 변수를 사용했는데
{literal}{/literal}로 묶었을경우나 {literal}{rdelim}{ldelim}{/literal}로 묶었을경우
정상적으로 표시되지 않았다
결국 스크립트안의 스마티 변수를 사용하기 위해 {rdelim}{ldelim}만 따로 사용하고
스마티 변수가 사용되지 않는 스크립트는 따로 {literal}{/literal}묶어서 사용한결과
에러 없이 정상적으로 동작하였다.
출처 : http://blog.naver.com/parkjy76/30044584243
{literal}{/literal} 구문과 {rdelim}{ldelim}이 준비되어 있다.
그냥 자바스크립트만 있는경우, 자바스크립트안에 스마티 변수를 사용하는 경우
나누어서 테스트해 봤다.
이렇게는 별로 사용되지 않을거지만 필요한 경우에는 유용한듯 하다.
[1.php]
<?php
require('Smarty/Smarty.class.php');
$smartyObj = new Smarty;
$smartyObj->template_dir = "Smarty/templates/";
$smartyObj->compile_dir = "Smarty/templates_c/";
$smartyObj->config_dir = "Smarty/configs/";
$smartyObj->cache_dir = "Smarty/cache/";
$smartyObj->debugging = TRUE;
$smartyObj->assign('str', 'Click');
$smartyObj->display('1.html');
?>
require('Smarty/Smarty.class.php');
$smartyObj = new Smarty;
$smartyObj->template_dir = "Smarty/templates/";
$smartyObj->compile_dir = "Smarty/templates_c/";
$smartyObj->config_dir = "Smarty/configs/";
$smartyObj->cache_dir = "Smarty/cache/";
$smartyObj->debugging = TRUE;
$smartyObj->assign('str', 'Click');
$smartyObj->display('1.html');
?>
[1.html]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/html4/strict.dtd">
<html lang="ja" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>template test</title>
<script language="javascript">
<!--
function display_str()
{ldelim}
alert("{$str}");
{rdelim}
// -->
</script>
{literal}
<script language="javascript">
<!--
function display_str2()
{
alert("Good");
}
// -->
</script>
{/literal}
</head>
<body>
<h1>Template Test Page</h1>
<div><input type="button" value="{$str}" onClick="display_str();" /></div>
<div><input type="button" value="{$str}2" onClick="display_str2();" /></div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/html4/strict.dtd">
<html lang="ja" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>template test</title>
<script language="javascript">
<!--
function display_str()
{ldelim}
alert("{$str}");
{rdelim}
// -->
</script>
{literal}
<script language="javascript">
<!--
function display_str2()
{
alert("Good");
}
// -->
</script>
{/literal}
</head>
<body>
<h1>Template Test Page</h1>
<div><input type="button" value="{$str}" onClick="display_str();" /></div>
<div><input type="button" value="{$str}2" onClick="display_str2();" /></div>
</body>
</html>
위의 html의 자바스크립트 부분을 보면 {literal}{/literal} 구문과 {rdelim}{ldelim} 구문이 쓰여진것을
확인할수 있을것이다. display_str()함수안에 스마티 변수를 사용했는데
{literal}{/literal}로 묶었을경우나 {literal}{rdelim}{ldelim}{/literal}로 묶었을경우
정상적으로 표시되지 않았다
결국 스크립트안의 스마티 변수를 사용하기 위해 {rdelim}{ldelim}만 따로 사용하고
스마티 변수가 사용되지 않는 스크립트는 따로 {literal}{/literal}묶어서 사용한결과
에러 없이 정상적으로 동작하였다.
출처 : http://blog.naver.com/parkjy76/30044584243
'프로그래밍 > PHP' 카테고리의 다른 글
PHP 이미지 변환 BMP to JPG (0) | 2009.12.09 |
---|---|
php 정규식 문자열 체크 (0) | 2009.10.23 |
함수 존재 확인, 메소드 존재 확인 (0) | 2009.10.01 |
.htaccess 파일 관련 (0) | 2009.09.25 |
XML파싱때 주의할점 (0) | 2009.08.19 |