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

추천버튼 비회원이 클릭시 '로그인후이용' 얼럿 띄우는법 (질문,칼채택!) 채택완료

그누초보다 8개월 전 조회 1,759

추천버튼 비회원이 클릭시 '로그인후이용' 얼럿 띄우는법 (질문,칼채택!)

 

아시는분 도움 부탁드립니다!!

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

답변 4개

채택된 답변
+20 포인트
8개월 전

안녕하세요...

@그누초보다 님 

 

사용하시는 스킨에서 아래 코드를 찾아 수정 해주시면 원하시는 결과를 얻을 수 있습니다.

사용하시는 스킨에서 view.skin.php 파일을 열어 주세요

 

아무것도 수정하지 않았다면 112번 라인이구요

수정 했다면 아래 코드를 찾아주세요

 

</p>

<pre>
<!--  추천 비추천 시작 { -->
<?php if ( $good_href || $nogood_href) { ?>
<div id="bo_v_act">
    <?php if ($good_href) { ?>
    <span class="bo_v_act_gng">
        <a href="<?php echo $good_href.'&amp;'.$qstr ?>" id="good_button" class="bo_v_good"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i><span class="sound_only">추천</span><strong><?php echo number_format($view['wr_good']) ?></strong></a>
        <b id="bo_v_act_good"></b>
    </span>
    <?php } ?>
    <?php if ($nogood_href) { ?>
    <span class="bo_v_act_gng">
        <a href="<?php echo $nogood_href.'&amp;'.$qstr ?>" id="nogood_button" class="bo_v_nogood"><i class="fa fa-thumbs-o-down" aria-hidden="true"></i><span class="sound_only">비추천</span><strong><?php echo number_format($view['wr_nogood']) ?></strong></a>
        <b id="bo_v_act_nogood"></b>
    </span>
    <?php } ?>
</div>
<?php } else {
    if($board['bo_use_good'] || $board['bo_use_nogood']) {
?>
<div id="bo_v_act">
    <?php if($board['bo_use_good']) { ?><span class="bo_v_good"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i><span class="sound_only">추천</span><strong><?php echo number_format($view['wr_good']) ?></strong></span><?php } ?>
    <?php if($board['bo_use_nogood']) { ?><span class="bo_v_nogood"><i class="fa fa-thumbs-o-down" aria-hidden="true"></i><span class="sound_only">비추천</span><strong><?php echo number_format($view['wr_nogood']) ?></strong></span><?php } ?>
</div>
<?php
    }
}
?>
<!-- }  추천 비추천 끝 -->
</pre>

<p>

 

여기에서 주목해야 할 부분이 아래 코드입니다.

</p>

<p><div id="bo_v_act">

    <?php if($board['bo_use_good']) { ?><span class="bo_v_good"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i><span class="sound_only">추천</span><strong><?php echo number_format($view['wr_good']) ?></strong></span><?php } ?>

    <?php if($board['bo_use_nogood']) { ?><span class="bo_v_nogood"><i class="fa fa-thumbs-o-down" aria-hidden="true"></i><span class="sound_only">비추천</span><strong><?php echo number_format($view['wr_nogood']) ?></strong></span><?php } ?>

</div>

 

