특정게시판에만 팝업을 띄울수있는방법이?

특정게시판에만 팝업을 띄울수있는방법이?

QA

특정게시판에만 팝업을 띄울수있는방법이?

본문

팝업공지를 다른게시판에도 나타나게 할수있는지 찾아보니 https://sir.kr/qa/330832 질문글에

해결책이 올라왔더라구요.

특정게시판에만 팝업창이 나오게 하고싶어서 보니

https://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=287

모든 게시판이 아닌 특정 게시판만 지정하고 싶으면 이렇게..

<?php
if(defined('_INDEX_') || $bo_table == 'free') { // index,자유게시판에서만 실행
    include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
}
?>

 

이렇게 하면 그 게시판에만 출력이 된다고하는데 문제는 이렇게 적용해놓고나면

나중에 추가 팝업을 생성하면 메인화면이 아닌 특정게시판에만 팝업이 나올텐데

혹시 a란게시판에만 팝업을 나타나게 할수있는 방법이 있을까요?

 

만약 없다면

인터넷에 찾아보면 팝업창띄울수있는 소스들이 있는데 이걸 게시판 list.skin.php 넣으면

작동이 될지...궁굼하네요

이 질문에 댓글 쓰기 :

답변 1

음... 우선... 직접 개발은 안하고 생각만으로 적는 거에요~
그러니 자잘한 수정은 있을 수 있으실거에요~

 

1. 일단 관리자의 팝업레이어를 수정하세요.

    노출 게시판을 지정할 수 있도록 추가 필드를 작성하세요.
    물론 DB에도 저장해야겠죠? 음... 필드를... "nw_show_page"라고 했다고 치구요.
    (아.... 게시판명 뿐 아니라 메인에서도 나오게 하려면 main이라는 단어도 추가하는 걸로...)
    만약 "main,free,notice" 라고 입력하면 해당 팝업은 메인, 자유게시판, 공지사항에서 노출이 될거구요.

    만약 "free"라고만 적으시면 자유게시판에만 노출되는 거죠.

2949618301_1596536559.697.png

 

 

2. 그리고 head.php에 있는 코드를 아래와 같이 수정...


<!-- 상단 시작 { -->
<div id="hd">
    <h1 id="hd_h1"><?php echo $g5['title'] ?></h1>
    <div id="skip_to_container"><a href="#container">본문 바로가기</a></div>
    <?php
    if(defined('_INDEX_')) { // index에서만 실행
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    }
 
   // 이렇게 코드를 추가하면 어떨까요?
   $sql = " select count(*) AS cnt from {$g5['new_win_table']}
              where '".G5_TIME_YMDHIS."' between nw_begin_time and nw_end_time
                and nw_device IN ( 'both', 'pc' )
                and nw_show_page LIKE '%". $bo_table ."%'";
   $result = sql_query($sql, false);
   if ( $result["cnt"] > 0 ) {
        include_once G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
   }   // 추가의 끝부분...
    ?>
    <div id="tnb">

 

3. 그 다음... 메인이든 특정게시판이든 선택적으로 팝업이 나와야 하니까 쿼리가 바뀌어야 합니다.

그래서 newwin.inc.php도 조금 수정해야 합니다.


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
 
$whereShowPage = "";
if ( defined('_INDEX_') ) {
   $whereShowPage = " and nw_show_page LIKE '%main%' ";
} else if ( $bo_table ) {
   $whereShowPage = " and nw_show_page LIKE '%". $bo_table ."%' ";
} 
 
$sql = " select * from {$g5['new_win_table']}
          where '".G5_TIME_YMDHIS."' between nw_begin_time and nw_end_time
            and nw_device IN ( 'both', 'pc' )
            ". $whereShowPage  ."
          order by nw_id asc ";
$result = sql_query($sql, false);
?>
<!-- 팝업레이어 시작 { -->
<div id="hd_pop">
    <h2>팝업레이어 알림</h2>
<?php

 

요렇게 해보시면 될 듯 합니다.

만약 도움이 되시어 해결이 되셨다면...
결과 코드도 좀 올려주시면 좋겠네요~~~

아.. 답변남겨주셨네요. 아무래도 원본파일 수정하면 나중에 또 업데이트시에
또수정 해야할꺼같아서 그냥 게시판 스킨에다가 팝업띄우는 소스 넣어 해결했습니다.
위 답변내용은 나중에 필요로 하시는 다른분들을 위해....

2번 내용의 수정이 좀 필요한데, 이미 채택이 ㅋㅋㅋ
나중에 필요로 하시는 다른 분들...
혹여 이 글을 활용하신다면
그누보드팁 메뉴에 올려주세요 ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 432
QA 내용 검색

회원로그인

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