존경하는 DS'O님 산에 안가십니까? > 자유게시판

자유게시판

존경하는 DS'O님 산에 안가십니까? 정보

존경하는 DS'O님 산에 안가십니까?

본문

혼자 깔짝 대다가 혹시나 해서 현접을 보고 황급히 올려봅니다.^^

엊그제 "스킨폴더에 있는 스킨으로 방문자가 맘대로 바꿔본다??" 라고 올렸던 내용과 관련있는 내용입니다.
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7291

물론 실제 운영에서는 그렇게 하지 않겠지만 테스트로 하루정도 열어두었다가 잠근후
디비를 들여다 보니 "테이블 자동생성" 루틴이 들어있는 스킨을 적용해봤던 게시판의 경우 모조리 해당 테이블이 생성되어있었습니다. 대개 카테고리 테이블이 하나씩 붙어있더군요.~*

당연한 결과 맞습니다.
그리고 하나하나 삭제하는 삽질을 한것도 당연한 일이겠죠?^^

  그래서 생각해본것인데 추가 테이블 생성시 confirm 처리과정을 적용해보면 좋겠다는 생각에 삽을 들었습니다.
  그런데 이눔이 단순해 보이면서도 생각보다 조금 복잡하더군요.
  confirm 을 대체할 php구문을 찾아보니, 코멘트에 왈,, 서버, 클라이언트 개념이 없느니 책사서 10번 읽으라느니,,   
  겁나서 질문도 못하고 꼬랑지 바로 내렸습니다.ㅎㅎ
  아무튼, 여기저기 뒤져서 아래처럼 짜보았습니다.
  부족하나마 아래처럼 해서 동작은 확인했습니다만, 미흡한 부분이 있어 조언 부탁드립니다.

풀어야할 부분;
  confirm(확인) 일때 create_table.php를 따로 만들지 않고 해당 파일에서 바로 생성루틴을 실행하는 방법이 있다면 알려주시면 고맙겠습니다.
  차선책으로 스킨디렉토리에 있는 일반 파일에서 "스킨에 사용하는 내장 변수들을 사용하는 방법"이 있다면 도움이 되겠습니다.

기똥찬 방법이 있어서 플소위 삽질이 전혀 방향이 틀렸다거나, 남의 다리를 긁었다는 핀잔을 들었으면 좋겠습니다.

편안한 휴일 되세요!!
    
<?
////////////////////////////////////////////////////// 펑션
function confirm_ct($msg='', $url='', $msg2){
  echo("
    <script type='text/javascript'>
    var ct=confirm('$msg');
    if (ct==true){
      location.replace('$url');
    }
    else{
      alert('$msg2');
      history.go(-1);
    }
    </script>
      ");
  exit;
}

////////////////////////////////////////////////////// 처리
$ct[ct_table] = $g4[write_prefix]. $bo_table. "_cat";

if ($is_category){

  if (!mysql_table_exists($ct[ct_table])) window.confirm_ct("카테고리 테이블을 생성 하시겠습니까?", "$board_skin_path/create_table.php", "취소하였습니다.");//꼼수 확인과정 추가하고 별도 파일에서 생성

////////////////////////////////////////////////////// 테이블 생성 create_table.php
$g4_path = "../../..";
include_once("$g4_path/common.php");

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.", $g4[path]);

$bo_table = "test_skin";//리스트 include 가 아니면 인식 안됨, ?????????????????????

$ct[ct_table] = $g4[write_prefix]. $bo_table. "_cat";

      $sql = " CREATE TABLE `$ct[ca_table]` (
        `ca_id` int(11) NOT NULL auto_increment,
        `ca_code` varchar(16) NOT NULL default '',
        `ca_name` varchar(255) NOT NULL default '',
        `ca_total` int(11) unsigned NOT NULL default '0',
        `ca_order` int(11) NOT NULL default '0',
        PRIMARY KEY  (`ca_id`),
        KEY `ca_code` (`ca_code`)
      ) TYPE=MyISAM
      ";

@mysql_query($sql);

    echo"
    <script type='text/javascript'>
    window.alert('카테고리 테이블이 생성되었습니다.');
    location.href='$g4[bbs_path]/board.php?bo_table=$bo_table';
    </script>
    ";
  exit;

추천
0
  • 복사

댓글 5개

아~ 읽어보긴 했습니다.  내 맘대로 스킨??
테이블 별로 한개씩 늘어나는데 ...
갑자기 복잡하다는 생각이 듭니다.
카테고리별로 스킨을 다르게 한다?  정확하게는 뭐가 뭔지 모르겠습니다.^^;;;

bbs/view.php 하단에
include-once($스킨패스/view.skin.php);  여기가 적수 같은데요??
보드 카테고리 ..$board[bo_categrory] ??? 요것 을 배열로 잡으면
$aa[0]=='인물'; $aa[1]=='풍경';

switch 로 $aa가( '인물' || '아기사진' )이면
 $스킨패스는 gallery ; 브레이크;
 디폴트 $스킨패스  basic

그담에...
include_once($스킨패스/view.skin.php); 

다른데 긁은것 같은데..ㅋㅋㅋ
애들 컴이라 에디터도 없고.. 아무것도 없어서리..
플사마님..이해부탁드려용~`^^;
으,, 장문의 답글을 주셨네요,^^ 감사합니다.
스킨을 바꿔보는것을 세션으로 처리 된다기에 공부겸 연습삼아 해본것 뿐입니다.
정리안된 내용을 올린 불찰로 존경하는 DS'O님께서 너무 높은곳을 노닐고 계십니다. ^^
단순히 "펑션 --> 조건, 권한처리(이 과정에서 확인창) --> 테이블 생성" 을 하나의 파일에서 가능한지 여쭈어 본것입니다.
>>카테고리별로 스킨을 다르게 한다?
이 아이디어 재밌겠습니다.^^; 야시런대로, 쿨한대로,,
우선 상상만 해봅니다.(-.-))

더이상 들여다 보지 마시고, 편안한 오후 보내시길 바랍니다!!
넵!!
관리자라 할지라도 스킨을 적용시키는 순간 이미 테이블이 생성되는점이 아쉬워서 체크루틴을 넣어주면 좋겠다는 생각을 했던 것입니다.
배포용 스킨을 제작할때도 그렇게 해주면 좋지않을까 하는 생각도 해봅니다.
© SIRSOFT
현재 페이지 제일 처음으로