그누보드에서 배너(영카트) 사용하기 > 그누보드5 팁자료실

그누보드5 팁자료실

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

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

본문

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

 

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

 

※버그 유무 태스트 정확히 해보지 않음, 배너 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('메인상단슬라이드배너');

 

 

추천
6

댓글 4개

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

7번에서 에러가 나네요 ㅠㅠ
전체 2,424 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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