그누보드 영카트 테마를 각각 지정해 보자
자유게시판에 올라온 글을 보고 호기심이 동해서 급하게 구현해 봤습니다.
구현하는 도중 굳이 이렇게 쓸 일이 있을까 싶긴 했지만,
세상에는 불가피하게 어쩔 수 없이 이렇게까지 해야 되는 경우도 있으니...라는 생각으로 구현했습니다.
주의할 사항
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 추가
[code]ALTER TABLE `g5_config` ADD `cf_shop_theme` VARCHAR(255) NOT NULL AFTER `cf_theme`;[/code]
adm/theme.js
1)
[code]var name = $(this).data("name");[/code] 아래에
[code]var themetype = $(this).data("type");[/code] 추가 (이런 부분이 두 개)
2)
[code] "theme": theme,
"set_default_skin": set_default_skin[/code] 을
[code] "theme": theme,
"themetype" : themetype,
"set_default_skin": set_default_skin[/code] 으로 수정
3)
[code] "theme": theme,
"type": "reset"[/code] 을
[code] "theme": theme,
"themetype" : themetype,
"type": "reset"[/code] 으로 수정
adm/theme.php
1)
[code] 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>';[/code] 을 (46라인쯤)
[code] 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>';[/code] 으로 수정
2)
[code]$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>';[/code] 을 (55라인쯤)
[code] $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>';[/code] 으로 수정
3)
[code]<button type="button" class="tmli_dt theme_preview" data-theme="<?php echo $theme[$i]; ?>">상세보기</button>[/code] 을
[code]<button type="button" class="tmli_dt theme_preview" data-theme="<?php echo $theme[$i]; ?>">상세</button>[/code] 으로 수정
adm/theme_update.php
1)
[code]$theme_dir = get_theme_dir();[/code] 아래에
[code]
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;
}[/code] 추가
2)
[code]$sql = " update {$g5['config_table']} set cf_theme = '' ";[/code] 을
[code]$sql = " update {$g5['config_table']} set {$sql_reset_theme} ";[/code] 으로 수정
3)
[code]$sql = " update {$g5['config_table']} set cf_theme = '$theme' ";[/code] 을
[code]$sql = " update {$g5['config_table']} set {$sql_theme} ";[/code] 으로 수정
mobile/shop/_common.php
[code]define('_SHOP_', true);[/code] 이 코드를 첫번째 줄로 이동
[code]define('_SHOP_', true);
include_once('../../common.php');[/code] 이렇게 돼야 함
shop/_common.php
[code]define('_SHOP_', true);
define('_SHOP_COMMON_', true); // 모바일 페이지의 직접 접근을 막는 경우에 사용[/code] 이 코드를 첫번째 줄로 이동
[code]define('_SHOP_', true);
define('_SHOP_COMMON_', true); // 모바일 페이지의 직접 접근을 막는 경우에 사용
include_once('../common.php');[/code] 이렇게 돼야 함
common.php
1)
[code]if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true)
$config['cf_theme'] = isset($_GET['theme']) ? trim($_GET['theme']) : '';[/code] 을
[code]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']) : '';
}[/code] 으로 수정
2)
[code]if(isset($config['cf_theme']) && trim($config['cf_theme'])) {
$theme_path = G5_PATH.'/'.G5_THEME_DIR.'/'.$config['cf_theme'];[/code] 을
[code]
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;[/code] 으로 수정
3)
[code]define('G5_THEME_URL', G5_URL.'/'.G5_THEME_DIR.'/'.$config['cf_theme']);[/code] 을
[code]define('G5_THEME_URL', G5_URL.'/'.G5_THEME_DIR.'/'.$config_theme);[/code] 으로 수정
댓글 6개
고맙게 활용하겠습니다
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4432 | ||
| 2274 | 2년 전 | 2067 | ||
| 2273 |
|
2년 전 | 1488 | |
| 2272 | 2년 전 | 2469 | ||
| 2271 | 2년 전 | 2070 | ||
| 2270 |
|
2년 전 | 2091 | |
| 2269 |
|
2년 전 | 1892 | |
| 2268 | 2년 전 | 3850 | ||
| 2267 | 2년 전 | 2901 | ||
| 2266 |
|
2년 전 | 2124 | |
| 2265 | 2년 전 | 1644 | ||
| 2264 | 2년 전 | 2123 | ||
| 2263 | 2년 전 | 1992 | ||
| 2262 | 2년 전 | 1541 | ||
| 2261 |
|
2년 전 | 1452 | |
| 2260 | 2년 전 | 2442 | ||
| 2259 |
welcome
|
2년 전 | 1778 | |
| 2258 |
welcome
|
2년 전 | 1307 | |
| 2257 | 2년 전 | 3057 | ||
| 2256 | 2년 전 | 1317 | ||
| 2255 |
|
2년 전 | 1826 | |
| 2254 | 2년 전 | 1799 | ||
| 2253 |
welcome
|
2년 전 | 1573 | |
| 2252 |
welcome
|
2년 전 | 1343 | |
| 2251 | 2년 전 | 2397 | ||
| 2250 | 2년 전 | 2032 | ||
| 2249 | 2년 전 | 1819 | ||
| 2248 | 2년 전 | 1632 | ||
| 2247 | 2년 전 | 2057 | ||
| 2246 | 2년 전 | 2469 | ||
| 2245 | 2년 전 | 1921 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기