웹마스터 팁

게시판 모듈에 스킨을 카테고리별 혹은 특정회원별로 구분하여 변경하게 하는 팁입니다.

이 팁은 애드온상에서는 도저히 $this->module_info->skin 을 수정할 수 없어서 꼼수로 했는데요.
(수정은 되는데 내부모듈에서 자기가 불러올 내용으로 수정해서 못불러오겠더라고요.)


zbxe/index.php 에 아래의 내용을 추가해주세요.
    /**
     * @brief ModuleHandler 객체를 생성/ 실행
     *
     * 모듈 핸들러는 Request Argument를 바탕으로 모듈을 찾아서\n
     * 객체를 생성하고 기본 정보를 setting 해준다.\n
     * ModuleHandler는 이 외에도 설치가 되어 있는지에 대한 체크를\n
     * 하여 미설치시 Install 모듈을 실행하도록 한다\n
     * 그리고 해당 모듈을 실행후 컨텐츠를 출력한다\n
     **/
    $oModuleHandler = new ModuleHandler();
    $oModuleHandler->init();
    include("./경로/change_skin.php"); // 이 사이에 여기를 추가해주세요.
    $oModule = &$oModuleHandler->procModule();
    $oModuleHandler->displayContent($oModule);

그리고 아래의 내용을 적당한 파일명으로 만드세요(파일 첨부도 해드리겠습니다.)
if(!defined("__ZBXE__")) exit();
if(Context::getRequestMethod()=="XMLRPC") return;
if(Context::get('module') == 'admin') return; // 관리자 페이지면 수행 중단

$get_skin->anime_document930largeden3 = array(
    "skin" => "anime_guestbook",
    "layout_srl" => "3452", //번호로 입력
    "search_list_count" => "1",
    "page_count" => "1",
);

// 멤버 그룹구하기 ( 그룹이 여러개일 경우 제일 마지막 정보로 저장 됨 )
if($logged_info){
    $get_MemberModel = &getModel('member');
    $get_group_list = $get_MemberModel->getMemberInfoByUserID($logged_info->user_id);

        foreach($get_group_list->group_list as $key => $val){
            $get_group_srl = $key;
        }
}

// 필요한 값을 불러오기위한 변수 정리
$get_proc .= Context::get('mid');
$get_proc .= Context::get('category');
$get_proc .= $logged_info->user_id;
$get_proc .= $get_group_srl;

// 불러온 정보가 있다면 정보 변경
if(count($get_skin->{$get_proc}) > 0){
    foreach($get_skin->{$get_proc} as $key => $val){
        $oModuleHandler->module_info->{$key} = $val;
    }
}


설명1:
$get_skin->anime_document930largeden3 = array(
    "skin" => "anime_guestbook",
    "layout_srl" => "3452", //번호로 입력
    "search_list_count" => "1",
    "page_count" => "1",
);

언어 파일과 비슷한 형식으로 만들었습니다.

$get_skin->모듈명카테고리번호회원번호그룹 등 원하시는 이름을 연달아 나열해주세요.
(언어 파일 만들듯이 여러개의 조건을 만들고 바꿀정보 내용을 추가하세요)

설명2.
$get_proc .= Context::get('mid');
$get_proc .= Context::get('category');
$get_proc .= $logged_info->user_id;
$get_proc .= $get_group_srl;

연달아 적어주신 이름을 찾기위해 설명2와 같은 형식으로 변수를 추가해줍니다.
(※ 변수 순서는 바꿀 수 있으며 $get_skin에 연달아 나열하는 순으로 변수 순서를 정해주세요.)
(※ 사용하지 않거나 추가로 사용할 비교대상이 있을 경우 추가해주세요.)

설명3.
// 불러온 정보가 있다면 정보 변경
if(count($get_skin->{$get_proc}) > 0){
    foreach($get_skin->{$get_proc} as $key => $val){
        $oModuleHandler->module_info->{$key} = $val;
    }
}
비교조건 조합문과 같은 변수명이 있다면 설정했던 내용으로 수정합니다.

참조.

