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

그누보드에서 배너(영카트) 사용하기

· 5년 전 · 6704 · 4

영카트에서는 배너노출 기능이 있는데 그누보드에는 없습니다.

 

영카트 배너기능을 그대로 사용하고 싶은신 분들은 아래 내용을 참고하여 적용하시면 됩니다.

 

※버그 유무 태스트 정확히 해보지 않음, 배너 table명은 쇼핑몰에서 사용하는 table과 동일 

 

===============================================================

 

*영카트에 존재하는 배너 기능을 그대로 사용하는 것이기 때문에 영카트 코드가 필요합니다.

 

1.
DB에 board_banner 테이블 생성

--DROP TABLE IF EXISTS `g5_board_banner`;
CREATE TABLE IF NOT EXISTS `g5_board_banner` (
  `bn_id` int(11) NOT NULL AUTO_INCREMENT,
  `bn_alt` varchar(255) NOT NULL DEFAULT '',
  `bn_url` varchar(255) NOT NULL DEFAULT '',
  `bn_device` varchar(10) NOT NULL DEFAULT '',
  `bn_position` varchar(255) NOT NULL DEFAULT '',
  `bn_border` tinyint(4) NOT NULL DEFAULT '0',
  `bn_new_win` tinyint(4) NOT NULL DEFAULT '0',
  `bn_begin_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `bn_end_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `bn_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `bn_hit` int(11) NOT NULL DEFAULT '0',
  `bn_order` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`bn_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

2.
/adm/admin.menu300.php 메뉴코드 마지막에 아래 코드 추가
    array('300900', '배너관리', G5_ADMIN_URL.'/bannerlist.php', 'scf_banner', 1),

 

3.
/adm/shop_admin/디렉토리에 있는 아래 세 파일을 (영카트에 존재하는 파일)

/adm/shop_admin/bannerform.php,
/adm/shop_admin/bannerlist.php,
/adm/shop_admin/bannerformupdate.php 

/adm/ 디렉토리로 복사

 

결과=>

/adm/bannerform.php,              
/adm/bannerlist.php,              
/adm/bannerformupdate.php
 

각 파일 최상단 $sub_menu = '500500'; 값을  $sub_menu = '300900'; 으로 수정

 

4.
세 파일 모두 
'g5_shop_banner_table' 값을
를 아래 값으로 수정
'g5_banner_table'

 

5.
/data/dbconfig.php 에 아래 코드 추가
$g5['g5_banner_table'] = G5_TABLE_PREFIX.'board_banner'; // 보드 배너 테이블

 

6.
/adm/bannerformupdate.php에서 약 90line
upload_file
함수명을
upload_file_for_banner
로 수정


7.
/lib/common.lib.php 에서 아래 두 함수 코드 추가

//기존 함수 이름을 바꿔준 이유는 추후 영카트 추가 설치시 동일한 함수명을 피하기 위함

//배너 파일을 업로드 함
function upload_file_for_banner($srcfile, $destfile, $dir)
{
    if ($destfile == "") return false;
    // 업로드 한후 , 퍼미션을 변경함
    @move_uploaded_file($srcfile, $dir.'/'.$destfile);
    @chmod($dir.'/'.$destfile, G5_FILE_PERMISSION);
    return true;
}

// 보드 배너출력
function display_board_banner($position, $skin='',$cnt_only='n')
{
    global $g5;

    if (!$position) $position = '왼쪽';
    if (!$skin) $skin = 'boxbanner.skin.php';

    $skin_path = G5_SKIN_PATH.'/banner/'.$skin;
    if(G5_IS_MOBILE)
        $skin_path = G5_MSHOP_SKIN_PATH.'/banner/'.$skin;

    if(file_exists($skin_path)) {
        // 접속기기
        $sql_device = " and ( bn_device = 'both' or bn_device = 'pc' ) ";
        if(G5_IS_MOBILE)
            $sql_device = " and ( bn_device = 'both' or bn_device = 'mobile' ) ";
        //배너 갯수만 출력
        if($cnt_only=='y'){
            $sql = " select count(*) as cnt from {$g5['g5_banner_table']} where '".G5_TIME_YMDHIS."' between bn_begin_time and bn_end_time $sql_device and bn_position = '$position' order by bn_order, bn_id desc ";
            $banner_cnt = sql_fetch($sql);
            return $banner_cnt['cnt'];
        }

        // 배너 출력
        $sql = " select * from {$g5['g5_banner_table']} where '".G5_TIME_YMDHIS."' between bn_begin_time and bn_end_time $sql_device and bn_position = '$position' order by bn_order, bn_id desc ";
        $result = sql_query($sql);


        include $skin_path;
    } else {
        echo '<p>'.str_replace(G5_PATH.'/', '', $skin_path).'파일이 존재하지 않습니다.</p>';
    }
}

 

8.
/skin/디렉토리에 banner 디렉토리 생성
=> /skin/banner/

/skin/shop/basic/ 디렉토리에 있는 아래 파일을 (영카트에 존재하는 파일)
boxbanner.skin.php

style.css

/img (디렉토리 통째)

 

/skin/banner/ 이곳에 복사 (banner 디렉토리 생성)
=> /skin/banner/boxbanner.skin.php

=> /skin/banner/style.css

=> /skin/banner/img

 

9.

복사한 boxbanner.skin.php 상단

add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">', 0);

add_stylesheet('<link rel="stylesheet" href="'.G5_SKIN_URL.'/banner/style.css">', 0);

로 수정

 

        else if ($row['bn_url'] && $row['bn_url'] != 'http://') {
            $banner .= '<a href="'.G5_SHOP_URL.'/bannerhit.php?bn_id='.$row['bn_id'].'"'.$bn_new_win.'>';
        }

        else if ($row['bn_url'] && $row['bn_url'] != 'http://') {
            $banner .= '<a href="'.G5_URL.'/bannerhit.php?bn_id='.$row['bn_id'].'"'.$bn_new_win.'>';
        }

로 수정

 

 

 

 

※<a href="'.G5_SHOP_URL.'/bannerhit.php?bn_id='.$row['bn_id'].'"'.$bn_new_win.'> : G5_SHOP_URL 및 bannerhit.php 은 영카트 경로 및 파일이므로 이를 다른 링크로 자체 수정 필요.

배너 클릭 카운트 관련 기능 역시 필요한 경우 해당 파일을 끌어와서 사용하시면 됩니다.

 

9.
출력은 아래와 같이 실행
echo display_board_banner('메인상단슬라이드배너');

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

오!! 유용한 정보 감사드립니다. 안그래도 요새 상단 띠배너(?)를 어떻게 만들어야 좋을까 고민하고 있었는데 한번 활용해보겠습니다~!!
아이고 감사합니다. 고민 고민 중이었습니다.
영카트배너를 그누에서 사용하기
3년 전
Fatal error: Cannot redeclare upload_file_for_banner() (previously declared in /home/users/0/kaad/web/lib/common.lib.php:11) in

7번에서 에러가 나네요 ㅠㅠ

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168