팝업창 질문드려요

팝업창 질문드려요

QA

팝업창 질문드려요

답변 3

본문

메인도 팝업띄우고 특정페이지에도 팝업창을 띄우고 싶은데 어떻게 해야하나요..

초보입니다..ㅜ;ㅜ

이 질문에 댓글 쓰기 :

답변 3

특정 페이지(예를 들어 sub_01 페이지) 상단에

define('_SUB01_', true);

을 지정합니다.(여기에서 _SUB01_는 상수값으로 제가 임의로 지정한 것이구요. 상수는 변수와 다르게 보통 대문자로 지정합니다.)

head.php 파일에서

    <?php
    if(defined('_INDEX_')) { // index에서만 실행
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    }
    ?>

코드 부분을

    <?php
    if(defined('_INDEX_') || defined('_SUB01_')) { // index에서만 실행
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    }
    ?>

로 수정해 주시고요.

페이지가 추가되면 위의 형식대로 하나씩 추가해주시면 됩니다. 

head.php에 들어가보시면


    <?php
    if(defined('_INDEX_')) { // index에서만 실행
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    }
    ?>

이렇게 팝업 레이어 소스가있습니다.

 

간단하게 아래처럼 if문{}만 지워주시면 될듯하네요


    <?php
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    ?>

이렇게 if문을 제거하면 모든 페이지에서 head.php파일을 호출하기때문에

모든 페이지에서 팝업 창이 나타납니다.

 

이것을 특정 페이지도 추가하고싶다고 한다면

예를들어서 게시판명 aaa, 내용명 bbb에 나타나게 하고싶다면


    <?php
    if(defined('_INDEX_') || $bo_table == 'aaa' || $co_id == 'bbb') { // index에서만 실행
        include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
    }
    ?>

이렇게 처리하시면 될것같습니다.

http://sir.kr/g5_tip/4102 

이런 방법도 있으니, 참고해 보세요.

if($_SERVER['SCRIPT_NAME'] == "/bbs/board.php") { define('_INDEX_', true); }

2. 조건문의 script_name 을 원하는 페이지로 조절하시면 됩니다.

요기서 스크립트네임은 어떤식으로 하라는건지 이해를 못하겟어요..

if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php") { define('_INDEX_', true); }
이렇게 해 보세요.

뒤에 파라미터가 반드시 있어야 하는 상황이라면,
$_SERVER['SCRIPT_NAME'] 대신에 $_SERVER['REQUEST_URI'] 로 바꾸어서 해 보세요.

아아 풀어놓았어요!
user.config.php 에는 이렇게 했습니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 특정 페이지에 팝업 띄우기
if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php?hid=use") { define('_INDEX_', true); }
?>

사용방법 페이지에 팝업 적용이 되지 않은 것 같은데요..

혹시, head.php 에
include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어
이런 코드가 있나요?

php 소스를 보지 않고는 답변을 드리기 힘들 것 같습니다.

링크주신거에 나와잇는그대로 한거에요..

user.config.php 에는 이렇게 하고


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 특정 페이지에 팝업 띄우기
if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php?hid=use") { define('_INDEX_', true); }
?>
달리 또 몰 하라는건 없는데요..ㅜ.




head.php 에  include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어  넣으니

되긴하는데요.

다른분 답변 주신것처럼 메인팝업의 닫기가 안눌리는 현상이 생겨요..ㅜ으아아아아

메인에..

include G5_BBS_PATH.'/newwin.inc.php'; // 팝업레이어

이게 두번 include 되는 것 같습니다..


제가 알려 드린 방법은 그누보드 기본 소스를 변경하지 않고 적용하는 방법입니다.

그누보드 원본 소스를 수정하지 말고 적용해 보세요.

위에 port 님 방법과, 제가 알려드린 방법에서, 동일한 문제가 발생하는 것인가요?

그런 것으로 보아서는, 팝업 기능 적용전 소스에 문제가 있어 보입니다.

php 소스를 봐야 알 수 있을 것 같습니다.

현재 초기상태라 수정한것이 없구요..
user.config.php 에 소스만 추가했고.
다른건 만지지 않았어요.  원래상태입니다.


head.php는 이거에요.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if(!defined('THEMA_PATH')) {
include_once(G5_LIB_PATH.'/apms.thema.lib.php');
}

if(USE_G5_THEME && defined('G5_THEME_PATH')) {
    require_once(G5_THEME_PATH.'/head.php');
    return;
}

// Page Iframe Modal
if(APMS_PIM) {
include_once(G5_PATH.'/head.sub.php');
@include_once(THEMA_PATH.'/head.sub.php');
return;
}

//Change Mode
$as_href['pc_mobile'] = (G5_DEVICE_BUTTON_DISPLAY) ? get_device_change_url() : '';

// Head Sub
include_once(G5_PATH.'/head.sub.php');
include_once(G5_LIB_PATH.'/latest.lib.php');

$page_title = apms_fa($page_title);
$page_desc = apms_fa($page_desc);

$menu = apms_auto_menu();
$menu = apms_multi_menu($menu, $at['id'], $at['multi']);

if($is_member) thema_member();

//Statistics
$stats = apms_stats();

if($is_main && !$hid && !$gid ) {
$newwin_path = (G5_IS_MOBILE) ? G5_MOBILE_PATH : G5_BBS_PATH;
@include_once ($newwin_path.'/newwin.inc.php'); // 팝업레이어
}

if(IS_YC) {
if(IS_SHOP) {
if(file_exists(THEMA_PATH.'/shop.head.php')) {
include_once(THEMA_PATH.'/shop.head.php');
} else {
include_once(THEMA_PATH.'/head.php');
}
} else {
if(file_exists(THEMA_PATH.'/head.php')) {
include_once(THEMA_PATH.'/head.php');
} else {
include_once(THEMA_PATH.'/shop.head.php');
}
}
} else {
include_once(THEMA_PATH.'/head.php');
}

?>

위 소스는 그누보드 root 혹은 해당 빌드의 root 에 있는 head.php 인 것 같은데요..
이건 별로 중요하지 않습니다. 테마 시스템에서는 건드릴 필요도 없고요.

제가 말씀드린 head.php 소스는, 빌더나 테마에 있는 head.php 소스, 즉 실제 적용되는 소스를 말합니다.

그리고, 알려주신 홈페이지는, 제가 브라우저를 닫아 버려서 들어가 볼 수가 없습니다.

죄송하지만, 오늘은 시간이 늦어 더이상 답변을 드릴 수 없을 것 같습니다.

페이지 구분을 위해서 파라미터가 필요하시면,
script_name 대신에 request_uri 를 사용해 보시기 바랍니다.

if($_SERVER['REQUEST_URI'] == "/bbs/page.php?hid=use") { define('_INDEX_', true); }

이렇게 하시면, ?hid=use 라는 파라미터로 구분해서 사용할 수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 26
© SIRSOFT
현재 페이지 제일 처음으로