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

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

· 2년 전 · 2434 · 6

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

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

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

 

주의할 사항

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개

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

게시글 목록

번호 제목
22569
22566
22565
22559
22530
22527
22525
22521
22518
22506
22500
22490
22487
22481
22480
22473
22471
22468
22453
22449
22440
22436
22435
22415
22407
22404
22376
22364
22362
22353