유닛테이블은 템플릿 기능과 레이아웃 기능을 모두 가지고 있는 페이지툴!!!
- FastTemplate와 같은 템플릿 기능
- VH layout과 같은 페이지 레이아웃 기능
ut-0.1.3의 사용 환경
- PHP(3 또는 4) + DB Layer(MiniDB, PHPLIB)
- DB Layer에 따른 지원 데이터베이스
- MiniDB : MySQL, 오라클(ORA), 오라클(OCI), PostgreSQL, SyBASE, MSQL, MSSQL
- PHPLIB : MySQL, 오라클(ORA), 오라클(OCI), PostgreSQL, SyBASE, MSQL, MSSQL, ODBC
데이터베이스 | PHPLIB 7.2 | Mini DB 0.1.1 |
---|---|---|
MSQL | O | O |
MSSQL | O | O |
MySQL | O | O |
Oracle(OCI) | O | O |
Oracle(ORA) | O | O |
ODBC | O | X |
PostgreSQL | O | O |
SyBASE | O | O |
PHPLIB의 라이브러리를 사용하면서 발생하는 문제는 해당 웹사이트의 게시판을 통해 문제점을 해결하세요. phpCLASS 홈페이지에서는 MiniDB에 대한 질문만 받습니다.
템플릿 파일 구성
홈페이지를 구성하는 레이아웃과 기본 데이터는 별도의 템플릿 파일로 처리합니다. 구성된 레이아웃 내에 채워질 데이터는 아래와 같이 다양한 방법으로 제공될 수 있습니다.
- 템플릿 파일 내의 지역변수를 이용하는 방법
- PHP의 전역변수를 이용하는 방법
- PHP의 전역함수를 이용하는 방법
- PHP 클래스의 프로퍼티를 이용하는 방법
- PHP 클래스의 메소드를 이용하는 방법
- 별도의 텍스트 파일을 이용하는 방법
아래는 임의의 템플릿 파일을 예로 나타내었습니다.
// 기본 패널을 구성하는 유닛 테이블
;table:main attrib=width:740px;border:0
; group: attrib=bgcolor:white;align:center
; td: value=table:top attrib=valign:bottom
; td: value=table:middle attrib=valign:top
; td: value=table:bottom attrib=valign:top
;table:middle ctrl=cols:3 attrib=border:0;width:96%
; group:
; td: value=table:left attrib=width:150px
; td: value=table:center
; td: value=table:right attrib=width:140px
// 상단을 구성하는 유닛 테이블
$v1 = {
;table:main attrib=width:740px;border:0
; group: attrib=bgcolor:white;align:center
; td: value=table:top attrib=valign:bottom
; td: value=table:middle attrib=valign:top
; td: value=table:bottom attrib=valign:top
;table:middle ctrl=cols:3 attrib=border:0;width:96%
; group:
; td: value=table:left attrib=width:150px
; td: value=table:center
; td: value=table:right attrib=width:140px
// 상단을 구성하는 유닛 테이블
$v1 = {
템플릿 파일은 PHP와 전혀 관계없는 일반 텍스트 파일이며, 파일 내용은 아래와 같이 세 부분으로 구분됩니다.
"//"로 시작되는 것은 한 줄 짜리 주석을 나타냅니다.
"$"로 시작되는 것은 템플릿 파일 내에서만 사용되는 지역변수를 나타냅니다.
마지막으로 ";"로 시작되는 부분이 실제 사용되는 템플릿 영역입니다. 하나의 "table:"이 "<TABLE>...</TABLE>"를 나타냅니다. "table:" 바로 아래에 있는 "group:"이 하나 이상의 "<TR>...</TR>" 짝을 나타냅니다. 그 밑에 있는 여러 개의 "td:" 각각이 "<TD>...</TD>"를 나타냅니다.
PHP 코드의 구성
아래는 PHP 코드 부분을 나타낸 것으로 서버사이드 스크립트에서 처리할 내용이 가장 먼저 나타나고, 페이지웍스(유닛테이블 내포) 클래스에 대한 객체를 생성하고, 유닛테이블에 들어갈 데이터를 할당하고, 마지막으로 할당된 데이터와 템플릿에 설정한 레이아웃 구조를 해석하여 필요한 HTML 태그를 생성하고 출력해주는 parseprint() 메소드를 실행합니다.
[code php;gutter:false]
<?php
//======================================
// 서버사이드 스크립트에서 처리할 내용
//======================================
//======================================
// 객체 생성 부분
//======================================
require("./minidb-0.1.1/class.mysql.php"); // 변경된 부분
require("./class.pageworks.php"); // 변경된 부분
$argv = array("host"=>"localhost",
"user"=>"",
"passowrd"=>"",
"database"=>"",
"table"=>"admin_page",
"pagestatic"=>"test");
$pw = new clsPageworks($argv);
//===============================
// 유닛테이블 템플릿 변수
//===============================
function center_news($tid, $gid, $fid) {
return "2000.7.13 PHP4부터 ..."
. "2000.7.12 PHP에서 공식적으로 ...<BR>";
}
$title = "핍클래스홈(phpCLASS HOME)";
$msg = "본 페이지는 기존의 페이지툴들을 서로 비교&평가...";
//===========================
// 유닛테이블 실행(HTML 생성)
//===========================
$pw->unittable(
".",
array(
"test.ut"
),
array(
"dir_home"=>"./.."
)
);
$pw->head("title", "PHP Class Community");
$pw->head("author", "hwooky");
$pw->head("keywords", "class,클래스,상속,객체");
$pw->head("description", "어서 오시 와요");
$pw->parseprint($modify);
?>
[/code]
템플릿 파일은 하나로 만들어도 되고 필요에 따라 여러 개의 파일로 나누어서 작성하여도 됩니다. 파일을 관리하기에는 하나의 파일이 유리하나 다른 페이지와 템플릿을 공유할 때는 나누어서 작성하는 것이 유리합니다.
'phpsource > 템플릿' 카테고리의 다른 글
{유닛테이블}07.동작 (0) | 2000.08.06 |
---|---|
{유닛테이블}06.구성 (0) | 2000.08.06 |
{유닛테이블}04.VH layout의 소개 (0) | 2000.08.06 |
{유닛테이블}03.FastTemplate의 소개 (0) | 2000.08.06 |
{유닛테이블}02.페이지툴의 필요성 (0) | 2000.08.06 |