$oModuleHandler 변수가 가지고 있는 값들입니다.
비교할 것과 수정할 것을 찾으셔서 적절히 활용하세요.
/*
module_srl=58
module=board
module_category_srl=1024
layout_srl=919
menu_srl=0
mid=anime_document
skin=anime_board
browser_title=xxx
description=
is_default=N
content=
open_rss=Y
header_text=
footer_text=
regdate=20080407130220
body=
use_category=Y
order_target=update_order
order_type=asc
list_count=7
search_list_count=7
except_notice=Y
consultation=N
admin_mail=
page_count=5
extra_vars=Array
default_style=webzine
display_login_info=N
display_setup_button=Y
title=xxx
sub_title=xxx 글들 입니다.
comment=xxx에 작성된 글 내용을 표시 합니다.
notice_view=N
list_view=N
comment_view=Y
display_number=N
display_author=Y
display_regdate=N
display_readed_count=Y
display_voted_count=Y
display_last_update=Y
comment_count=7
thumbnail_type=ratio
grants=Array
admin_id=Array
*/



ps :
이거 $this->module_info->skin 만 애드온에서 먹었으면 애드온으로 만들면 좋을텐데
제가 잘 모르는지 애드온에서 바꿔치기가 안되네요...

파일은 아래에 첨부하겠습니다.
(첨부파일은 주석처리 해 놓겠습니다. 꼭 한번 소스들여다 보고 수정해주세요)

ps2 :
관리자 페이지 처리 부분에 대해서 추가했습니다.
제목 글쓴이 날짜
외부페이지에서 로그인 폼 구현하기 컴퓨터매니아 2013.09.09
위젯 페이지에서 첨부파일 100%로 파일이 업로드되지 않을 때 이온디 2013.09.04
메일링 가입 인증 폼 부터 ..가입인증 메일 제목 가입인증 메일 코드 부분의 에러로 , msg_confirm_account_title 메일 주소가 이렇게 표기되어 오던 [3] file 애드바이러스 2013.09.02
모든 페이지에 공통된 내용을 적용하기. [3] 컴퓨터매니아 2013.09.01
회원가입확장 모듈 - 가입절차중 오류 발생시 처음으로 돌아가는 현상 [1] 김개발 2013.08.30
카페XE를 Domain 접속으로 설정 후 관리페이지 접속 불가할때 [1] 라르게덴 2013.08.24
jQuery fadeIn 홈페이지 부드럽게 이동 [4] file 지그재거 2013.08.20
리퍼러 수집기 애드온 실행후 사이트 먹통되었을때 대처법 [2] serendip 2013.08.19
스크롤 맨아래로 내리면 자동으로 글 목록 더보이기 구현(게시판어어느 스킨이든 사용가능) [19] 장포크 2013.08.10
최신 제로보드 XE 동영상 강의 [25] 하얀마법 2013.08.09
새로고침없이 페이지 리로딩 간단하고 쉽게 서버한테는 미안하게 하는법 (서버단이 아니고 스킨에 ㅠ jquery load씀) 게시글,댓글,추천등 모든 부분다가능합니다. [2] 장포크 2013.08.08
HTML5를 이용한 시멘틱 XE 레이아웃 만들기 (인트로) [3] 이온디 2013.08.04
XE 위키 모듈에서 소셜XE 댓글 사용하기 novelic 2013.07.31
게시판 및 댓글 추천/비추천 카운트가 바로 적용되지 않는 경우 KS 2013.07.28
페이스북 애드온 - 뭐 팁이랄것도 아닙니다. [1] 후아아아~ 2013.07.27
Recruit 모듈 - 일반회원 채용글 등록할 수 있도록 수정 [10] 홍채화 2013.07.27
1.7 버전 사이트 메뉴 편집 사용법 [4] file 휘즈 2013.07.27
게시판 에디터에서 자동저장 기능의 시간간격 조절하는 방법 [1] sejin7940 2013.07.26
[위키정복]3탄 - 사이트내 게시판 등에서 위키링크를 사용하자 [3] file kukuriko 2013.07.25
[위키정복]2탄 - 미디어위키의 내부링크를 버그를 해결하자 [2] kukuriko 2013.07.25