1. 템플릿의 댓글
각 Smarty 템플릿 파일은 Smarty 엔진의 구문과 결합된 웹 프런트엔드 언어(xhtml, css, javascript 등)를 통해 개발됩니다.
웹 프론트엔드 개발에 사용된 언어는 원본과 정확히 동일하며 댓글도 변경되지 않았습니다
똑똑한 주석 구문은 '왼쪽 종결자 변수 값*'과 '*오른쪽 종결자 변수 값'입니다. 이 두 구분 기호 사이의 내용은 주석 내용으로, 한 줄 이상 포함될 수 있으며 사용자는 웹 페이지를 탐색하여 볼 수 있습니다. . 원래 코드에는 주석이 표시되지 않으며, 이는 단지 템플릿 내의 주석일 뿐입니다. 다음은 주석의 작은 예입니다.
$smarty->left_lelimiter = '<{';
$smarty->right_delimiter = '}>';
참고: <{* 메모입니다 *}>
코드는 다음과 같습니다 | 코드 복사 | ||||
|
2: 템플릿의 변수 선언
Smarty에서는 모든 것이 변수를 기반으로 하며 모든 프레젠테이션 로직은 템플릿에 의해 제어됩니다
변수에는 여러 가지 유형이 있습니다. 변수 유형은 앞에 붙거나
변수는 직접 출력되거나 직무 속성 및 수식자의 매개변수가 될 수도 있고, 내부 조건식 등에 사용될 수도 있습니다.
<{$name}> <{*일반 유형 변수, 값을 할당하려면 템플릿에서 할당 함수를 호출해야 합니다*}>
;;
>
참고: 템플릿은 PHP에서 할당된 변수만 출력할 수 있습니다. 이 변수는 모두 전역 변수이므로 한 번만 할당하면 됩니다. 변수 내용은 주로 마지막에 할당됩니다.
Smarty에서 제공되는 foreach 또는 section 문은 출력 배열의 각 요소를 반복하는 데 사용됩니다. 인덱스 배열과 연관 배열이 템플릿에서 출력되는 방식은 인덱스 배열이 템플릿에서 액세스되고 PHP 스크립트에서 참조되는 방식과 유사합니다. , 연관 배열의 요소가 템플릿에 지정되는 방식은 '.'을 사용하여 액세스됩니다.
템플릿의 객체에 액세스하는 것은 PHP 스크립트와 동일하며 둘 다 '->' 연산자를 사용합니다.
4: Smarty 템플릿의 변수 수학적 계산
템플릿의 변수에 값을 직접 할당할 수는 없지만 수학 연산에 참여할 수는 있습니다. PHP 스크립트에서 수학 연산을 수행할 수 있으면 아래와 같이 템플릿에 적용할 수 있습니다.
<{$foo 1}> <{* 변수 + 1 *}>
<{$foo * $bar}> <{* 두 변수 곱하기 *}>
<{$foo->bar - $bar[1] * $foo->bar - 3 * 7}> <{* 연산에 참여하는 복합 유형 변수 *}>
<{if($foo 2 == 10)}> <{* 프로그램 로직에 수학적 연산이 적용됩니다 *}>
코드는 다음과 같습니다 | 코드 복사 | ||||
<{$foo 1}> <{* 변수 + 1 *}>
|
큰따옴표 안에 포함된 변수는 Smarty 템플릿에서 인식될 수 있지만 일부 변수는 아래와 같이 백틱 '`'으로 묶어야 합니다(이 기호는 '~'와 동일한 키에 있음).
코드는 다음과 같습니다 | 코드 복사 | ||||
|
<{"test `$foo[0]` test"}<{* 큰따옴표로 묶인 배열 변수 *}>
<{"test `$foo.bar` test"}> <{* 큰따옴표로 묶인 객체 멤버 변수 *}>
1단계: 다음과 같은 Smarty 템플릿 엔진 로드: require 'libs/Smarty.class.php'
2단계: $smarty = new Smarty();
3단계: 캐싱 활성화, 템플릿 저장 경로 등과 같은 Smarty의 기본 동작을 수정합니다.
4단계: 프로그램에서 얻은 데이터를 Smarty 객체의 할당() 메소드를 통해 템플릿의 해당 변수에 할당
5단계: Smarty 객체의 display() 메소드를 사용하여 템플릿 콘텐츠 출력
할당() 메소드
이 방법은 템플릿의 변수에 값을 할당하는 데 사용되므로 사용하기가 더 쉽습니다
프로토타입: void 할당(문자열 변수 이름, 혼합 변수)
이 메소드는 PHP가 지원하는 유형 데이터를 배열 및 객체를 포함한 템플릿 변수에 할당할 수 있습니다
사용방법은 2가지가 있습니다
//'이름/값' 쌍을 지정합니다
$smarty->할당('질문','잘 지내세요');
$smarty->할당('답변','별로 좋지 않음');
//'이름/값'을 포함하도록 지정
$smarty->할당(array('question' => '잘 지내세요','답변' => '별로 좋지 않아요'));//이 방법은 덜 일반적으로 사용됩니다
디스플레이() 메소드
이 방법은 Smarty 기반 스크립트에서 사용해야 하며 스크립트에서 한 번만 사용할 수 있습니다. Smarty 엔진에서 참조하는 템플릿을 가져오고 표시하는 역할을 담당합니다
프로토타입: var display(string template[,string 캐시_id][,string compile_id])
매개변수 1: 템플릿이 필수입니다. 법적 템플릿 리소스의 유형과 경로를 지정하세요.
매개변수 2: 캐시_id는 캐시 식별자의 이름을 지정합니다.
매개변수 3: compile_id는 한 페이지에 여러 캐시를 유지할 때 사용됩니다.
사용방법은 다음과 같습니다
$smarty->display('tpl/template_dir/template.html');
간단한 예
1. libs: Smarty 클래스 라이브러리입니다
2. tpl/cache_dir: 캐시 템플릿 저장
3. tpl/compile_dir: 컴파일된 템플릿 파일을 저장합니다
4. tpl/config_dir: 특수 구성 파일을 저장합니다
5. tpl/template_dir: 템플릿 파일 저장
6. smarty.php 파일에 Smarty 클래스 개체를 새로 만들고 다음 코드와 같이 각 개체의 속성 값을 설정합니다.
'libs/Smarty.class.php' 필요; // Smarty.Class.php 파일 로드
~ >
$ TPL- & GT; site_root.'Template_dir' // 저장 템플릿 파일
$tpl->compile_dir = SITE_ROOT .'compile_dir';//컴파일된 템플릿 파일 저장
$tpl->config_dir = SITE_ROOT .'config_dir';//특수 구성 파일 저장
~ $tpl->cache_dir = 'cache_dir';//Smarty 캐시 파일 저장
$tpl->caching = 1;//캐싱 활성화
$tpl->cache_lifetime = 60*60*24;//캐시 시간 1일
$tpl->left_delimiter = '<{';//왼쪽 종결자
을 통해
코드는 다음과 같습니다 | 코드 복사 | ||||||||||||
7.index.php 파일의 홈페이지 코드는 다음과 같습니다
8.tpl/template_dir/template.html 코드는 다음과 같습니다
~
~
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
URL 매개변수에서 얻은 PHP 배열이 예상대로 작동하지 않습니다.
카테고리 ID가 포함된 URL 매개변수가 있고 이를 다음과 같은 배열로 처리하려고 합니다. http://example.com?cat[]=3,9,13 PHP에서는 ...
에서 2024-04-06 22:09:02
0
1
1428
반환 값의 변수 형식은 무엇입니까?
저는 PHP를 처음 배우는 사람입니다. 코드 조각을 찾았습니다: if($x<time()){return[false,'error'];} 논리나 변수는 중요하지 ...
에서 2024-04-06 21:55:20
0
1
778
루프 오버를 위해 ID별로 MySQL 결과 그룹화
mysql에 비행 데이터가 포함된 테이블이 있습니다. codeigniter3 travel_idair_idFlightDurationout_or_inflightdur...
에서 2024-04-06 17:27:56
0
1
406
관련 주제
더>
|