본문 바로가기

PHP/그누보드

그누보드 배너기능 사용하기

https://sir.kr/g5_tip/12591?sfl=wr_subject%7C%7Cwr_content&stx=%EB%B0%B0%EB%84%88 

 

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

영카트에서는 배너노출 기능이 있는데 그누보드에는 없습니다. <br/> <br/>  <br/> <br/>영카트 배너기능을 그대로 사용하고 싶은신 분들은 아래 내용을 참고하여 적용하시면 됩니다. <br/> <br/>  <br/>

sir.kr

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

 

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

 

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