개발人

FSO를 이용한 스킨 및 템플릿 방식을 클래스로 만들어본것입니다. 본문

Classic ASP

FSO를 이용한 스킨 및 템플릿 방식을 클래스로 만들어본것입니다.

NJHouse 2015. 5. 24. 14:09
반응형
보통 ASP 로 스킨이나 템플릿을 만들때 ssi 나 server.execute 를 많이 사용합니다.
그러나 ssi 는 asp 의 영역에서 벗어나 있고,server.execute 는 스킨파일과 변수 호환에 어려움이 많습니다.
다음은 .. 알고리즘이랄것도 없지만 .. 제가 일반적으로 사용하는 FSO를 이용한 스킨 및 템플릿 방식을 클래스로 만들어본것입니다.
그리고 현재 제 사이트에서도 유사하게 사용되고 있습니다.


class xe_skin

dim mem_skin_url '스킨 경로를 가지는 멤버변수
dim mem_now_skin_str '스킨 내용을 가지는 멤버변수

function xe_skin (skin_url,now_skin_str) '생성자,멤버변수 초기화
mem_skin_url = skin_url
mem_now_skin_str = now_skin_str
end function

function open_skin() ' 스킨 파일열기
dim strFname,objFile,out
strFname=Server.MapPath(mem_skin_url)
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
Set out = objFile.OpenTextFile(strFname,1)

if out.AtEndOfStream = False then mem_now_skin_str = out.readall

out.close
set out = nothing
set objFile = nothing
end function

function replace_skin (spot,html) '스킨을 파싱하는 함수
mem_now_skin_str = replace (mem_now_skin_str,"<!--" & spot & "-->",html)
end function

function print_skin () '스킨을 출력하는 함수
response.write mem_now_skin_str
end function

function close_skin ()
mem_skin_url = ""
mem_now_skin_str = ""
end function

end class

적용

/ 에 parser.asp
/skin/test_skin/ 에 skin.html
/skin/text_skin/images 애 이미지들

1. /parser.asp

skin_folder = "skin/test_skin"
skin_file = "skin.html"
init_str = 스킨 파일전에 항상 포함되는 문자열등 (보통 "" 으로 줘도 상관없을듯)

set Skin = new xe_skin
call xe_skin(skin_folder & "/" & skin_file,init_str)
call Skin.open_skin

call Skin.replace_skin ("@now_time","지금 시각 : " & now)
call Skin.replace_skin ("@skin_url",skin_folder)

call Skin.print_skin
call Skin.close_skin
set Skin = nothing


2. /skin/test_skin/skin.html

<html>
<!--@now_time-->
<br>
<img src="<!--@skin_url-->/이미지 파일명">
</html>
출처 : http://iendev.nbloger.com



반응형

'Classic ASP' 카테고리의 다른 글

[ASP] 데이타 형식  (0) 2015.05.24
ASP - Dictionnary 객체,Scripting 객체  (0) 2015.05.24
getrows()  (0) 2015.05.24
DB 에 연결된 select box 사용시  (0) 2015.05.24
ASP 에서 트래백 내보네기  (0) 2015.05.23
Comments