■ 치환변수란?
치환변수는 프로그램에 정의된 변수를 쉽게 끌어다 사용하는 BOS 만의 문법입니다.
BOS에서는 타사와 달리 프로그램 변수 단위로 사용할 수 있도록 세분화 되어 있습니다.
■ 치환변수의 형식
{변수종류_변수명[인자]//출력형태//기타1//기타2}
변수종류
AV, MV, GV, AY 등 용도에 따라 구분하기 쉽게 정의한 변수종류로 게시판,회원 등의 정보에 따라 종류가 달라집니다.
변수명
프로그램 내에서 정의한 변수명을 적어주시면 됩니다. 게시판/회원 정보의 경우 필드명으로 적어주세요.
배열변수의 경우 인자값을 함께 입력해 주세요.
출력형태
숫자형, 날짜형 등 저장된 값을 출력하고 싶은 형태로 지정할 수 있습니다.
■ 치환변수의 종류
{AV_변수명}
게시판에 저장된 게시물의 정보
목록폼, 쓰기폼, 보기폼, 삭제폼, 답변폼, 댓글폼 등의 게시판설정이 적용된 div 내에서만 사용가능
예시)
{AV_subject} : 게시물 제목
{AV_writer_name} : 게시물 등록자의 이름
{MV_변수명}
현재 로그인한 회원의 회원정보 (모든 페이지에서 활용가능)
예시)
{MV_id} : 현재 로그인한 회원의 아이디
{MV_mb_name} : 현재 로그인한 회원의 이름
{AM_변수명}
게시물 등록자의 회원정보
목록폼, 쓰기폼, 보기폼, 삭제폼, 답변폼, 댓글폼 등의 게시판설정이 적용된 div 내에서만 사용가능
회원정보 이므로 '회원관리(TCMEMBER)' 게시판의 필드명을 변수명으로 사용
예시)
{AM_mb_name} : 게시물 등록자의 회원정보의 이름
{AM_address} : 게시물 등록자의 회원정보의 주소
{AY_변수명[인덱스명]}
플러그인 또는 공통 설정파일에 정의된 php 배열변수 값
{AY_site_page_info[인덱스명]}
현재 접속한 페이지의 설정값을 갖는 치환변수
페이지 속성에서 정의된 파일명, 페이지명, 적용된 레이아웃 파일명 등 '속성변경' 에 정의된 모든 값을 가져올 수 있다.
{AY_board_info[인덱스명]}
현재 게시판 폼설정에 설정되어진 게시판의 정보값을 갖는 치환변수
현재 적용되어 있는 게시판설정의 게시판 정보를 값으로 갖는다.
해당 값들은 게시판관리에서 해당 게시판에 정의된 게시판명, 게시판의 페이지파일명, 각종 설정들을 모두 값으로 가져올 수 있다.
예시)
{AY_site_page_info[file_name]} : 현재 페이지의 파일명 (예: 1234.php)
{AY_site_page_info[name]} : 현재 페이지의 페이지명 (예: 회사소개)
{AY_board_info[name]} : 현재 게시판의 DB Table명 (예: BD1234)
{AY_board_info[alias]} : 현재 게시판의 게시판명 (예: 공지사항)
{NV_변수명}
플러그인 또는 공통 프로그램 파일에 정의된 php 일반변수 값
예시)
{NV_P_price_delivery} : 쇼핑몰 상세보기의 배송비
{NV__this_url_rm_parm//파라메타}
현재 URL에서 특정 파라메타만 제거한 url 을 얻을 때 사용
{NV__this_url_rm_parm////search_value//sch_total.php}
현재 url 에서 search_value를 제거하고 design_file을 sch_total.php로 설정하는 치환문자열
{GV_변수명}
URL로 넘어오는 $_GET 변수사용
URL에서 '?' 기호 이후로 정의되는 URL변수의 값
예시)
{GV_design_file} : 현재 보고 있는 페이지의 파일명
{GV_article_num} : 현재 보고 있는 게시물의 번호
{FC_변수명}
게시판설정이 적용된 div의 폼설정(게시판설정)의 값
예시)
{FC_board_name} : 게시판설정에 저장된 게시판명
{FC_page_type} : 게시판 폼 타입 (LIST / VIEW / WRITE / MODIFY / DELETE / REPLY)
{PV_변수명}
폼(form태그)로 전송되는 $_POST 변수사용
예시)
{PV_subject} : 폼으로 넘어온 게시물의 제목
{PV_writer_name} : 폼으로 넘어온 게시물의 등록자 이름
{AP숫자_변수명}
상위의 다른 폼에서 불러온 게시물의 정보
편집모드에서 정보를 가져올 폼이 적용된 div의 D아이콘에 마우스를 올렸을 때 표시되는 index의 값을 AP 뒤의 숫자 자리에 입력
폼의 위치가 임포트된 부분이면 {API숫자_변수명}, 레이아웃이면 {APS숫자_변수명} 형식으로 입력
예시)
{AP1_subject} : index값이 '1'인 div에 적용된 폼의 제목
{AO_게시판코드___일련번호필드명___일련번호___저장값필드명}
특정 게시판의 특정 게시물의 정보를 사용
예시)
{AO_BD1234___serial_num___10___subject} : BD1234 게시판의 serial_num 10번 게시물의 제목
{AO_BD1234___serial_num___10___subject//L//O} : BD1234 게시판의 serial_num 10번 게시물의 제목을 표시하고 해당 게시물로 링크를 적용
{GL_변수명}
솔루션 내에서 공통적으로 사용되는 $GLOBALS 변수의 값
예시)
{GL_w_time} : 현재시간 (년-월-일 형식 : {GL_w_time//D})
{GL_site_config[site_name]} : 사이트명
{AV_term_targz//H//////C//////분//초}
term_targz 값이 타임스탬프 일 때 00.00 으로 표현하는 것이 H 옵션인데 C 는 콤마를 콜론으로 변경, 1분 미만일 때는 '초' 이상일 때는 분으로 나오게 할 수 있습니다.
■ 출력형태 종류
출력형태
N : 숫자형
F : 숫자형(소수점), 기타1 자리에 소수점 자리수 입력
D : 날짜형, 예시) 2017-01-01
DT : 날짜시간형, 예시) 2017-01-01 09:00:00
DTK : 날짜한글형, 예시) 2017년01월01일(일)00시00분
DTR : 날짜구간형, 예시) {GL_w_time//DTR//day//30_C} : 오늘 날짜 기준으로 30일 전
DTC : 맞춤형, 예시) {AV_sign_date//DTC////m-d} : 09-20 과 같이 월-일 로 표시
STC : ;1;2;3; 형태를 1[구분자]2[구분자]3 형태로 변경, 구분자는 기타1 자리에 B(br), C(콤마) 입력
STQC : ;1;2;3; 형태를 '1','2','3' 형태로 변경
STBK : 시작과 끝의 ; 제거
CUT : 문자열 자르기, 기타1/기타2 자리에 시작지점/길이 값 설정
STRLEN : 문자열의 길이
SS :특수문자만 제거
SQ : 따옴표제거
ST : 모든 태그 제거
NLBR : 줄바꿈을 BR 태그로 변경
RMAJAX : &AJAX=Y 제거
RMPHPEXT : .php 제거
BCT : 게시판기본분류코드를 타이틀로 표현
BCTI : 게시판개별분류코드를 타이틀로 표현
EXPL : 구분자로 구분한 값으로 치환, 예시) -로 구분된 전화번호의 첫번째 값으로 치환
DE : 구분자로 사용하는 문자열을 비활성 되도록 인코딩 시킴
ATS//1(or 2) : 배열의 값을 문자열로 만듬 (1 : 1차원 배열, 2 : 연관배열)
ABSU : 절대경로URL
NLNL : \n 을 \n 으로 변경
H : 시간으로 변경
STSI : ;A;D; 형태를 A;분류1줄바꿈D;분류2 형식으로 변경
기타1
O : 입력상자에 사용할 경우 치환되지 않도록 할 때 기타1에 입력
숫자 : CUT, SUBSTR 의 시작지점, 길이 값 지정
기타2
숫자 : CUT, SUBSTR 의 시작지점, 길이 값 지정
■ 치환변수란?
치환변수는 프로그램에 정의된 변수를 쉽게 끌어다 사용하는 BOS 만의 문법입니다.
BOS에서는 타사와 달리 프로그램 변수 단위로 사용할 수 있도록 세분화 되어 있습니다.
■ 치환변수의 형식
{변수종류_변수명[인자]//출력형태//기타1//기타2}
변수종류
AV, MV, GV, AY 등 용도에 따라 구분하기 쉽게 정의한 변수종류로 게시판,회원 등의 정보에 따라 종류가 달라집니다.
변수명
프로그램 내에서 정의한 변수명을 적어주시면 됩니다. 게시판/회원 정보의 경우 필드명으로 적어주세요.
배열변수의 경우 인자값을 함께 입력해 주세요.
출력형태
숫자형, 날짜형 등 저장된 값을 출력하고 싶은 형태로 지정할 수 있습니다.
■ 치환변수의 종류
{AV_변수명}
게시판에 저장된 게시물의 정보
목록폼, 쓰기폼, 보기폼, 삭제폼, 답변폼, 댓글폼 등의 게시판설정이 적용된 div 내에서만 사용가능
예시)
{AV_subject} : 게시물 제목
{AV_writer_name} : 게시물 등록자의 이름
{MV_변수명}
현재 로그인한 회원의 회원정보 (모든 페이지에서 활용가능)
예시)
{MV_id} : 현재 로그인한 회원의 아이디
{MV_mb_name} : 현재 로그인한 회원의 이름
{AM_변수명}
게시물 등록자의 회원정보
목록폼, 쓰기폼, 보기폼, 삭제폼, 답변폼, 댓글폼 등의 게시판설정이 적용된 div 내에서만 사용가능
회원정보 이므로 '회원관리(TCMEMBER)' 게시판의 필드명을 변수명으로 사용
예시)
{AM_mb_name} : 게시물 등록자의 회원정보의 이름
{AM_address} : 게시물 등록자의 회원정보의 주소
{AY_변수명[인덱스명]}
플러그인 또는 공통 설정파일에 정의된 php 배열변수 값
{AY_site_page_info[인덱스명]}
현재 접속한 페이지의 설정값을 갖는 치환변수
페이지 속성에서 정의된 파일명, 페이지명, 적용된 레이아웃 파일명 등 '속성변경' 에 정의된 모든 값을 가져올 수 있다.
{AY_board_info[인덱스명]}
현재 게시판 폼설정에 설정되어진 게시판의 정보값을 갖는 치환변수
현재 적용되어 있는 게시판설정의 게시판 정보를 값으로 갖는다.
해당 값들은 게시판관리에서 해당 게시판에 정의된 게시판명, 게시판의 페이지파일명, 각종 설정들을 모두 값으로 가져올 수 있다.
예시)
{AY_site_page_info[file_name]} : 현재 페이지의 파일명 (예: 1234.php)
{AY_site_page_info[name]} : 현재 페이지의 페이지명 (예: 회사소개)
{AY_board_info[name]} : 현재 게시판의 DB Table명 (예: BD1234)
{AY_board_info[alias]} : 현재 게시판의 게시판명 (예: 공지사항)
{NV_변수명}
플러그인 또는 공통 프로그램 파일에 정의된 php 일반변수 값
예시)
{NV_P_price_delivery} : 쇼핑몰 상세보기의 배송비
{NV__this_url_rm_parm//파라메타}
현재 URL에서 특정 파라메타만 제거한 url 을 얻을 때 사용
{NV__this_url_rm_parm////search_value//sch_total.php}
현재 url 에서 search_value를 제거하고 design_file을 sch_total.php로 설정하는 치환문자열
{GV_변수명}
URL로 넘어오는 $_GET 변수사용
URL에서 '?' 기호 이후로 정의되는 URL변수의 값
예시)
{GV_design_file} : 현재 보고 있는 페이지의 파일명
{GV_article_num} : 현재 보고 있는 게시물의 번호
{FC_변수명}
게시판설정이 적용된 div의 폼설정(게시판설정)의 값
예시)
{FC_board_name} : 게시판설정에 저장된 게시판명
{FC_page_type} : 게시판 폼 타입 (LIST / VIEW / WRITE / MODIFY / DELETE / REPLY)
{PV_변수명}
폼(form태그)로 전송되는 $_POST 변수사용
예시)
{PV_subject} : 폼으로 넘어온 게시물의 제목
{PV_writer_name} : 폼으로 넘어온 게시물의 등록자 이름
{AP숫자_변수명}
상위의 다른 폼에서 불러온 게시물의 정보
편집모드에서 정보를 가져올 폼이 적용된 div의 D아이콘에 마우스를 올렸을 때 표시되는 index의 값을 AP 뒤의 숫자 자리에 입력
폼의 위치가 임포트된 부분이면 {API숫자_변수명}, 레이아웃이면 {APS숫자_변수명} 형식으로 입력
예시)
{AP1_subject} : index값이 '1'인 div에 적용된 폼의 제목
{AO_게시판코드___일련번호필드명___일련번호___저장값필드명}
특정 게시판의 특정 게시물의 정보를 사용
예시)
{AO_BD1234___serial_num___10___subject} : BD1234 게시판의 serial_num 10번 게시물의 제목
{AO_BD1234___serial_num___10___subject//L//O} : BD1234 게시판의 serial_num 10번 게시물의 제목을 표시하고 해당 게시물로 링크를 적용
{GL_변수명}
솔루션 내에서 공통적으로 사용되는 $GLOBALS 변수의 값
예시)
{GL_w_time} : 현재시간 (년-월-일 형식 : {GL_w_time//D})
{GL_site_config[site_name]} : 사이트명
{AV_term_targz//H//////C//////분//초}
term_targz 값이 타임스탬프 일 때 00.00 으로 표현하는 것이 H 옵션인데 C 는 콤마를 콜론으로 변경, 1분 미만일 때는 '초' 이상일 때는 분으로 나오게 할 수 있습니다.
■ 출력옵션 종류
출력옵션
일반적으로 치환변수는 DB에 저장된 값 또는 프로그램으로 처리한 값을 변화하지 않고 그대로 표시하는데,
출력되는 형태를 여러가지 방식으로 변형하여 사용할 수 있습니다.
치환변수 뒤에 // 입력하고 사용할 출력옵션을 추가하는 방식으로 입력합니다.
입력형식) {
예시) {AV_count}=10000 => {AV_count//N}=10,000
{AV_category_1}=1001 => {AV_category_1//STRLEN}=4
옵션명 |
설명 |
N |
숫자형 예시) {AV_price}=10,000 |
F |
숫자형(소수점), 기타1 자리에 소수점 자리수 입력 예시) {AV_price//F//2}=10,000.00 |
D |
날짜형 예시) {AV_sign_date//D}=2023-01-01 |
DT |
날짜 시간형 예시) {AV_sign_date//DT}=2023-01-01 09:00:00 |
DTK |
날짜 맞춤형, 기타1 자리에 설정변경 > 날짜형식(치환변수용)에 입력된 옵션 추가 (설정변경 > 날짜형식(치환변수용) 항목이 없거나, 입력된 값이 없을 경우 사용 불가) 예시) {AV_sign_date//DTK//ymdhis}=2023년 01월 01일(일) 00시 00분 00초 |
DTR |
날짜 구간형 예시) {GL_w_time//DTR//day//-30_C} : 오늘 날짜 기준으로 30일 전 {GL_w_time//DTR//day//0_C} : 오늘 {GL_w_time//DTR//day//30_C} : 오늘 날짜 기준으로 30일 후 {GL_w_time//DTR//month//-1_O} : 지난달(시작일 기준, 1일 00:00:00) {GL_w_time//DTR//month//1_C} : 다음달(종료일 기준, 말일 23:59:59) |
H |
초단위로 계산해서 숫자형으로 저장된 날짜를 시간으로 치환 예시) 2023-11-01 09:00:00 => {AV_close_date}=1698796800 (초 단위로 환산) => {AV_close_date//H}=471888.00 (시간 단위로 환산) => {AV_close_date//H//C//0_1}=7일 (종료일이 남은 경우 7일, 지난 경우 -7일로 표시) => {AV_close_date//H//C//0_1////////dday}=D-7 (종료일이 남은 경우 D-7, 지난 경우 D+7로 표시) => {AV_close_date//H//C//0_1////////tail}=7일 남음 (종료일이 남은 경우 7일 남음, 지난 경우 7일 지남으로 표시) |
STC |
;A;B;C; 형태를 A[구분자]B[구분자]C 형태로 변경, 구분자는 기타1 자리에 BR(줄바꿈) 또는 M(콤마) 입력 예시) {AV_category_1}=;A;B;C; => {AV_category_1//STC//M}=A,B,C |
STQC |
;A;B;C; 형태를 'A','B','C' 형태로 변경 예시) {AV_category_1}=;A;B;C; => {AV_category_1//STQC}='A','B','C' |
STBK |
;A;B;C; 에서 시작과 끝의 ; 제거 예시) {AV_category_1}=;A;B;C; => {AV_category_1//STBK}=A;B;C |
STSI |
;A;B; 형태를 A;분류1줄바꿈B;분류2 형식으로 변경 예시) {AV_category_1}=;A;B; => {AV_category_1//STBK}= A;분류1 B;분류2 |
STRLEN |
문자열의 길이 예시) {AV_etc_1}=15000 => {AV_etc_1//STRLEN}=5 |
SS |
특수문자만 제거 예시) {AV_category_1}=;1;2;3; => {AV_category_1//SS}=123 |
SQ |
따옴표 제거 예시) {AV_subject}="검색어"를 입력하세요 => {AV_subject//SQ}=검색어를 입력하세요 |
ST |
모든 태그 제거 예시) {AV_comment_1}=<div><span>텍스트</span></div> => {AV_comment_1//ST}=텍스트 |
NLBR |
textarea 입력상자에서 입력한 줄바꿈을 BR 태그로 변경
예시) {AV_comment_1}=첫 번째 줄 두 번째 줄 => {AV_comment_1//NLBR}=첫 번째 줄<br>두 번째 줄 |
RMPHPEXT |
.php 제거 예시) {GV_design_file}=board_w.php => {GV_design_file//RMPHPEXT}=board_w |
BCT |
게시판 기본분류코드를 타이틀로 표현 게시판관리의 분류1~6 항목에 분류가 등록된 경우만 사용가능
예시) {AV_category_1}=A => {AV_category_1//BCT}=분류1 |
BCTI |
게시판 개별분류코드를 타이틀로 표현 게시판분류관리(insiter.php?design_file=board_category.php)에 분류가 등록된 경우만 사용가능
예시) {AV_category_1}=00001 => {AV_category_1//BCT}=분류1 |
BCTO |
게시판 단일분류코드를 타이틀로 표현 게시판분류관리(insiter.php?design_file=category.php)에 분류가 등록된 경우만 사용가능
예시) {AV_category_1}=1001 => {AV_category_1//BCTO}=분류1 |
EXPL |
구분자로 구분한 값으로 치환, 예시) -로 구분된 전화번호의 첫번째 값으로 치환 예시) {AV_phone_2}=010-1234-5678 => {AV_phone_2//EXPL//-//1}=010, {AV_phone_2//EXPL//-//2}=1234, {AV_phone_2//EXPL//-//3}=5678 |