https://sir.kr/g5_tip/12591?sfl=wr_subject%7C%7Cwr_content&stx=%EB%B0%B0%EB%84%88
영카트에서는 배너노출 기능이 있는데 그누보드에는 없습니다.
영카트 배너기능을 그대로 사용하고 싶은신 분들은 아래 내용을 참고하여 적용하시면 됩니다.
※버그 유무 태스트 정확히 해보지 않음, 배너 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('메인상단슬라이드배너');