phpsource/템플릿2008. 7. 16. 01:10
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
Posted by 방글24