테스트 사이트 - 개발 중인 베타 버전입니다

그누보드 영카트 테마를 각각 지정해 보자

자유게시판에 올라온 글을 보고 호기심이 동해서 급하게 구현해 봤습니다.

구현하는 도중 굳이 이렇게 쓸 일이 있을까 싶긴 했지만,

세상에는 불가피하게 어쩔 수 없이 이렇게까지 해야 되는 경우도 있으니...라는 생각으로 구현했습니다.

 

주의할 사항

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

 

3717582117_1678171683.3813.jpg

 

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개

디자이너 아니신가요? 0_0
@쪼각조각 리자님으로부터 디자인 금지령을 1032일째 명받았읍니다. 흑흑흑
와우 엉뚱발랄하십니다
고맙게 활용하겠습니다
진짜 멋있어요
그냥 현재 그누에다가 기능 넣어주셨으면... ㅎㅎㅎㅎ

게시판 목록

그누보드5 팁자료실

글쓰기
🐛 버그신고