![]() |
웹필터링 스크립트는 쎄지오 웹데몬이 HTML 기반 웹서비스를 구성하는 데 사용합니다. 웹필터링 스크립트는 서버에 저장되어 있는 HTML 문서는 물론 php, cgi, jsp 등의 실행 결과인 HTML 문서에서도 사용됩니다.
1) 웹필터링 표기법 |
맨위로 |
웹필터링은 HTML문서내에 "$# ...#;"형식의 구문으로 표시하는데, "$#"는 필터코드의 시작을 나타내며 "#;"는 끝을 의미합니다. 다음은 필터코드의 표기법을 설명합니다. 쎄지오 이전버전에서는 "#!...;" 형식의 구문이었으나 3.5버전부터 정규 표현식은 "$#...#;"형식으로 바뀌었습니다. 이전 형식은 일부 이상작동을 할 수 있습니다.
✱ 콤마(,)는 다음과 같이 필터예약어와 이후 옵션 등의 구분문자로 사용됩니다. 형식) $#[필터예약어],[선택사항1],[선택사항2],...#; 예) $#u.name#; → 접속자 이름 ✱ 필터예약어는 마침표(.)에 의해 주예약어, 하위예약어의 포함관계로 표시됩니다. 예) $#p.m_del,지우기#; → 게시판에서의 지우기 버튼 ✱ $#if#;, $#else#;, $#fi#; 는 일정 구간을 포함하여 표시합니다. 예) $#if u.lv<1#; 손님 $#else#;$#u.name#;님$#fi#; 어서오세요. → 손님 어서오세요 → 한여름(summer)님 어서오세요. |
웹문서에는 필터링 코드로 기입되어 있지만 브라우저에는 실제 데이터로 치환됩니다.
다음은 웹필터코드에서 사용할 수 있는 주예약어의 종류입니다.
addr → 웹메일 관련(5장) b → 게시판 집단예약어 brief → 게시판 요약목록 error → 에러표시 집단예약어 if,else,fi → 필터의 조건문 표시 href → 직접링크하기위한 URL 표시 i → IntraNet 집단예약어 icon → 파일확장자 아이콘예약어 l → 접속위치(로케이션) 정보 load → 서버측 삽입모듈(html,cgi) |
m → 웹메일 관련(5장) p → 게시물 집단예약어 return → 필터링을 종료함 shell → 쉘지정하기 set → 변수 값 지정 명령 style → 웹구성요소 표시(칼라...) popup → 팝업윈도우 생성 u → 사용자 집단예약어 = → 설정된 값 표기 (#) → #문자 예약어 |
다음은 웹필터링 구문 표현 예입니다.
$#u.name#;($#u.id#;)님 어서오세요. → 한여름(summer)님 어서오세요 → 로그인 했을 때만 정상작동함. |
다음은 조금 더 복잡해진 웹필터링을 편집하는 화면을 보여줍니다.
HTML문서에서 "$#...#;"형식으로 기록된 구문을 절단한 후 다음과 같이 손님(왼쪽)과 사용자(오른쪽)에게 상이한 결과의 데이터를 웹브라우저로 전송합니다.
로그인한 사용자의 경우 그림의 오른쪽 부분과 같이 나타납니다. 원문에서의 "$#i.httphost#;"구문은 사용자가 브라우저를 이용하여 sm.kseek.com의 호스트로 접근했음을 표시합니다.
2) 웹필터링 예약어 |
맨위로 |
웹필터링서 접속한 사용자의 상태(사용자등급)을 조건으로 분기하여 다른 정보를 보여줍니다. 분기 및 정보표시에 관한 예약어는 일반적인 HTML문서에서 매우 유용하게 사용됩니다.
게시판의 게시물을 표시할 때 사용하는 필터링구문으로 “$#p...#;”구문과 함께 게시판 부문에서 별도로 자세히 설명합니다.
서버의 오류를 표시하는 필터예약어로 "err_access.html"필터에서 사용됩니다. 인트라셀의 관리자는 부가적인 시스템의 에러메시지를 확인할 수 있습니다. 다음은 “err_access.html" 필터의 요약내용입니다.
...... <title>$#i.name#;</title> </head> <body> $#shell#; 오류가 발생하였습니다.<br /> $#error#;<br /> ...... |
주로 시스템 관리등의 특정기능의 URI 및 URL을 표시하는 예약어입니다. 실제 사용시에는 "URI"나, “URL"로 치환됩니다. 다음은 ”$#href#;"구문의 활용 예입니다.
<a href="$#href.admin.myhtml#;">내홈피 관리</a> → 등록 사용자에 한함 <a href="$#href.webmail#;">웹메일</a> → 웹메일 서비스 전환 링크 |
다음은 $#href#;구문의 다양한 하위예약어와 기능을 요약한 내용입니다.
$#href#;구문 과 $#popup#; 구문에의 하위 예약어는 모두 동일하게 사용될 수 있습니다. 하위예약어가 "admin"인 경우 관리기능과 관련된 URL을 의미합니다. 다음은 관리기능과 관련된 "admin"하위예약어의 정리내용입니다.
$#href.admin.address#; → 주소록 관리화면 -> 웹메일 혹은 SMS에서 사용. $#href.admin.board#; → 게시판관리 $#href.admin.myhtml#; → 내 홈페이지 관리 $#href.admin.mail#; → 웹메일 환경설정 $#href.admin.html#; → 홈페이지관리 $#href.admin.myboard#; → 내 게시판 관리 $#href.admin.mymbox#; → 내 메일함 관리 -> 웹메일에서 사용. $#href.admin.filter#; → 전용필터 관리 $#href.admin.host#; → 호스팅 관리 $#href.admin.lcell#; → Location Cell -> 동호회, 사용자 공간의 환경설정 도구 링크 $#href.admin.mycell#; → 접속자의 사용자 홈페이지 환경설정 도구 링크 $#href.admin.mycell#; → 접속자의 사용자 웹메일 환경설정 도구 링크 $#href.admin.cell#; → 인트라셀 환경설정 $#href.admin.group#; → 동호회 관리(생성, 삭제, 설정 등) $#href.webdisk#; → 웹디스크 URI 출력 $#href.webmssg#; → 웹쪽지 URI 출력 $#href.admin.lboard#; → 동호회나 사용자 게시판에서의 게시판 관리도구 $#href.admin.lhtml#; → 동호회나 사용자 홈페이지에서의 디렉토리 관리도구 $#href.admin.luser#; → 동호회나 사용자 영역에서의 회원관리도구 $#href.admin.user#; → 인트라셀의 사용자 관리도구 $#href.login#; → 로그인의 <form acti0n="$#href.login#;"> 형식으로 사용. $#href.webmail#; → 웹메일 URL 출력; $#popup.webmail#; 과 비교바람 $#href.logout,[URL]#; → 로그아웃 url 을 표시함, [URL]은 로그인 후 이동위치 |
다음은 동호회(혹은 사용자)공간의 관리도구를 링크하는 예문입니다.
$#if l.lv>8#; <a href="$#href.admin.lboard#;">게시판 관리</a><br /> <a href="$#href.admin.lhtml#;">HTML문서 관리</a> <a href="$#href.admin.luser#;">회원관리</a> $#fi#; |
다음은 동호회 관리도구 구성을 위한 자바스크립트와 HTML 문의 요약내용입니다.
$#if !l.owner && !l.webmaster#; $#return#; $#fi#; <script language="javaScript"> function admin_page_change(Select) { idx=Select.selectedIndex; if(idx>0){ str=Select.options[idx].value; if(str.length>1)document.location.replace(str); } Select.selectedIndex = 0; }
</script>
<select name=admin_menu 0nChange="admin_page_change(this);"> <opti0n value=''>@동호회툴</option> <opti0n value=''>-------</option> <opti0n value='$#href.admin.lhtml#;'>01.웹문서관리</option> <opti0n value='$#href.admin.lboard#;'>02.게시판관리</option> <opti0n value='$#href.admin.luser#;'>03.회원관리</option> <opti0n value='$#href.admin.lcell#;'>04.환경설정</option> </select> |
동호회의 관리자와 웹마스터에게는 다음그림과 같이 관리도구가 표시됩니다.
서버측의 웹문서 조합에 관여하는 "$#load...#;", "$#shell...#;' 등의 구문으로 조합된 html 문서에 위와 같은 구문이 포함된다면 HTML문서 로케이션의 게시판 및 HTML문서 관리도구가 링크됩니다.
예1) <a href="$#href.logout,'/'#;">로그아웃</a> → 로그아웃 후 "/"로 이동 예2) <a href="$#href.logout#;">로그아웃</a> → 로그아웃 후 locationHome으로 이동 |
로그아웃을 나타내는 "$#href.logout,[변수]#;"에 변수를 선언하지 않으면 로그아웃 후 로케이션 홈으로 이동합니다. 로케이션 홈이란 HTML문서에 대하여 기본이 되는 URL입니다. 로그아웃을 호출한 URL와 로그아웃 후 이동하게 될 URL은 다음의 관계를 갖습니다.
http://sm.kseek.com/news.html → http://sm.kseek.com/ http://sm.kseek.com/@game/news/news.html → http://sm.kseek.com/@game/ http://sm.kseek.com/~summer/news.html → http://sm.kseek.com/~summer/ |
로케이션은 서버의 URL을 기점으로 정의되며, 인트라셀 공간, 사용자 공간, 동호회 공간의 유형이 존재합니다.
인트라셀의 기본정보를 표현하는 필터링예약어입니다. 인트라셀에 대한 기본 설정내용과 현재 사용량 등의 정보를 다음과 같은 예약어로 표시할 수 있습니다.
$#i.id#; → 기본 호스트네임(이메일 주소에 활용됨) $#i.httphost#; → 웹브라우저가 요청한 호스트네임(포트번호포함) $#i.name#; → 인트라셀 환경설정에서 지정한 서비스이름 $#i.boardicon#; → 인트라셀 환경설정에서 지정한 게시판 아이콘 $#i.owner#; → 호스트 설정에서 지정한 인트라셀 소유자 |
다음은 인트라셀의 현재 사용현황을 표시하는데 관여하는 예약어입니다.
$#i.diskquota#; → 디스크 사용 허용량 $#i.usage#; → 디스크 사용 비율(백분율의 숫자만 표시) $#i.data#; → 디스크 사용량 $#i.userdata#; → 사용자 사용량 $#i.groupdata#; → 동호회 사용량 $#i.htmldata#; → Html 용량 $#i.maxuser#; → 최대 사용자 제한 $#i.maxloger#; → 최대 동시 사용 제한 $#i.maxmail#; → 최대 전자우편 사용제한 |
다음은 인트라셀의 웹서비스에 ActiveX, JVM 등을 이용하여 활용성을 높여주는 부분으로서 채팅과 웹디스크의 호출에 관련하는 예약어입니다.
$#i.chat#; → ActiveX 채팅 모듈을 로딩하는 HTML 구문표시 $#i.javachat#; → JavaVirtualMachine 에 의한 채팅모듈 로딩 $#i.webdisk#; → 웹디스크 접속기를 로딩하는 HTML 구문표시 $#i.zeroid#; → <form>태그의 target으로 지정하는 Iframe ID; |
웹디스크의 호출방법은 4장 1절에서, 채팅 호출 방법은 5장 1절을 확인하시기 바랍니다.“$#i.zeroid#;”구문은 브라우저에서 서버로 자료를 전송하기 위해 작성하는 <form>태그에 사용됩니다. 사용예는 다음과 같습니다.
<form method="post" enctype="multipart/form-data" name="listform" target="$#i.zeroid#;" acti0n=""> .... </form> |
구문은 자료 전송이 될 타겟이 되는 Iframe을 지정하게 합니다. 쎄지오에서는 포스팅 목적으로 표시되지 않도록 구성된 iframe을 “제로프레임”이라고 정의합니다. 제로 프레임은 <iframe>~</iframe>형식의 구문으로 지정되는데 쎄지오 웹데몬에서 자동으로 생성하므로 임의로 구성하지 않습니다. 다음은 웹데몬에 의해 자동으로 생성되는 제로프레임의 예입니다.
<iframe title="포스팅영역" id="zero_2112131" name="zero_2112131" width="0" height="0" frameborder="0"> </iframe> |
위에서 보는 바와 같이 제로프레임은 속성이 보이지 않도록 설정됩니다.
파일종류, 목록 아이콘 등을 표시할 때 사용하며 다음은 링크 방법의 예입니다.
$#icons.[구분].[옵션],[ALT]; (아이콘 표시 구문 으로 전환됨) 예)$#icon.file.hwp,한글#; → <img src="/icons/file/hwp.gif" alt="한글" /> 예)$#icon.ls.l_list.gif,'목록'#; → <img src="/icons/ls/kr/l_list.gif" ... /> 예)$#icon.mail.dir_list.gif#; → <img src="/icons/mail/dir_list.gif" ... /> |
이미지 태그의 정확한 구문 표현은 다음과 같습니다.
<img src="..." alt="..." align="absmiddle"> 형식으로 출력됨 |
align 속성을 "absmiddle"으로 지정하는 것은 웹표준에 위배됩니다. 과거 특정브라우저에서만 지원될 때는 사용하지 않았던 것인데 현재는 주요 브라우저가 모두 지원하고 있으므로 채택하였습니다. 글과 이미지의 배치효과를 주기 위함입니다.
$#icons#; 구문에 옵션을 생략하면 아이콘을 직접 링크하지 않고 아이콘에 해당되는 기초 URL로 치환됩니다. 다음은 그
예입니다.
$#icons.[구분]#; (아이콘의 기초 URI로 치환됨) 예) $#icons.file#; → /icons/file/ 예) $#icons.mail#; → /icons/mail/ 예) $#icons.ls#; → /icons/ls/kr/ 예) $#icons#; → /icons/ls/kr/ ※ kr 은 환경설정에서 지정됨 |
웹어플리케이션에서 공유웹자원의 아이콘을 활용할 경우에는 위와 같은 구문형식으로 개발하면 공유웹자원의 디렉토리 구조 변경시에 대응할 수 있습니다.
조건문에 의한 분기에 활용되는 구문입니다. 사용자의 등급, 각종 권한, 환경설정 값을 매개로 하여 조건을 구성할 수 있습니다. 다음은 필터링에 의한 분기 조건의 예시입니다. (주의: else if 구문은 지원되지 않음)
$#if u.lv > 3 && u.lv < 8#; → 등급이 3등급보다 크고 8등급보다 작다면 $#if u.lv gt 3 && u.lv lt 8#; → 위의 경우와 같은 뜻임 $#if l.lv gt 3#; → 로케이션 등급이 3보다 크다면 $#if l.owner#; → 로케이션의 관리권한자라면 (9등급이라면) $#if l.webmaster#; → 웹마스터로 지정된 사용자라면(9등급 포함됨) $#if l.board#; → 로케이션의 게시판공간이 있다면 $#if l.html#; → 로케이션에 홈페이지 공간이 있다면 $#if l.folder#; → 로케이션(사용자공간)에 웹폴더공간이 있다면 $#if l.mbox#; → 로케이션에 메일공간이 있다면 $#if u.classno> 40 || l.lv>8#; → 사용자 분류번호가 40 보다 크거나 등급이 8보다 크다면 |
다음과 같은 방법으로 비교구문을 표현할 수 있습니다.
$#if u.lv .gt. 3#; → 3등급보다 크다면 $#if u.lv .lt. 3#; → 3등급보다 작다면 $#if u.lv .ge. 3#; → 3등급보다 크거나 같다면 $#if u.lv .le. 3#; → 3등급보다 작거나 같다면 $#if u.lv .eq. 3#; → 3등급이라면 $#if u.board#; → 접속자의 게시판공간이 있다면 $#if u.html#; → 접속자의 홈페이지 공간이 있다면 $#if u.folder#; → 접속자의 웹폴더공간이 있다면 $#if u.mbox#; → 접속자의 메일공간이 있다면 $#if u.classno> 40#; → 접속자의 사용자 분류번호가 40 보다 크다면 |
다음은 인트라셀의 환경설정 값을 분기조건으로 하는 예입니다.
$#if i.webmail#; → 인트라넷에 웹메일이 지원된다면 $#if i.messenger#; → 인트라넷에 메신저를 지원한다면 $#if i.javatalk#; → 인트라넷에 자바 1:1 대화를 지원한다면 $#if i.realname#; → 인트라넷에 실명을 사용하기로 지정되었다면 |
게시판이나 게시물의 입력정보를 조건으로 분기할 수 있는데, 이 부분은 게시판과 관련된 필터예약어부분에 별도로 설명됩니다. $#if#; 구문은 style 변수와 연동하여 다음과 같이 조건문으로 사용할 수 있습니다.
$#if s.id#; → 스타일 아이디가 지정되었다면; $#s... #; 예약어 설명 참조바람 $#if s.border#; → 경계선 색상이 지정되었다면; |
사용자에게 보여지는 웹문서의 위치를 로케이션이라고 하며 "$#l...#;"예약어는 로케이션 정보로 치환됩니다. 인트라넷, 동호회, 사용자 등의 영역을 구별하며 영역의 관리자(owner)나 영역에서 지정된 회원등급을 표시합니다.
$#l.id#; → Location ID(게임동:@game; Sysop's HOME:~sysop;) $#l.name#; → Location 환경설정에서 지정된 서비스 이름 $#l.owner#; → 지정관리자(동호회에서는 지정관리자, 사용자 영역에서는 ID) $#l.base#; → 현재로케이션의 디렉토리까지의 URI -> 링크시에 유효함 $#l#; → 현재로케이션의 기본 경로를 나타냄 $#l.uri#; → 현재 호출된 URI를 표시함 $#l.referer#; → 호출된 웹페이지의 전단계 참조페이지 $#l.data#; → 점유데이터의 총 크기(KB) $#l.shell#; → 현재 작동중인 쉘문서의 URI $#l.shellcss#; → 현재 작동중인 쉘문서에 대응하는 CSS 파일의 URI $#l.logers[]#; → 현재 접속자 목록을 자바배열에 표시해줌. => 자바스크립트로 현재 접속자를 표시하는데 사용함. |
"$#l.shellcss#;" 구문은 현재 작동중인 shell문서와 같은 디렉토리 내에 위치하고 있는 확장자가“css”인 파일의 URI를 나타냅니다.
예) 현재 /home/sub/index.shell 이 작동하고 있다면 $#l.shell#; → /home/sub/index.shell $#l.shellcss#; → /home/sub/index.css |
다음은 로케이션에서의 회원 정보와 관련된 예약어입니다.
$#l.lv#; → 접속자의 회원등급 $#l.classno#; → 접속자의 분류번호 |
다음 그림은 9등급인 "sysop"이 "summer"의 홈페이지에 접근했을 때의 표시예입니다.
그림은 다른 위치에 있는 2개의 웹문서를 "$#load#;"구문으로 포함시켜 구성하였습니다. html문서의 위치에 따라 "$#l.uri#;", "$#l.base#;" 값이 다릅니다. sysop은 9등급이므로 로케이션에서도 9등급이 됩니다. 다음은 "summer"가 자신의 홈페이지에 접근했을 때의 정보를 보여줍니다.
"summer"는 2등급 사용자이지만 자신의 홈페이지에서의 로케이션 등급은 9등급입니다. 로케이션 예약어는 위와 같은 기초 정보 이외에도 로케이션의 서비스 이용통계를 표시할 수 있습니다. 다음은 서비스 사용통계와 관련된 하위 예약어입니다.
$#l.diskquota#; → 디스크 공간 할당량.(로케이션이 동호회인 경우만 표시됨) $#l.htmldata#; → 홈페이지 점유 공간 크기 $#l.boarddata#; → 게시판 점유 공간 크기 $#l.boards#; → 게시판 수 $#l.posts#; → 게시물 수 $#l.mails#; → 메일 수 $#l.mboxs#; → 메일박스 수 $#l.etcdata#; → 기타 점유 공간 크기 $#l.mboxdata#; → 메일박스의 점유 공간 크기(로케이션이 사용자 영역일 경우) $#l.bname[숫자]#; → [숫자]번째 게시판 이름출력, 숫자는 0부터 시작함 $#l.bid[숫자]#; → [숫자]번째 게시판 아이디 출력 $#l.buri[숫자]#; → [숫자]번째 게시판의 URI (<a href=""> 구문의 목적으로 사용함) $#l.brief[숫자]#; → [숫자]번째 게시판의 요약목록을 표시함. $#brief#;구문과 유사기능 $#l.gname[숫자]#; → [숫자]번째 동호회의 이름 출력 $#l.gid[숫자]#; → [숫자]번째 동호회의 아이디 출력 $#l.guri[숫자]#; → [숫자]번째 동호회의 URI (<a href=""> 구문의 목적으로 사용함) $#l.newpost#; → 새로운 게시물(금일 등록된 게시물의 수) $#l.newmail#; → 새로운 편지(않은 편지, 사용자 영역에서만 작동) $#l.newmssg#; → 새로운 쪽지(읽지 않은 쪽지, 사용자 영역에서만 작동) |
"$#l.gname[]#;", "$#l.gid[]#;", "$#l.guri[]#;" 구문은 동호회 자동링크에 사용되는데 4장 2절에서 상세히 설명합니다. 비슷한 유형의 "$#l.bname[]#;", "$#l.bid[]#;", "$#l.buri[]#;"구문은 로케이션의 게시판 자동링크에 사용되며 3장 3절에서 상세히 설명합니다.
다른 HTML문서를 포함시키는 기능을 합니다. HTML 문서 이외로도 CGI, PHP 등의 실행결과로 얻어진 HTML문서를 포함시킬 수 있습니다.
$#load,/cgi-bin/test?act=on#; → CGI 실행결과를 포함시킴 $#load,/top_menu.html#; → /top_menu.html 파일의 내용을 포함시킴 $#load,/advert.php#; → /advert.php 의 실행결과를 포함시킴 $#load,!menu.html#; → !문자로 시작되면 알맹이문서의 상대URI로 계산함 |
다음은 $#load#;구문의 작동원리를 설명하기 위해 준비된 HTML 문서의 원문입니다.
1.html |
|
2.html |
<html> <title> 1. html</title> <body> this is 1.html document<br /> $#load 2.html#; </body></html> |
|
<table border="2"> <tr><td> this is 2.html document </td></tr> </table>
|
"1.html"문서가 웹브라우저로 로딩되면 다음 그림과 같이 보여지게 됩니다.
쎄지오는 "$#load#;", "$#shell#;"등의 문서 조합 구문을 제공합니다.
"$#load...#;"구문은 특정 웹어플리케이션의 기능기를 호출하는 용도로 사용됩니다. 다음은 웹메일 기능중, 웹메일의 정보와 사용자 편지함의 요약목록을 표시하는 기능기의 호출방법입니다.
$#load,#mail,cmd=infoarray#; → 웹메일 정보의 자바 배열을 출력합니다. 사용례) var Mail_info=[$#load,#mail,cmd=infoarray#;] ※ 자바에서 활용할 수 있는 메일박스 및 사용현황 등이 자바 배열로 나타남.
$#load,#mail,cmd=biref&opt=""#; → 웹메일 편지함의 미리보기를 출력합니다. 사용례) $#load,#mail,cmd=brief&opt="sentbox,style=' '"#; |
게시판의 게시물을 표시할 때 사용하는 필터링구문으로 “$#b...#;”구문과 함께 게시판 부문에서 별도로 자세히 설명합니다.
팝업윈도우를 열기 위한 자바스크립트로 치환됩니다. 메일쓰기, 게시판쓰기, 쪽지쓰기, 웹디스크, 웹메일 등을 구성할 수 있습니다. ※URI를 취득하여 직접 자바스크립트로 구성하여도 작동될 수 있으나 표준적인 방법으로 사용하기를 권합니다.
$#popup.webmail#; → 웹메일 팝업링크 $#popup.mail,to='여름<summer@kseek.com>'#; → 메일쓰기 팝업링크 $#popup.webmssg#; → 쪽지 읽기 $#popup.mssg,to='summer'#; → 쪽지 쓰기 $#popup.webdisk,lang=kr#; → 웹디스크 관리 $#popup.post,master#; → /master.brd 게시판에 쓰기창 $#popup.board,notice#; → 공지사항 리스트 $#popup.url,url='http://test.kseek.com/'#; → url 팝업 링크 $#popup.signup#; → 사용자 등록 $#popup.signoff#; → 사용자 탈퇴신청 $#popup.passwd#; → 아이디/비밀번호 찾기 $#popup.uinfo#; → 사용자 등록정보 보기 $#popup.myinfo#; → 내 등록정보 보기 $#popup,addr4mail#; → 웹메일 주소 가져오기 팝업 $#popup,addr4sms#; → 문자전송용 주소 가져오기 팝업 |
다음은 위와 같은 구문을 실제로 사용하기 위한 완성된 구문형태의 예시입니다.
<a href="#" 0nclick="$#popup...#;" 0nkeypress="try{_on_enter(event,this.onclick);}catch(e){}">팝업창</a> |
위 예시문에서 onkeypress를 웹접근성에 맞추도록 추가하였습니다. _on_enter함수는 segio.js 파일에 기록되어 있습니다. 필터코드의 외곽에 사용되는 인용부호와 필터코드 내부에서 사용된 인용부호와는 자동으로 겹치지 않게 됩니다. 다음은 메일작성 팝업창의 링크 예입니다.
$#popup.mail,to='여름<summer@sm.kseek.com>, 콜트<colt@sm.kseek.com>',cc='바람<wind@sm.kseek.com>', bcc='"+"<sik@sm.kseek.com>',opti0n="width=700px,height=700px"#; |
위와 같이 수신주소를 지정하면 수신자를 기본 값으로 하여 메일을 편집할 수 있도록 링크됩니다. 필터링 가능한 문자열의 길이는 제한적이므로 긴 내용의 필터를 지정하는 것은 피해야 합니다. 다음 그림은 위의 예에서 링크되는 팝업윈도입니다.
다음은 "$#popup#;구문의 하위예약어의 종류와 기능에 대한 설명입니다.
하위예약어 |
내용 설명 |
비고 |
lboard |
로케이션의 게시판 목록보기 윈도 (shell=none) |
|
lpost |
로케이션의 게시판 글쓰기 윈도 |
|
board |
게시판 목록보기 윈도 |
|
post |
게시판 글쓰기 윈도 |
|
login |
로그인 윈도 |
|
webmail |
웹메일 서비스 윈도 |
|
|
메일쓰기 서비스 윈도 |
|
webdisk |
웹디스크 팝업링크 |
|
webmssg |
웹쪽지 팝업링크(메신저쪽지 기능은 자동지원) |
|
mssg |
웹쪽지 쓰기(to 에 의한 목적 ID 표시 가능) |
|
signup |
사용자 정보등록 폼 및 변경 폼, 동호회원 등록폼 및 변경폼 |
|
uinfo |
사용자 정보보기 |
|
passwd |
패스워드 찾기 팝업 |
|
webmail, mail 등은 인트라셀 환경설정에서 웹메일 옵션이 설정되지 않았거나, 사용자 웹메일 서비스팩이 지원되지 않으면 작동되지 않습니다. webdisk, webmssg 등도 인트라셀 환경설정 여부에 따라 작동합니다. mssg는 webmssg 환경설정과 동일하게 작동합니다.
변수명 |
설 명 |
비 고 |
shell |
오픈될 윈도의 shell 효과 설정 |
|
option |
오픈될 윈도의 특성(예: "width=800px,height=600px") |
|
to |
전자우편 작성하기의 수신자(To:) |
|
cc |
전자우편 작성하기의 참조자(Cc:) |
|
bcc |
전자우편 작성하기의 숨은참조자(Bcc:) |
|
lang |
언어설정 (웹디스크만 지원됨) |
|
다음은 $#popup#;필터에서 새로 생성될 윈도우의 특성 중 가로크기와 세로크기 크기조절 허용 등을 결정한 예입니다. (인트라셀 환경설정에서 webmail 을 지원되도록 설정한 경우에만 작동)
$#popup.webmail,opti0n="width=780px,height=600px,resizable=1"#; → 가로크기, 세로크기, 가변허용 지정 |
로그인 윈도의 가로크기가 300보다 작다면 로그인 후 팝업윈도가 닫히고 웹페이지가 자동으로 갱신됩니다. option으로 지정된 값은 자바스크립트 window.open() 함수의 세 번째 변수로 사용되는데 지정하지 않을 경우 다음의 값으로 지정됩니다.
width=520px,height=400px,resizable=1,statusbar=0,scrollbars=1 |
“$#popup.signup#;”구문은 가입하지 않은 사용자에게는 사용자 등록을 위한 팝업윈도를 나타냅니다. 로그인한 사용자에게는 기존의 등록정보를 변경하는 팝업윈도를 나타냅니다. 관리자에게 특정 사용자의 등록정보를 변경하도록 할 때도 사용되며, 사용자 공간, 동호회공간에서의 회원가입,정보변경 등의 목적으로 사용됩니다.
$#popup#; 구문의 하위 예약어인 signup, passwd, uinfo 등은 인트라셀의 환경설정에서 제시한 사용자 및 회원관리용 스크립트를 기반으로 일정한 형식의 URL을 기반으로 팝업윈도우를 나타나도록 합니다. 기본적으로 사용되는 사용자 관리도구 이외의 관리도구를 작성하여 사용하고자 한다면 각각의 경우에 따른 모든 기능을 충족시키도록 작성하여야 합니다.
서버에서 지정된 예약어에 따라 특정 값을 변경시키는 용도로 사용됩니다.
$#set,dict,lang/kr.txt#; → 용어사전을 설정함. $#set,$imgBase="/segio/app/image/"#; → $imgBase 변수를 선언하고 값을 정의함. |
색상설정은 인트라셀 전역, 사용자 및 동호회 등의 구분영역, 게시판 등에 대하여 체계적으로 지원됩니다. $#set...#; 구문은 “$#=...#;”구문과 대응하며 용어사전 및 변수 선언 등의 목적으로 사용됩니다.
"$#shell#;"구문은 쉘레이아웃의 목적으로 사용됩니다. 쉘레이아웃에 대한 상세한 설명은 2장 3절을 참조하시기 바랍니다. "$#shell#;"구문은 알맹이 문서에만 표시되며 쉘문서를 읽어 조합시키는 기능을 수행합니다. 다음은 구문의 표시형식과 사례입니다.
형식: $#shell,[shellname]#; 사례: $#shell,/main/#; → 절대경로의 /main/index.shell 문서가 동작. $#shell,/@game/main.shell#; → game동호회 main.shell 문서가 동작. $#shell#; → 상속쉘이나 기본쉘이 동작. $#shell,=/main.shell#; → /main.shell 이 동작, 상속필터 지정 |
"$#shell#;"예약어는 HTML쉘을 구현하기 위해 사용하며 2장 3절에서 자세하게 설명합니다. 다음은 $#shell#; 과 $#load#; 에 의해 조합된 HTML문서의 모식도입니다.
그림에서의 화면은 다음의 3가지 파일로 구성됩니다.
1. /~summer/my.html → 알맹이문서; "$#shell#;"구문을 포함함 2. /shell/outset.shell → 껍데기문서; 알맹이 문서를 감싸며 구성됨. 3. /shell/admin.html → 껍데기문서로부터 로딩되어 구성됨 |
알맹이문서의 <body>태그 이후에 "$#shell#;"구문이 위치하도록 합니다. 껍데기문서는 "$#[]#;"구문을 반드시 포함시켜 작성하여야 하며 <html>, <head>, <title>, <body> 등의 태그를 사용할 수 없습니다.
"$#s#;"구문은 호나경설정에서 지정된 색상, 폰트크기 등의 정보를 HTML문서에 표시할 때 사용합니다. 인트라넷, 동호회, 게시판, 웹메일에서 지정된 환경설정은 각기 다른 우선권을 가지면서 적용됩니다.
$#s.border#; → 테이블의 경계선 색상 $#s.barrier#; → 게시판 경계구분색상 $#s.bodybg#; → 전체영역 기본 배경색상 $#s.headbg#; → 제목(헤드라인)배경색상 $#s.namebg#; → 이름영역 배경색상 $#s.textbg#; → 일반 문자 폰트색상 $#s.head#; → 제목(헤드라인)문자색상 $#s.body#; → 전체영역 기본 문자색상 $#s.name#; → 이름영역 문자색상 $#s.rtext#; → 반전 문자 폰트색상 |
$#s.atext#; → 앵커된 문자 폰트색상 $#s.listbg#; → 게시물 목록 배경색상 $#s.listov#; → 마우스 오버 색상 $#s.listsw#; → 목록 교차 반복될 색상 $#s.list#; → 목록의 문자 색상 $#s.bodybg#; → HTML 바디의 배경색상 $#s.fsize#; → 일반 문자 폰트 크기 $#s.width#; → 유효넓이 $#s.id#; → 스타일이름
|
인트라셀, 동호회, 사용자공간, 웹메일, 게시판 등의 환경설정에서는 "$#s...#;"구문과 관련된 변수를 지정하도록 하고 있습니다. 환경설정에서 값을 지정하지 않거나 HTML문서에서 "$#s...#;"구문을 사용하지 않는다면 환경설정으로 색상을 지정하여도 웹문서에 작동하지 않습니다.
접속 사용자의 정보표시와 관련된 필터예약어로 다음과 같이 활용됩니다.
$#u.id#; → 접속자의 UID $#u.name#; → 접속자의 사용자 이름 $#u.rname#; → 접속자의 실명 이름 $#u.lv#; → 접속자의 사용자 등급 $#u.browser#; → 접속자 웹브라우저 종류 ( Http header 의 user-agent 에 해당함) |
$#u.browser...#; 구문을 이용하면 사용자의 웹브라우저 정보를 간략하게 알수 있습니다.
$#u.browser#; → 접속자 웹브라우저 종류 ( Http header 의 user-agent 에 해당함) $#u.browser.accept#; → 수신가능 컨텐츠 표기 $#u.browser.accept_language#; → 수신가능 언어 $#u.browser.user_agent#; → 웹브라우저의 종류 $#u.browser.referer#; → 웹브라우저의 참조처 주소 $#u.browser.host#; → 웹브라우저의 접근 호스트네임 $#u.browser.uri#; → 웹브라우저 요청정보 중 URI $#u.browser.reguest#; → 웹부라우저의 요청정보 |
$#u...#;구문은 접속자의 사용통계값을 표현하는데 사용될 수 있습니다.
$#u.diskquota#; → 사용할 수 있는 지정 디스크 공간 할당량 $#u.htmldata#; → 홈페이지 점유 공간 크기 $#u.boarddata#; → 게시판 점유 공간 크기 $#u.boards#; → 게시판 수 $#u.etcdata#; → 기타 점유 공간 크기 $#u.mboxdata#; → 메일박스의 점유 공간 크기(사용자 영역에 한함) $#u.bname[숫자]#; → [숫자]번째 게시판의 이름 표시 (숫자는 0부터 출발함) $#u.bid[숫자]#; → [숫자]번째 게시판의 아이디 표시 $#u.buri[숫자]#; → [숫자]번째 게시판의 URI 표시 (예, "/~summer/friend.brd" ) $#u.newpost#; → 새로운 게시물 숫자.(금일 올라온 글을 기준으로 함) $#u.newmail#; → 새로운 편지 숫자(받은 편지함의 읽지 않은편지) $#u.newmssg#; → 새로운 쪽지 숫자(읽지 않은 쪽지) $#u.newmailfail#; → 사용량 초과로 인한 저장되지 못한 신규 메일 숫자 (웹메일에서 사용) $#u.availdata#; → 사용가능한 잔여 공간 쿼터량을 초과사용하면 0.0K 로 표시됨 |
앞에 설명된 $#l#; 예약어에서 동호회나 사용자 공간의 로케이션에서 게시판의 URL과 Name을 이용하여 일정한 수의 게시판에 대하여 만들어지면 자동으로 메뉴에 표시되도록 하는 자바스크립트가 있었습니다. 유사한 개념으로 특정 로케이션(동호회, 사용자공간 등)의 게시판을 자동으로 링크시키도록 다음과 같은 자바스크립트를 활용할 수 있습니다.
<script type="text/javascript"> //앞서 소개된 함수와 동일합니다. function board_link(buri,bid, bname){ if(bid.length<1)return; if(bname.length<1)bname=bid; document.wirte('<a href="'+buri+'">'+bname+'</a><br />'); }
if($#u.boards#;>0){ board_link("$#u.buri[0]#;","$#u.bid[0]#;","$#u.bname[0]#;"); board_link("$#u.buri[1]#;","$#u.bid[1]#;","$#u.bname[1]#;"); board_link("$#u.buri[2]#;","$#u.bid[2]#;","$#u.bname[2]#;"); ... } </script> |
✴ "$#if u.home.board#;"는 접속자의 홈디렉토리에 게시판을 설치할 하위 디렉토리가 있는 경우 참이 됩니다. 반면 "$#u.boards#;"는 접속자의 홈디렉토리에 설치된 게시판의 숫자를 표시합니다.
“$#=...#;”구문은 용어사전에 설정된 대응 문자열로 치환합니다. 다음은 본 구문의 사용예로서 사전으로 정의된 대응문자열을 찾아 표시합니다. 대응문자열이 없으면 치기본 문자열로 표시해줍니다.
<html> <head> $#set.dict,../lang/kr.txt#; <title>$#='SegioWebmail'#;</title> ..... |
“$#=...#;”구문에 앞서 사전을 정의하기 위한 “$#set.dict,...#;”구문이 먼저 위치해야 합니다. 사전 정의에 문제가 발생하면 HTML 상에 오류속성이 표시되므로 html소스보기로 확인할 수 있습니다.
영문과 한글처럼 문장에서 주어 목적어 등의 어순이 다른 경우에 다음과 같은 형식의 단어사전을 적용할 수 있습니다.
$#='[0]gave [1] [2]','Mr. kim','Mr. Lee','A cup'#;
=> Mr. Kim gave Mr. Lee A cup 으로 치환됨.
“$#=...#;”구문의 추가적인 활용방법으로서 변수 값으로 지정된 값으로 치환합니다. 다음은 웹변수를 정의하여 사용하는 예입니다.
...... $#set,$tBase="/segio/appr/template/theme1/"#; ...... <link href="$#=$tBase#;layout.css" type="text/css" rel="stylesheet" /> <img src="$#=$tBase#;image/logo.gif" border="1" alt="$#=LogoImage;#" /> .... |
$tBase 변수에는 “/segio/appr/template/theme1/”값이 지정되었으며 이후 반복적인 사용되면서 이에 저장된 변수가 표시되도록 하였습니다. 위 구문은 다음과 같은 html로 전환됩니다. 변수표시는 변수에 값을 지정하지 않은경우 작동하지 않습니다.
...... <link href="/segio/appr/template/theme1/layout.css" type="text/css" rel="stylesheet" /> <img src="/segio/appr/template/theme1/image/logo.gif" border="1" alt="LogoImage" /> ...... |
필터링을 이용하여 반복적인 표현 구간을 간단하게 표기하는데 사용할 수 있으며 웹페이지를 구조화시키는데 사용될 수도 있습니다. 이 기능은 PHP, JSP 등의 솔루션을 개발할 때 편의성을 제공하기 위하여 작성되었습니다.
3) 게시판 관련 예약어 |
맨위로 |
쎄지오에 기본적으로 탑재된 게시판에 대하여 디자인적 유연성을 제공하기 위하여 게시판 관련 웹필터링이 지원됩니다.
게시판의 최근 목록 일부를 표시합니다. 답변 게시글은 제외됩니다. 다음은 notice 게시판의 최근 게시물 6개를 삽입하도록 하는 예입니다.
형식) $#brief,[게시판ID], option1, option2, ...#; 예) $#brief,notice,style="Title//80/50:Date//35",l=6,lh=20#; → notice 게시판의 최근 글 6개를 라인높이:20px 에 맞춰 표시함 |
하위 옵션은 목록스타일, 게시물의 숫자 등을 조절하기 위해 사용합니다.
옵션 예약어 |
기능설명 |
설정 예 |
비고 |
style |
목록형식을 지정함 |
style=title//80/50:date//35 |
게시판 환경설정 참조 |
l |
목록에 보여줄 줄수 |
l=5; |
|
lh |
목록한 줄의 높이 |
lh=20 |
|
bg |
목록의 배경 색상 |
bg=#FFFFFF |
|
sw |
목록 스위치 색상 |
sw=#FFFF00 |
|
color |
텍스트 색상 |
color=#FFFF00 |
|
acolor |
앵커 텍스트 색상 |
acolor=#00FFFF |
color 가 기본 값임 |
ov |
마우스오버색상 |
ov=#00FFFF |
|
filter |
글보기 지정필터 |
|
|
shell |
글보기 지정필쉘 |
|
|
option |
글보기용 팝업옵션 |
opti0n="width=400" |
팝업윈도우 생성옵션 |
width |
목록의 가로크기 |
width=500px |
디폴트 100% |
목록 배경색상으로 사용되는 색상항목을 지정하지 않은 경우 투명하게 처리됩니다.
다음은 요약목록에 "<td>~</td>"에 적용되는 css 스타일의 예입니다.
클래스명 |
설명 |
비고 |
brieflist |
마지막 목록을 제외하고 전체 셀에 적용됨 |
|
brieflast |
마지막 목록을 구성하는 셀에 적용됨 |
|
다음은 스타일을 설정하는 예를 보여줍니다.
<style type="text/css"> .brieflist{padding:1;border-top:solid 4px #0000ff; } .brieflast{border-top:solid 4px #0000ff; border-bottom: solid 4px; } </style> |
다음의 두 그림은 스타일의 차이를 보여줍니다.
$#brief,notice,style="shortcut//50/250/left:title///60",l=4;
→ 숏컷을 50x50 이내의 사이즈로 비율축소를 하여 left 정렬을 하게 함. → 본문은 250보기문자 이하로 조정, 제목은 60보기문자 이하로 표시함. |
위의 구문은 다음과 같은 게시판 목록으로 치환됩니다.
숏컷 목록의 구성은 <table>, <tr>, <td> 등의 테이블 태그과 <div>구문으로 이루어지며 각 구성요소는 class로 지정하여 디자인적 요소를 조정할 수 있도록 했습니다.
class="cell4shortcut" : 테이블 리스트의 td 로 정의 된 숏컷 셀의 클래스 class="shortcut_div" : td cell내부의 숏컷 전체를 감싸는 div의 클래스 class="shortcut" : 이미지와 본문의 요약본으로 채워질 div의 클래스 class="shortcut_*" : 게시판 항목이 표시되는 부분의 추가클래스 shortcut_checkbox : 관리자용 체크박스 shortcut_title : 게시물 제목 |
앞의 그림에서는 다음과 같은 스타일이 선언되었습니다.
<style type="text/css"> .shortcut_div{ position:relative;} .shortcut_title{ position:absolute;left:18px;top:0px; } .cell4shortcut{ height:100%;position:relative;padding:10px; } </style> |
이미지컷은 첨부된 그림의 썸네일을 위주로 목록을 보여줍니다. 갤러리형 게시판에 적합하며 여러 글이 가로로 반복되는 특징이 있습니다. 제목, 작성일, 작성자 등의 구성요소를 함께 표시할 수 있으며 다음의 예와 같이 사용됩니다.
$#brief,notice,style="title///20:imagecut//50/4",l=8#;
→ 제목을 20자 미만으로 줄이고 50x50 사이즈 이내로 조정된 이미지컷의 목록을 8개를 표시하되 가로로는 최대 4개씩 표시합니다. 이미지컷의 세 번째 옵션(4)는 가로로의 이미지 반복 숫자임. |
다음은 이미지컷에 의한 요약목록보기의 예입니다.
이미지컷의 구성은 <table>과 <div>에 의해서 이루어지며 각각의 구성요소는 다음과 같은 class 가 지정되어 디자인적 요소를 조정할 수 있도록 했습니다.
class="cell4imagecut" → 테이블로 구성된 이미지컷리스트의 td 셀 의 클래스 class="imagecut_div" → td 셀 내부의 전체 div 클래스 class="imagecut" → 썸네일 이미지가 표현될 div 클래스 class="imagecut_*" → 게시판 항목이 표시되는 추가적인 div 클래스 imagecut_checkbox → 관리자용 체크박스가 위치하는 div의 클래스 imagecut_title → 게시물 제목표시 div의 클래스 |
게시판물의 목록을 표시하는 목록필터에서 주로 사용되며 삭제, 새글쓰기, 검색, 복사하기, 끼워넣기 등의 아이콘 메뉴를 표시합니다. "m_*"형식의 하위예약어는 아이콘 이미지와 함께 특정 기능을 표시합니다.
$#b.m_seek#; → 검색 메뉴 $#b.m_post#; → 글올리기 메뉴 $#b.m_remove#; → 삭제 메뉴 $#b.m_copy#; → 복사하기 $#b.m_paste#; → 게시판에 붙여넣기 $#b.m_move#; → 게시판에 옮기기 $#b.m_undel#; → 글 복구하기 메뉴 $#b.m_list#; → 전체 목록 메뉴 $#b.m_setup#; → 환경설정 메뉴 $#b.m_refat#; → 팻복구 메뉴 $#b.m_merge#; → 글조립 메뉴 |
그 이외의 것들은 게시판 정보나 웹브라우저의 HTML 구성에 관련되어 있습니다.
$#b.id#; → 게시판의 ID (디렉토리명과 같음) $#b.name#; → 게시판의 이름(환경설정치) $#b.uri#; → 게시판의 접근 URL $#b.head#; → 게시판 머리부분 $#b.tail#; → 게시판 하위부분 $#b.pquota#; → 게시물 1개당 업로드 허용량(Mbyte) $#b.bquota#; → 게시판 사용 허용량(Mbyte) $#b.pages#; → 전체 페이지수 $#b.posts#; → 목록에서 관리하는 전체 게시물 수 $#b.pageno#; → 현재 페이지 $#b.pagelist#; → 페이지 선택 메뉴 $#b.queryfield#; → 검색필드 선택 표시 $#b.querybox#; → 검색어 입력창 표시 $#b.postlist#; → 게시물의 목록 $#b.postno#; → 게시물의 번호 $#b.totalposts#; → 게시물의 전체갯수 $#b.widthfit#; → 이미지 가로 조정 크기 (가로크기가 widthfit보다 클 경우 html편집기에서 조정함) $#b.posts[]#; → 게시물 목록을 표시할 때 사용될 수 있는 정보를 자바스크립트 배열로 표시함. var Posts=[$#b.posts[]#;]; 형식으로 선언하여 사용함. |
게시판 ID는 게시판의 경로명과 하위디렉토리 아이디로 구성됩니다. name은 환경설정에서 설정된 값이며 URI는 게시판의 웹주소입니다. 게시판의 URI는 로케이션과 게시판의 아이디로도 표현됩니다. 따라서 "$#b.uri#;"는 “$#b.id#;.brd" 와 같습니다.
"$#b.querybox#;" 구문은 게시판 검색을 위한 질의어 입력을 위한 "<input ...>"태그 구문으로 전환됩니다. 옵션을 "style", "title"로 지정할 수 있으며 "<input ...>" 태그 구문의 속성으로 사용됩니다.
$#b.querybox,style="width:120px;",title="게시판 검색어 입력"#; → <input ... title="게시판 검색어 입력" style="width:120px;" /> |
게시물의 추가변수의 이름은 "$#b.var[숫자]#;"형식으로 선언되며 숫자에는 0부터 25까지의 숫자를 사용할 수 있습니다.
$#b.var[0]#; → 0 번째 추가변수이름 $#b.var[1]#; → 1 번째 추가변수이름 $#b.var[2]#; → 2 번째 추가변수이름 ...... $#b.var[25]#; → 25 번째 추가변수이름 |
게시판에는 목록, 편집, 보기(혹은 읽기)등의 용도로 3가지 필터를 운용하고 있습니다. "$#p...#;"구문은 편집필터와 보기필터에서 주로 사용됩니다. "m_*"형식의 하위예약어는 게시판 아이콘과 연계된 특수 메뉴 기능을 연결합니다.
$#p.m_list#; → 목록으로 가기 $#p.m_up#; → 목록에서 윗글 보기 $#p.m_move#; → 옮기기 $#p.m_reply#; → 답변달기 $#p.m_del#; → 지우기 $#p.m_back#; → 뒤로가기 $#p.m_edit#; → 편집하기 $#p.m_down#; → 아랫글 보기 $#p.m_print#; → 인쇄하기 |
다음은 게시물의 자체정보를 표시하는 하위예약어입니다.
$#p.id#; → 게시물의 아이디 표시(실제 저장위치와 관련되는 물리번호) $#p.no#; → 게시물의 번호(게시판 뷰에서의 호출번호) $#p.pid#; → 부모게시물 아이디 표시(실제 저장위치와 관련되는 물리번호) $#p.read#; → 조회숫자(읽은 횟수) $#p.uid#; → 글쓴이 ID $#p.uname#; → 사용자 이름 $#p.date#; → 게시물 등록 연월일 -> 2004/08/31 $#p.time#; → 게시물 등록 시각 -> 09:32:12 $#p.art_up#; → 윗글 링크 $#p.art_dn#; → 아랫글 링크 $#p.words#; → 게시물 댓글 표시하기 $#p.rname#; → 실명이 존재할 경우 실명표시 $#p.title#; → 게시물 제목 $#p.ctype#; → 게시물의 컨텐트타입(text, html or etc) $#p.email#; → 게시물에 포함된 웹메일 $#p.writer#; → 게시물 제작자; 이름, 이름(uid) 등 다양한 방식으로 표시됨 $#p.url#; → 게시물에 기록된 url |
게시물 자료파일은 게시물의 본문에 포함되는 인라인(inline)파일과 게시물 본문에 포함되지 않는 첨부(attached)파일로 구분됩니다. 인라인 파일은 게시물 본문에 포함된 컨텐츠의 자료파일이며 CID(Content-ID)라는 값을 갖게 됩니다.
$#p.file#; → 첨부파일목록을 링크표시함 $#p.cfile#; → 본문구성파일(인라인파일)의 목록을 표시함 $#p.fname#; → 첨부파일 검색 $#p.furi#; → 첨부파일의 접근 URI 검색, <a href="$#p.furi[0]#;"> 형태로 활용됨 $#p.cfname#; → 인라인파일의 이름 검색 (c는 CID를 말함) $#p.cfuri#; → 검색된 인라인 파일의 접근 URI 주소 $#p.filecheck#; → 편집필터에서 파일선택 표시(첨부파일 포함여부를 선택하도록 함) $#p.files[]#; →게시물에 첨부된 파일의 목록을 자바스크립트 배열로 표현. $#p.words[]#; →게시물에 달린 댓글을 자바스크립트 배열로 표현 |
필트레이션에서 "$#p.files[]#;"구문처럼 []표시는 자바스크립트의 배열 표시로 선언되도록 한다는 의미가 있습니다($#[]#!; 구문은 제외). 이러한 자바스크립트 배열은 자바 배열변수로 선언하여 웹페이지를 능동적으로 구성할 때 사용됩니다.
형식의 구문은 게시물에 추가적으로 입력된 변수값을 표시합니다. 게시물의 추가변수는 26개 까지 사용할 수 있으며 0~25 사이의 숫자에 대응합니다.
$#p.var[0]#; → 0 번째 추가변수 $#p.var[1]#; → 1 번째 추가변수 $#p.var[2]#; → 2 번째 추가변수 ...... $#p.var[25]#; → 25 번째 추가변수 |
추가변수는 "$#b.var[]#;"와 밀접한 관련되며 "$#if...#;"등과 조합하여 다음과 같이 선택적으로 자료를 입력받기 위해 사용할 수 있습니다.
$#if b.var[0]#; <tr> <td>$#b.var[0]#;</td> <td><input name="var[0]" value="$#p.var[0]#;" /></td> </tr> $#fi#; |
위의 HTML 원문을 게시판의 편집필터에 포함시킬 경우 편집필터는 환경설정에서 0 번째 추가변수를 지정하였을 경우에 추가변수의 데이터를 입력받게 됩니다. 추가변수의 설정은 게시판의 환경설정과 게시판의 목록, 편집, 보기 필터의 연계작업으로 진행됩니다.
게시물 목록, 게시물 읽기, 게시물 편집용 필터 파일과 어플리케이션 제작시에 사용되는 비교구문입니다. 손님 및 사용자 등급에 따라 다른 서비스를 제공할 때도 사용되며 환경설정에 따라 다르게 동작되도록 구성하는 목적으로도 활용됩니다. "$#if b....#;" 구문은 게시판과 관련된 조건을 의미하며 다음은 게시판 관련 상세조건입니다.
$#if b#; → 게시판이 열린 상태라면 $#if b.post#; → 게시판의 글을 표현할 수 있다면 $#if b.bquota#; → 게시판 쿼터가 설정되었다면 $#if b.pquota#; → 게시물에 자료동봉을 할 수 있다면 $#if b.owner#; → 소유자라면(확대해석: 관리권한이 있다면, 9등급 포함됨) $#if b.script#; → 게시물 본문의 자바스크립트 실행을 허용할 수 있도록 지정되었다면 $#if b.viewlock#; → 게시판이 게시물에 보기잠금장치를 설치할 수 있도록 지정되었다면 $#if b.file#; → 게시물에 파일을 첨부할 수 있도록 설정되었다면 $#if b.remail#; → 게시판이 자동답신을 지원한다면 $#if b.brief#; → 게시판이 요약보기로 열린 상태라면 $#if b.var[0]#; → 0 번째 추가변수의 이름이 선언되었다면 $#if b.var[n]#; → n 번째 추가변수의 이름이 선언되었다면; n은 0~25 사이의 숫자 $#if b.perm_r#; → 게시판에 읽기 권한이 있다면 $#if b.perm_w#; → 게시판에 쓰기 권한이 있다면 $#if b.lstype=='imagecut'#; → 게시판 목록 스타일이 이미지 컷이라면 'normal', 'shortcut','imagecut' 를 비교할 수 있음. |
구문은 게시물에 대한 조건 표시로서 다음과 같은 세부 조건이 있습니다.
$#if p#; → 게시물을 표시할 수 있는 상태라면 $#if p.owner#; → 게시물의 관리권한이 있다면(글쓴이, 게시판 관리인 등) $#if p.file#; → 게시물에 첨부된 파일이 있다면 $#if p.poll#; → 게시물에 투표기능이 활성화 되었다면 $#if p.cfile#; → 게시물에 본문구성용 파일이 있다면 $#if p.viewlock#; → 게시물에 보기잠금장치가 설치되었다면 $#if p.remail#; → 게시물에 자동답신이 설정되었다면 $#if p.notice#; → 게시물이 공지글로 지정되었다면 $#if p.script#; → 게시물 본문의 자바스크립트 실행이 허용되었다면 $#if p.var[0]#; → 0 번째 추가변수에 값이 입력되었다면 $#if p.var[n]#; → n 번째 추가변수에 값이 입력되었다면; n은 0~25사이의 숫자 |
분기의 목적으로 사용되는 "$#if...#;"구문은 복수의 조건을 비교합니다.
$#if u.lv<1 || b.viewlock#; 비밀번호: <input name="passwd" type="password" /> $#fi#; |
위의 HTML 원문은 게시판 편집필터의 일부 예로서 게시판에 보기잠금장치가 설치되었거나 손님 사용자일 경우 게시물의 비밀번호를 설정하도록 하고 있습니다. $# if b.viewlock#; 은 “게시판에 보기잠금 옵션이 선택되었거나 게시물에 보기잠금장치가 설치되었다면”의 조건이 됩니다.
$#if u.folder#; <table border="0" cellspacing="0" cellpadding="0"> <tr><td width="75%" style="border:1px solid;"> <textarea id="onfile" name="onfile" style="width:100%;height:45px;border:0px;"> </textarea> </td><td width="25%"> <butt0n 0nclick="$#popup.onfile#;">마이폴더 찾기</button><br> <butt0n 0nclick="document.getElementById('onfile').value='';">파일선택 취소</button> </td> <tr></table> $#fi#; |
$# if u.folder#; 는 “사용자의 웹디스크 공간(마이폴더)가 있다면”의 뜻으로 해석됩니다. "folder", "mbox", "html" 등은 사용자나 로케이션의 하위디렉토리 존재여부와 관련하여 조건문을 사용할 수 있도록 하고 있습니다.
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
번호 | 파일 | 글제목 | 작성자 | 일시 | 조회 |
---|---|---|---|---|---|
61 |
![]() |
![]() |
케이시크 | 09-07-21 | 149689 |
60 |
![]() |
케이시크 | 09-07-17 | 185242 | |
59 |
![]() |
![]() |
관리자 | 09-07-14 | 186464 |
58 |
![]() |
![]() |
관리자 | 09-07-14 | 186074 |
57 |
![]() |
![]() |
관리자 | 09-07-14 | 185307 |
56 |
![]() |
![]() |
관리자 | 09-07-14 | 168301 |
55 |
![]() |
![]() |
관리자 | 09-07-14 | 202312 |
54 |
![]() |
![]() |
관리자 | 09-07-14 | 205834 |
53 |
![]() |
![]() |
관리자 | 09-07-13 | 184608 |
52 |
![]() |
![]() |
sysop | 09-07-10 | 193837 |
51 |
![]() |
![]() |
sysop | 09-07-10 | 191962 |
50 |
![]() |
![]() |
sysop | 09-07-10 | 168172 |
49 |
![]() |
![]() |
sysop | 09-07-10 | 192343 |
48 |
![]() |
![]() |
sysop | 09-07-10 | 462914 |
47 |
![]() |
![]() |
sysop | 09-07-10 | 197329 |
46 |
![]() |
![]() |
sysop | 09-07-10 | 189076 |
45 |
![]() |
![]() |
sysop | 09-07-10 | 201868 |
44 |
![]() |
![]() |
sysop | 09-07-10 | 184791 |
43 |
![]() |
sysop | 09-07-10 | 180743 | |
42 |
![]() |
sysop | 09-07-10 | 189510 | |
41 |
![]() |
sysop | 09-07-10 | 179354 | |
40 |
![]() |
sysop | 09-07-10 | 186638 | |
39 |
![]() |
sysop | 09-07-10 | 377973 | |
38 |
![]() |
![]() |
sysop | 09-07-10 | 257226 |
37 |
![]() |
![]() |
sysop | 09-07-10 | 208023 |
36 |
![]() |
sysop | 09-07-10 | 203486 | |
35 |
![]() |
sysop | 09-07-10 | 210265 | |
34 |
![]() |
![]() |
sysop | 09-07-10 | 208848 |
33 |
![]() |
sysop | 09-07-10 | 711959 | |
32 |
![]() |
![]() |
sysop | 09-07-10 | 216207 |
31 |
![]() |
![]() |
sysop | 09-07-10 | 217880 |
30 |
![]() |
![]() |
sysop | 09-07-10 | 199494 |
29 |
![]() |
sysop | 09-07-10 | 192017 | |
28 |
![]() |
![]() |
sysop | 09-07-09 | 206911 |
27 |
![]() |
![]() |
sysop | 09-07-09 | 197527 |
26 |
![]() |
![]() |
sysop | 09-07-09 | 339622 |
25 |
![]() |
![]() |
sysop | 09-07-09 | 196963 |
24 |
![]() |
sysop | 09-07-09 | 197155 | |
23 |
![]() |
sysop | 09-07-09 | 197731 | |
22 |
![]() |
![]() |
sysop | 09-07-09 | 177749 |
21 |
![]() |
![]() |
sysop | 09-07-09 | 274439 |
20 |
![]() |
![]() |
sysop | 09-07-09 | 184586 |
19 |
![]() |
![]() |
sysop | 09-07-09 | 196874 |
18 |
![]() |
![]() |
sysop | 09-07-09 | 206182 |
17 |
![]() |
![]() |
sysop | 09-07-09 | 1242308 |
16 |
![]() |
![]() |
sysop | 09-07-09 | 599117 |
15 |
![]() |
![]() |
sysop | 09-07-09 | 229071 |
14 |
![]() |
![]() |
sysop | 09-07-09 | 231999 |
13 |
![]() |
![]() |
sysop | 09-07-09 | 553597 |
12 |
![]() |
![]() |
sysop | 09-07-09 | 221703 |
11 |
![]() |
sysop | 09-07-09 | 394727 | |
10 |
![]() |
![]() |
sysop | 09-07-09 | 196639 |
09 |
![]() |
![]() |
sysop | 09-07-09 | 223290 |
08 |
![]() |
![]() |
sysop | 09-07-09 | 249076 |
07 |
![]() |
![]() |
sysop | 09-07-09 | 329919 |
06 |
![]() |
![]() |
sysop | 09-07-09 | 333993 |
05 |
![]() |
![]() |
sysop | 09-07-09 | 221439 |
04 |
![]() |
![]() |
sysop | 09-07-09 | 230324 |
03 |
![]() |
![]() |
sysop | 09-07-09 | 439277 |
02 |
![]() |
![]() |
sysop | 09-07-09 | 812976 |
01 |
![]() |
![]() |
sysop | 09-07-09 | 190481 |