AnimeClub - zbXE... : zeroboard XE

XpressEngine에 관련 내용에 대해서 이야기 합니다.

icon 조건별로 스킨 바꾸기

조회 수:2823 등록일:2008.08.07 17:02:54 (*.234.236.247)
게시판 모듈에 스킨을 카테고리별 혹은 특정회원별로 구분하여 변경하게 하는 팁입니다.

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


zbxe/index.php 에 아래의 내용을 추가해주세요.
제로보드메인/index.php아래의 내용에 include문을 추가해주세요.
    /**
     * @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 :
관리자 페이지 처리 부분에 대해서 추가했습니다.

조회 수 :
2823
등록일 :
2008.08.07
17:02:54 (*.234.236.247)
엮인글 :
http://animeclub.net/zbXE/57398/1f5/trackback
게시글 주소 :
http://animeclub.net/57398
List of Articles
번호 제목 글쓴이 날짜 조회 수
193 질문-답변 Cooliris PicLens alljoy 2014-02-19 22915
192 질문-답변 운영잔님 질문드립니다. [1] 인터넷짱 2013-06-08 20838
191 질문-답변 아래글에 이어서.. [4] secret 동쪽에태양 2013-02-24 9
190 질문-답변 piclens 을 수정 하고 싶어요 ^^ [2] secret 동쪽에태양 2013-02-17 3
189 질문-답변 로마네스크 재질문 [2] secret 인터넷짱 2013-01-22 5
188 질문-답변 piclens 1.2 요청합니다. [1] alljoy 2013-01-10 14076
187 질문-답변 로마네스크 최근글 질문입니다. [2] file 인터넷짱 2013-01-04 10438
186 질문-답변 아래글 이전글-다음글 관련 확인했는데... 고민하다가 2012-08-13 13468
185 질문-답변 이전글-다음글 관련 문의드립니다. [2] secret 고민하다가 2012-07-31 5
184 질문-답변 이전글 다음글 다시 질문드립니다. [2] 감사합니다. 2012-05-15 13713
183 질문-답변 이전글 다음글 문의드립니다, [2] 감사합니다 2012-05-09 56879
182 질문-답변 로마네스크 최근 문서 출력 위젯 [3] 종구이 2012-03-31 21358
181 질문-답변 json 추출 글 보고 문의 드립니다. [2] cosmos 2012-03-28 25682
180 질문-답변 이전글 다음글 출력에 관한문의 [2] file 봄날2 2012-03-16 22712
179 질문-답변 이전글 다음글 1.1 버튼색상요 [5] 열공365 2012-03-15 15818
178 질문-답변 흠.. 어떻게 하는거죠?? 위젯이 이상해요..; [3] file 2012-02-27 19965
177 질문-답변 이전글 다음글 위젯이요 [2] 열공365 2012-02-20 35816
176 질문-답변 게시판글을 xml로 파싱하는 방법을 부탁드립니다. [2] ibwj 2011-11-24 29229
175 질문-답변 Cooliris PicLens 애드온 1.5..... [3] secret alljoy 2011-10-30 7
174 질문-답변 위젯: 썸네일 생성에 대해서 질문있어요 [2] 아메아메몬 2011-03-25 18496



CATEGORY
ALL [600]
공지 [3]
[551]
사진 [39]
정보 [6]
소식 [2]
정보 [4]

Skin Info

slide_in
 갱신
 
arrow_in