이 부분을 아래 코드로 변경 해주세요 (해당 부분만 통으로 교체 해주세요

 

</p>

<p><div id="bo_v_act"></p>

<p>            <?php if($board['bo_use_good']) { ?></p>

<p>                <span class="bo_v_act_gng"></p>

<p>                <a href="<?php echo G5_BBS_URL.'/good.php?bo_table='.$board['bo_table'].'&amp;wr_id='.$view['wr_id'].'&amp;good=good' ?>" id="good_button" class="bo_v_good"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i><span class="sound_only">추천</span><strong><?php echo number_format($view['wr_good']) ?></strong></a></p>

<p>                <b id="bo_v_act_good"></b></p>

<p>            </span></p>

<p> </p>

<p>                <?php } ?></p>

<p>            <?php if($board['bo_use_nogood']) { ?></p>

<p>                <span class="bo_v_nogood"></p>

<p>                    <a href="<?php echo G5_BBS_URL.'/good.php?bo_table='.$board['bo_table'].'&amp;wr_id='.$view['wr_id'].'&amp;good=nogood' ?>" id="nogood_button" class="bo_v_nogood"><i class="fa fa-thumbs-o-down" aria-hidden="true"></i><span class="sound_only">비추천</span><strong><?php echo number_format($view['wr_nogood']) ?></strong></a></p>

<p>                    <b id="bo_v_act_nogood"></b></p>

<p>                </span></p>

<p>            <?php } ?></p>

<p>        </div></p>

<p>

 

그러면 원하시는 데로 알림창이 뜨게 됩니다.

 

http://sir.kr/data/editor/2502/978180634_1740704075.8682.gif" width="100%" />

 

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

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

8개월 전

view스킨 상단 php부분에 넣으세요

if(!$is_member) $good_href ='asdfg';

 

하단 자바스크립트에서  $("#good_button, #nogood_button").click(function() {<==이것을 찾아서

다음 코드를 추가 하세요

        if(!g5_is_member)    {alert('로그인 후 이용'); return false;} //<====추가


         excute_good(this.href, $(this), $tx); <==이 코드 바로 위에 추가 합니다

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

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

플라이
8개월 전

소스를 확인해 보니 기본적으로 추천누르면 회원로그인후 로그인 페이지로 이동되도록 구현되어 있습니다.
만약 안된다면 기능적인 부분의 문제가 있는게 아닐까 싶은데 

 

/bbs/view.php 파일에

 

$board['bo_use_good'] 해당 링크에

./good.php 파일로 링크 적용이 되어야 하는데 회원이 아닌경우는 그냥 빈 링크로 적용되어져 있는데

 

if($is_member) 라는 회원 여부를 체크해서 회원이 아닌경우 비회원인 경우 alert('로그인후이용'); 하라는 메세지로 직접 링크를 적용해 처리해 주시면 될듯 싶습니다.

 

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

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

glitter0gim
8개월 전

클라이언트와 서버 모두에서 로그인 상태를 확인하는 이중 검증을 통해,

비회원 사용자가 추천 버튼을 클릭했을 때 "로그인후 이용"이라는 메시지를 팝업.

 

*클라이언트 사이드 검사 (JavaScript)

추천 버튼이 실제로 출력되는 HTML 마크업이 있는 파일을 확인하여 그곳에 아래 코드 추가.

- 그누의 예로, bbs/view.php 또는 해당 스킨 폴더 내의 view.skin.php 파일에서

  추천 버튼이 출력되는 부분에 아래 코드를 삽입.

<!-- 추천 버튼 예시 -->
<button id="recommendBtn" onclick="return checkRecommend();">추천</button>

<script>
function checkRecommend() {
    // 서버에서 전달한 로그인 상태 변수 (PHP로부터 전달)
    var isMember = <?= $is_member ? 'true' : 'false' ?>;
    
    if (!isMember) {
        alert("로그인후 이용");
        return false; // 추천 기능 실행 중단
    }
    // 로그인 상태라면 추천 기능을 계속 진행(예: Ajax 호출 등)
    return true;
}
</script>

- Ajax 요청 예시:

로그인한 상태에서 추천 버튼을 클릭하면, Ajax를 통해 서버에 추천 요청을 전송

// Ajax 예시 (jQuery 사용)
$("#recommendBtn").click(function(e){
    e.preventDefault();
    $.ajax({
        url: "recommend.php",
        method: "POST",
        data: { item_id: 123 },
        dataType: "json",
        success: function(response) {
            if(response.error && response.error == "not_logged_in") {
                alert("로그인후 이용");
            } else {
                // 정상 처리 시 추천수 업데이트 등 추가 작업 수행
            }
        }
    });
});

 

*서버 사이드 검사와 Ajax 처리

그누보드라면, bbs/ajax.mb_recommend.php를 수정한 예시

<?php
include_once("./_common.php");
include_once(G5_LIB_PATH."/register.lib.php");

// 로그인 여부 체크
if (!isset($member['mb_id']) || !$member['mb_id']) {
    header('Content-Type: application/json');
    echo json_encode(array("error" => "not_logged_in"));
    exit;
}

$mb_recommend = isset($_POST["reg_mb_recommend"]) ? trim($_POST["reg_mb_recommend"]) : '';

if ($msg = valid_mb_id($mb_recommend)) {
    // JSON 형식으로 에러 응답을 반환하는 것이 좋습니다.
    header('Content-Type: application/json');
    echo json_encode(array("error" => "추천인의 아이디는 영문자, 숫자, _ 만 입력하세요."));
    exit;
}
if (!($msg = exist_mb_id($mb_recommend))) {
    header('Content-Type: application/json');
    echo json_encode(array("error" => "입력하신 추천인은 존재하지 않는 아이디 입니다."));
    exit;
}

// 여기서 추천 기능에 대한 추가 처리(예: DB 업데이트 등)를 구현합니다.

// 성공 처리 후 JSON 응답 반환
header('Content-Type: application/json');
echo json_encode(array("success" => "추천 완료"));
exit;
?>

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

답변에 대한 댓글 1개

그누초보다
8개월 전
그누보드5 기본인데 비회원이면 아예 안눌리네요

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

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

로그인