그누보드 영카트 테마를 각각 지정해 보자 정보
그누보드 영카트 테마를 각각 지정해 보자본문
자유게시판에 올라온 글을 보고 호기심이 동해서 급하게 구현해 봤습니다.
구현하는 도중 굳이 이렇게 쓸 일이 있을까 싶긴 했지만,
세상에는 불가피하게 어쩔 수 없이 이렇게까지 해야 되는 경우도 있으니...라는 생각으로 구현했습니다.
주의할 사항
1)테마 미리보기, 기본스킨 설정 등까지는 테스트 안 해봤습니다.
특히 기본스킨 설정은 손을 더 보셔야 할 것 같습니다.
2)쇼핑몰 관련된 내용도 포함되어 있으니 결제 오류 등 충분히 테스트를 해보시고
3)그리고나서도 10000번 정도 고민해 보시고
4)됐다 싶을 쯤에 다시 한 번 고민해 보시고 적용하시기 바랍니다.
작업버전
5.5.8.2.7
수정한 원본파일
adm/
- theme.js
- theme.php
- theme_update.php
mobile/shop/
- _common.php
shop/
- _common.php
common.php
DB column 추가
ALTER TABLE `g5_config` ADD `cf_shop_theme` VARCHAR(255) NOT NULL AFTER `cf_theme`;
adm/theme.js
1)
var name = $(this).data("name");
var themetype = $(this).data("type");
2)
"theme": theme,
"set_default_skin": set_default_skin
"theme": theme,
"themetype" : themetype,
"set_default_skin": set_default_skin
3)
"theme": theme,
"type": "reset"
"theme": theme,
"themetype" : themetype,
"type": "reset"
adm/theme.php
1)
if($config['cf_theme'] == $theme[$i]) {
$btn_active = '<span class="theme_sl theme_sl_use">사용중</span><button type="button" class="theme_sl theme_deactive" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'">사용안함</button>';
if (($config['cf_theme'] == $theme[$i] && $config['cf_shop_theme'] == $theme[$i]) && $config['cf_theme'] == $config['cf_shop_theme']) {
$btn_active = '<span class="theme_sl theme_sl_use"><i class="fa fa-check"></i><span class="sound_only">사용중</span></span><button type="button" class="theme_sl theme_deactive" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="3">모두해제</button>';
} else if($config['cf_theme'] == $theme[$i]) {
$btn_active = '<span class="theme_sl theme_sl_use"><i class="fa fa-check"></i><span class="sound_only">사용중</span></span>';
$btn_active .= '<button type="button" class="theme_sl theme_deactive" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="1">커뮤해제</button>';
$btn_active .= '<button type="button" class="theme_sl theme_active" style="margin-left:4px;" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="2" data-set_default_skin="'.$set_default_skin.'">모두적용</button>';
} else if($config['cf_shop_theme'] == $theme[$i]) {
$btn_active = '<span class="theme_sl theme_sl_use"><i class="fa fa-check"></i><span class="sound_only">사용중</span></span><button type="button" class="theme_sl theme_deactive" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="2">쇼핑해제</button>';
$btn_active .= '<button type="button" class="theme_sl theme_active" style="margin-left:4px;" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="1" data-set_default_skin="'.$set_default_skin.'">모두적용</button>';
2)
$btn_active = '<button type="button" class="theme_sl theme_active" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-set_default_skin="'.$set_default_skin.'">테마적용</button>';
$btn_active = '<button type="button" class="theme_sl theme_active" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="1" data-set_default_skin="'.$set_default_skin.'">커뮤적용</button>'.PHP_EOL;
$btn_active .= '<button type="button" class="theme_sl theme_active" style="margin-left:4px;" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="2" data-set_default_skin="'.$set_default_skin.'">쇼핑적용</button>';
$btn_active .= '<button type="button" class="theme_sl theme_active" style="margin-left:4px;" data-theme="'.$theme[$i].'" '.'data-name="'.$name.'" data-type="3" data-set_default_skin="'.$set_default_skin.'">모두적용</button>';
3)
<button type="button" class="tmli_dt theme_preview" data-theme="<?php echo $theme[$i]; ?>">상세보기</button>
<button type="button" class="tmli_dt theme_preview" data-theme="<?php echo $theme[$i]; ?>">상세</button>
adm/theme_update.php
1)
$theme_dir = get_theme_dir();
switch($themetype) {
case 1:
$sql_theme = " cf_theme = '{$theme}' ";
$sql_reset_theme = " cf_theme = '' ";
break;
case 2:
$sql_theme = " cf_shop_theme = '{$theme}' ";
$sql_reset_theme = " cf_shop_theme = '' ";
break;
case 3:
$sql_theme = " cf_theme = '{$theme}', cf_shop_theme = '{$theme}' ";
$sql_reset_theme = " cf_theme = '', cf_shop_theme = '' ";
break;
}
2)
$sql = " update {$g5['config_table']} set cf_theme = '' ";
$sql = " update {$g5['config_table']} set {$sql_reset_theme} ";
3)
$sql = " update {$g5['config_table']} set cf_theme = '$theme' ";
$sql = " update {$g5['config_table']} set {$sql_theme} ";
mobile/shop/_common.php
define('_SHOP_', true);
define('_SHOP_', true);
include_once('../../common.php');
shop/_common.php
define('_SHOP_', true);
define('_SHOP_COMMON_', true); // 모바일 페이지의 직접 접근을 막는 경우에 사용
define('_SHOP_', true);
define('_SHOP_COMMON_', true); // 모바일 페이지의 직접 접근을 막는 경우에 사용
include_once('../common.php');
common.php
1)
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true)
$config['cf_theme'] = isset($_GET['theme']) ? trim($_GET['theme']) : '';
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true) {
$config['cf_theme'] = isset($_GET['theme']) ? trim($_GET['theme']) : '';
$config['cf_shop_theme'] = isset($_GET['theme']) ? trim($_GET['theme']) : '';
}
2)
if(isset($config['cf_theme']) && trim($config['cf_theme'])) {
$theme_path = G5_PATH.'/'.G5_THEME_DIR.'/'.$config['cf_theme'];
if((isset($config['cf_theme']) && trim($config['cf_theme'])) && (isset($config['cf_shop_theme']) && trim($config['cf_shop_theme']))) {
if (defined('_SHOP_')) $config_theme = $config['cf_shop_theme'];
else $config_theme = $config['cf_theme'];
$theme_path = G5_PATH.'/'.G5_THEME_DIR.'/'.$config_theme;
3)
define('G5_THEME_URL', G5_URL.'/'.G5_THEME_DIR.'/'.$config['cf_theme']);
define('G5_THEME_URL', G5_URL.'/'.G5_THEME_DIR.'/'.$config_theme);
추천
12
12
댓글 6개
디자이너 아니신가요? 0_0
@쪼각조각 리자님으로부터 디자인 금지령을 1032일째 명받았읍니다. 흑흑흑
와우 엉뚱발랄하십니다
고맙게 활용하겠습니다
고맙게 활용하겠습니다
감사합니다.
진짜 멋있어요
그냥 현재 그누에다가 기능 넣어주셨으면... ㅎㅎㅎㅎ