테스트 사이트 - 개발 중인 베타 버전입니다

팝업창 질문드려요 채택완료

퓨리프리 9년 전 조회 5,857

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

초보입니다..ㅜ;ㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
p
9년 전

특정 페이지(예를 들어 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'; // 팝업레이어
    }
    ?>

로 수정해 주시고요.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

퓨리프리
9년 전
특정 페이지에
define('_SUB01_', true); 로 넣었는데.. 페이지에 텍스트로 나와요...ㅜ

상단에 지정하라는게 정확히 어떻게 하라는말씀이신가요 ..
p
port
9년 전
php 코드로 넣으셔야죠.
<?php

?>
여기 사이에 넣으세요.
퓨리프리
9년 전
아아 잘됩니다!!! 감사합니다! 야호~~

댓글을 작성하려면 로그인이 필요합니다.

9년 전

http://sir.kr/g5_tip/4102">http://sir.kr/g5_tip/4102 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 25개

퓨리프리
9년 전
if($_SERVER['SCRIPT_NAME'] == "/bbs/board.php") { define('_INDEX_', true); }

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

요기서 스크립트네임은 어떤식으로 하라는건지 이해를 못하겟어요..
마스타
9년 전
if($_SERVER['SCRIPT_NAME'] == "팝업을띄울페이지URL") { define('_INDEX_', true); }
이렇게 작성하시면 됩니다.
퓨리프리
9년 전
아무런변화가 없어서요..

['SCRIPT_NAME'] 하고 상관이 있는지 하구요.. ㅠ
마스타
9년 전
팝업띄울 페이지의 url 을 보여 주실수 있으신가요?
퓨리프리
9년 전
// 특정 페이지에 팝업 띄우기
if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php?hid=free_fan") { define('_INDEX_', true); }
?>

이거구요.

일반문서로 페이지 만든거여요.
마스타
9년 전
if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php") { define('_INDEX_', true); }
이렇게 해 보세요.

뒤에 파라미터가 반드시 있어야 하는 상황이라면,
$_SERVER['SCRIPT_NAME'] 대신에 $_SERVER['REQUEST_URI'] 로 바꾸어서 해 보세요.
퓨리프리
9년 전
다해봤는데도 안되네요 ... 아무 반응이 없어요;..
일반문서로 페이지 만들고 모든페이지 다 테스트 해봣는데도 안되네요..
안되는건가봐요..ㅜㅜ
마스타
9년 전
일반 문서에 common.php , head.php , tail.php 등이 인클루드 되어 있지 않나요?

그리고, 오늘하루열지않기가 되어 버렸다면, 뜨지 않을 수도 있으니, 쿠키 삭제를 해 보세요.
퓨리프리
9년 전
쿠키때문은 아니구요..
아무래도 안되지 싶어요 ㅜㅜ 하루종일 씨름하네요 ㅠㅠ

답변 주셔서 감사해요... ㅜㅜㅜㅜㅜ
마스타
9년 전
url 을 알려 주실 수 있으신지요?
마스타
9년 전
로그인을 해야 볼 수 있나요? ^^
퓨리프리
9년 전
아아 풀어놓았어요!
user.config.php 에는 이렇게 했습니다.

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

// 특정 페이지에 팝업 띄우기
if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php?hid=use") { define('_INDEX_', true); }
?>
마스타
9년 전
사용방법 페이지에 팝업 적용이 되지 않은 것 같은데요..

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

php 소스를 보지 않고는 답변을 드리기 힘들 것 같습니다.
마스타
9년 전
위에서도 코멘트 드린 내용인데요..

if($_SERVER['SCRIPT_NAME'] == "/bbs/page.php") { define('_INDEX_', true); }
이렇게 해 보세요.
퓨리프리
9년 전
링크주신거에 나와잇는그대로 한거에요..

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'; // 팝업레이어 넣으니

되긴하는데요.

다른분 답변 주신것처럼 메인팝업의 닫기가 안눌리는 현상이 생겨요..ㅜ으아아아아
마스타
9년 전
/bbs/page.php?hid=use 에서
?hid=use 를 빼고

/bbs/page.php 만 해 보세요.
퓨리프리
9년 전
지금 이게 다른분 답변에서 처럼..
이것도 메인에서의 팝업닫기가 되질않아요. .
마스타
9년 전
메인에..

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

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


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

그누보드 원본 소스를 수정하지 말고 적용해 보세요.
퓨리프리
9년 전
ㅠ_ㅠ 그누원본 건드린게 없거든요...하.ㅜ
마스타
9년 전
위에 port 님 방법과, 제가 알려드린 방법에서, 동일한 문제가 발생하는 것인가요?

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

php 소스를 봐야 알 수 있을 것 같습니다.
퓨리프리
9년 전
현재 초기상태라 수정한것이 없구요..
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');
}

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

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

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

죄송하지만, 오늘은 시간이 늦어 더이상 답변을 드릴 수 없을 것 같습니다.
퓨리프리
9년 전
마스타님 답변 정말 감사드립니다^-^
여차저차 해결 되엇어요 ㅜㅜ!!
두번불러 온다 하셔서 루트 헤드에서 팝업레이어 주석처리 햇더니 잘되네요 ㅎ!

정말 감사드립니다 마스타님!
마스타
9년 전
페이지 구분을 위해서 파라미터가 필요하시면,
script_name 대신에 request_uri 를 사용해 보시기 바랍니다.

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

이렇게 하시면, ?hid=use 라는 파라미터로 구분해서 사용할 수 있습니다.
퓨리프리
9년 전
최고!!! 그나저나 너무 어렵네요 ㅎㅎㅎ 너무 감사드려요.

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

head.php에 들어가보시면

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

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

 

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

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

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

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

 

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

퓨리프리
9년 전
지운다음 어떻게 해야 되는건가요.? 아무 변화가 없어요..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인