그누보드 영카트 테마를 각각 지정해 보자 > 그누보드5 팁자료실

그누보드5 팁자료실

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

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

본문

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

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

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

 

주의할 사항

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 추가

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>';
을 (46라인쯤)
        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>';
을 (55라인쯤)
            $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

댓글 6개

전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT