XpressEngine에 관련 내용에 대해서 이야기 합니다.
글 수 193
게시판 모듈에 스킨을 카테고리별 혹은 특정회원별로 구분하여 변경하게 하는 팁입니다.
이 팁은 애드온상에서는 도저히 $this->module_info->skin 을 수정할 수 없어서 꼼수로 했는데요.
(수정은 되는데 내부모듈에서 자기가 불러올 내용으로 수정해서 못불러오겠더라고요.)
zbxe/index.php 에 아래의 내용을 추가해주세요.
그리고 아래의 내용을 적당한 파일명으로 만드세요(파일 첨부도 해드리겠습니다.)
설명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 :
관리자 페이지 처리 부분에 대해서 추가했습니다.
이 팁은 애드온상에서는 도저히 $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 :
관리자 페이지 처리 부분에 대해서 추가했습니다.