written: Jul 16 2008
멤버함수의 분류
사용자에게 공개된 멤버함수는 크게 2개의 그룹으로 분류됩니다.
# 템플릿 문서를 다루는 멤버함수
- 생성자
- parse(string $template_handle, string $template_file)
- parse_str(string $template_handle, string $template_string)
# 블록요소를 다루는 멤버함수
- assign([string $operator])
- output()
템플릿 문서를 다루는 멤버함수
[code php;gutter:false]
require_once('class.Tempo2.php');
$tempo = &new Tempo2;
$tempo->parse('eRoot', 'templates/tempo.sample.htm');
[/code]
< 템플릿 문서를 다루는 과정 >
생성자 Tempo2
생성자 Tempo2는 new 연산자를 통해 새로운 객체를 생성해 줍니다. PHP4에서는 반드시 참조연산자(&)를 사용하여야 하며, 그렇지 않으면 템플릿으로부터 만들어진 HTML 문서가 출력되지 않습니다.
[code php;gutter:false]
$tempo = &new Tempo;
[/code]
parse(string $template_handle, string $template_filename)
파일 형식의 템플릿 문서를 파싱해 줍니다. 첫번째 인수는 파싱된 최상위 블록요소인 템플릿 문서의 객체에 접근할 때 사용해야 하는 템플릿 핸들입니다. 두번째 인수는 템플릿 문서의 파일명을 나타냅니다.
[code php;gutter:false]
$tempo->parse('eRoot', 'templates/tempo.sample.htm');
[/code]
parse_str(string $template_handle, string $template_string)
문자열 형식의 템플릿 문서를 파싱해 줍니다. 첫번째 인수는 parse() 멤버함수의 경우와 동일하며, 두번째 인수는 템플릿 문서를 문자열 형식으로 직접 지정해 줍니다.
[code php;gutter:false]
$tempo->parse_str('eRoot', '<p>[[[ <?=$TEMPO_VAR?> ]]]</p>');
[/code]
예를 들면:
[code php;gutter:false]
<?php
require_once('class.Tempo.php');
$tempo = new Tempo;
$tempo->parse('eRoot', '<p>[[[ <$TEMPO_VAR/> ]]]</p>');
[/code]
< PHP coding >
블록요소를 다루는 멤버함수
assign([string $operator])
이 멤버함수를 실행하게 되면 블록요소 내용에 포함된 모든 PHP 코드가 평가되어 그 결과를 멤버변수 innerHTML에 저장합니다.
[code php;gutter:false]
$tempo->parse('eRoot', $template_contents);
$tempo->el['eRoot']->assign();
[/code]
< PHP coding >
멤버함수 assign()의 첫번째 인수는 할당하는 방법을 나타내는 것으로 빈문자열, '=', 또는 '.'를 지정할 수 있습니다. 생략하게 되면 '='를 지정한 것과 같습니다. 빈문자열을 지정하면 멤버변수 innerHTML의 내용을 삭제합니다. '='를 지정하면 멤버 변수 innerHTML의 내용을 삭제한 후 블록요소를 평가합니다. '.'를 지정하면 평가한 결과를 innerHTML의 기록되어 있는 기존의 내용에 덧붙이게 됩니다.
[code php;gutter:false]
$tempo->el['eLoop']->assign('');
for ($i=0; $i<3; $i++) {
$tempo->el['eLoop']->assign('.');
}
$tempo->el['eRoot']->assign('=');
[/code]
output()
블록요소의 멤버변수 innerHTML의 내용을 분석하여 내용을 재분류한 후 내부버퍼에 저장한 후 스크립트가 종료할 때 출력해줍니다.
[code php;gutter:false]
$tempo->parse('eRoot', $template_contents);
$tempo->el['eRoot']->assign();
$tempo->el['eRoot']->output();
[/code]
'phpsource > 템플릿' 카테고리의 다른 글
{템포2}6.다운로드 (0) | 2008.07.16 |
---|---|
{템포2}5.다이나믹블록 (0) | 2008.07.16 |
{템포2}3.템플릿 문서 (0) | 2008.07.16 |
{템포2}2.기초다지기 (0) | 2008.07.16 |
{템포2}1.소개 (0) | 2008.07.16 |