theme.config.php 에서 db 업데이트를 하려고 합니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
theme.config.php 에서 db 업데이트를 하려고 합니다.

QA

theme.config.php 에서 db 업데이트를 하려고 합니다.

본문

[배경]

하나의 그누보드에 있는 게시판을 테마별로 각각의 스킨으로 불러오게 하고 싶습니다.

예) g5_write_notice 라는 게시판을 A라는 테마에서는 theme/basic으로 B라는 테마에서는 theme/gallery으로 불러오게 하려고 합니다.

이렇게 하기 위해서는 제일 좋은 위치가 theme.config.php 라고 생각했는데 이 글을 쓰다보니 theme/lib 폴더에 파일을 하나 만들어서 테마 미리보기가 아닐 때 index.php 에서 한번만 불러오게 해도 되겠다는 생각이 드네요.

 

[방법]

우선 g5_write_notice의 스킨이 theme/basic인지 확인하고 아니라면 해당 게시판을 theme/basic 스킨으로 db에서 업데이트시킨다 

이렇게 하면 될 것 같은데 맞는지 잘 모르겠네요.

 

[생각해본 소스]

 

우선 g5_board 테이블에서 해당 notice가 있는 행을 찾아 맞는지부터 검색한다


SELECT *  FROM `g5_board` WHERE `bo_table` = 'notice'
요녀석을 사용해야 하는 것 같습니다.

이 행에서 bo_skin 값이 theme/basic이 아니라면 
=> 이 부분은 어떻게 해야 하는지 잘 모르겠습니다.

theme/basic으로 해당 행을 업데이트 한다.

$sql = " UPDATE g5_write_notice
                set bo_skin = 'theme/basic' ";
sql_query($sql, true);
요렇게 하면 업데이트되는 것 같습니다.

그래서 생각해본 방법이 아래와 같습니다.

<?php
	$sql = "SELECT * FROM `g5_board` WHERE `bo_table` = 'notice' AND `bo_skin` = 'theme/basic' ";
	$msql = sql_fetch($sql);
	if (!$msql) {
		$sql2 = " UPDATE `g5_board`
                set bo_skin = 'theme/basic'
                WHERE `g5_board`.`bo_table` = 'notice' ";
    	sql_query($sql2, true);
	}
?>

이렇게까지 생각을 정리해봤는데요..
이걸 생각대로 정리할 수 있는 능력을 주질 않으셨습니다. 

고수님들 보시기에
1. 이렇게 정리하는게 맞는지
2. 이걸 어떻게 간단하게 만들 수 있는지
도움을 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 1

A라는 테마와 B라는 테마가 공존하는 형태라면

A라는 테마 보는 사람과 B라는 테마 보는 사람에 따라 계속 DB 업데이트가 생기니

해당 방식은 좋지 않고

관리자단에서 테마변경시에 일어나는 경우면 테마선택 업데이트 파일쪽에다가 처리 하면 될 듯 하고. 

 

요런 파일을 만들어서 DB에 입력된 값과 무관하게 뿌려주는 방법도 있을 것 같네요.

/extend 폴더 안에다가 파일이름은 대충 만들어서.

(extend폴더안에 있는 파일은 모든 페이지에서 자동으로 불러옵니다)

 


<?php
if($board) {
	if($config['cf_theme'] == "테마이름") {
		if($bo_table == "게시판아이디") {
			$board['bo_skin'] = 'theme/basic';
			$board['bo_mobile_skin'] = 'theme/basic';
		}
	} else if($config['cf_theme'] == "테마이름") {
		if($bo_table == "게시판아이디") {
			$board['bo_skin'] = 'theme/gallery';
			$board['bo_mobile_skin'] = 'theme/gallery';
		}
	}
	if (G5_IS_MOBILE) {
	    $board_skin_path    = get_skin_path('board', $board['bo_mobile_skin']);
	    $board_skin_url     = get_skin_url('board', $board['bo_mobile_skin']);
	} else {
	    $board_skin_path    = get_skin_path('board', $board['bo_skin']);
	    $board_skin_url     = get_skin_url('board', $board['bo_skin']);
	}
}
?>

이번 질문에도 답변 감사드립니다.

한 홈페이지에서 각각의 사람이 각각의 테마를 보는 구조는 아니구요..

A라는 테마를 사용하다가 B라는 테마를 사용하려고 바꾸게 되면
게시판 스킨이 같은 이름이 아닐 경우 공란으로 남게되거나 같은 이름이라도 용도가 다를 경우 해당 홈페이지가 제대로 구현이 안되는 경우가 있어서 적용해보려고 합니다.

사용자 입장에서 테마를 변경할때 theme.config.php에서 회원스킨 등을 지정할 수 있듯이 게시판스킨도 테마가 구현하고자 하는대로 스킨이 바뀌게끔 하려는 의도입니다.

사용자 입장에서는 자주 바꿀 일이 없을 것 같아서 extend 폴더에 넣어 트래픽이 발생하는 방식 대신 db값을 바꿔버리게끔 구현해보고 싶네요..

답변을 작성하시기 전에 로그인 해주세요.
전체 49
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT