자유게시판에 올라온 글을 보고 호기심이 동해서 급하게 구현해 봤습니다.
구현하는 도중 굳이 이렇게 쓸 일이 있을까 싶긴 했지만,
세상에는 불가피하게 어쩔 수 없이 이렇게까지 해야 되는 경우도 있으니...라는 생각으로 구현했습니다.
주의할 사항
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개
게시글 목록
| 번호 | 제목 |
|---|---|
| 21529 | |
| 21526 | |
| 21521 | |
| 21516 | |
| 21513 | |
| 21502 | |
| 21485 | |
| 21471 | |
| 21467 | |
| 21457 | |
| 21424 | |
| 21421 | |
| 21415 | |
| 21410 | |
| 21406 | |
| 21405 | |
| 21394 | |
| 21378 | |
| 21354 | |
| 21349 | |
| 21345 | |
| 21316 | |
| 21299 | |
| 21297 | |
| 21279 | |
| 21276 | |
| 21254 | |
| 21242 | |
| 21214 | |
| 21206 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기