반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프렌치프레스
- xamarin.android
- NGUI
- 커피
- xamarin.forms
- KO
- Classic ASP
- Android
- 원두
- ServerVariables
- 드립 커피
- 미디엄 로스팅
- 라이트 로스팅
- fso
- 아라비카
- 함수
- vbscript
- shared
- 제주도
- 태그를 입력해 주세요.
- 자마린
- xamarin
- liberica
- asp
- 수마트라 원두
- Unity
- 템플릿
- KnockoutJS
- 여행
- robusta
Archives
- Today
- Total
개발人
FSO를 이용한 스킨 및 템플릿 방식을 클래스로 만들어본것입니다. 본문
반응형
보통 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
그러나 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>
반응형
'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