인기글 게시판 관련 질문입니다(추출까진 성공)

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
인기글 게시판 관련 질문입니다(추출까진 성공)

QA

인기글 게시판 관련 질문입니다(추출까진 성공)

답변 1

본문

<?php

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

 

// 선택옵션으로 인해 셀합치기가 가변적으로 변함

$colspan = 2;

 

if ($is_checkbox) $colspan++;

 

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨

add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);

 

// 모든 게시판의 추천/비추천 수가 1개 이상인 게시물 가져오기

$popular_posts = array();

 

// 게시판 목록 가져오기

$bo_table_list = sql_query("SELECT bo_table FROM {$g5['board_table']}");

 

while ($bo_table_row = sql_fetch_array($bo_table_list)) {

    $bo_table = $bo_table_row['bo_table'];

    $sql = "SELECT *, '{$bo_table}' AS bo_table

            FROM {$g5['write_prefix']}{$bo_table}

            WHERE (wr_good > 0 OR wr_nogood > 0)

            AND wr_is_comment = 0";

    $result = sql_query($sql);

   

    while ($row = sql_fetch_array($result)) {

        $popular_posts[] = $row;

    }

}

 

// 추천/비추천 수가 많은 순서대로 정렬

usort($popular_posts, function($a, $b) {

    return max($b['wr_good'], $b['wr_nogood']) - max($a['wr_good'], $a['wr_nogood']);

});

?>

 

<form name="fboardlist" id="fboardlist" action="<?php echo G5_BBS_URL; ?>/board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">

<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">

<input type="hidden" name="sfl" value="<?php echo $sfl ?>">

<input type="hidden" name="stx" value="<?php echo $stx ?>">

<input type="hidden" name="spt" value="<?php echo $spt ?>">

<input type="hidden" name="sst" value="<?php echo $sst ?>">

<input type="hidden" name="sod" value="<?php echo $sod ?>">

<input type="hidden" name="page" value="<?php echo $page ?>">

<input type="hidden" name="sw" value="">

 

<?php if ($rss_href || $write_href) { ?>

<ul class="<?php echo isset($view) ? 'view_is_list btn_top' : 'btn_top top btn_bo_user';?>">

    <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>

    <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b03 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>

    <?php if ($is_admin == 'super' || $is_auth) {  ?>

    <li>

        <button type="button" class="btn_more_opt btn_b03 btn is_list_btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>

        <?php if ($is_checkbox) { ?>    

        <ul class="more_opt is_list_btn">

            <li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li>

            <li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li>

            <li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li>

        </ul>

        <?php } ?>

    </li>

    <?php } ?>

    <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="fix_btn write_btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>

</ul>

<?php } ?>

<!-- 게시판 목록 시작 -->

<div id="bo_list">

 

    <?php if ($is_category) { ?>

    <nav id="bo_cate">

        <h2><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']) ?> 카테고리</h2>

        <ul id="bo_cate_ul">

            <?php echo $category_option ?>

        </ul>

    </nav>

    <?php } ?>

 

    <div class="list_01">

        <?php if ($is_checkbox) { ?>

        <div class="all_chk chk_box">

            <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">

            <label for="chkall">

                <span></span>

                <b class="sound_only">현재 페이지 게시물 </b> 전체선택

            </label>

        </div>

        <?php } ?>

 

        <ul>

            <?php foreach ($popular_posts as $post) { ?>

            <li class="<?php if ($post['is_notice']) echo "bo_notice"; ?>">

                <?php if ($is_checkbox) { ?>

                <div class="bo_chk chk_box">

                    <input type="checkbox" name="chk_wr_id[]" value="<?php echo $post['wr_id'] ?>" id="chk_wr_id_<?php echo $post['wr_id'] ?>" class="selec_chk">

                    <label for="chk_wr_id_<?php echo $post['wr_id'] ?>">

                        <span></span>

                        <b class="sound_only"><?php echo $post['wr_subject'] ?></b>

                    </label>    

                </div>

                <?php } ?>

 

                <div class="bo_cnt">

                    <?php if ($post['is_notice'] || ($is_category && $post['ca_name'])) { ?>

                    <div class="bo_cate_ico">

                        <?php if ($post['is_notice']) { ?><strong class="notice_icon">공지</strong><?php } ?>

                        <?php if ($is_category && $post['ca_name']) { ?>      

                        <a href="<?php echo $post['ca_name_href'] ?>" class="bo_cate_link"><?php echo $post['ca_name']; ?></a>

                        <?php } ?>

                    </div>

                    <?php } ?>

 

                    <?php

                    // 썸네일 표시

                    $thumb = get_list_thumbnail($post['bo_table'], $post['wr_id'], 50, 50);

                    if ($thumb['src']) {

                        $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" class="bo_thumbnail">';

                    } else {

                        $img_content = '';

                    }

                    ?>

                   

                    <a href="<?php echo get_pretty_url($post['bo_table'], $post['wr_id']); ?>" class="bo_subject">

                        <?php echo $img_content; ?>

                        <?php echo $post['icon_reply']; ?>

                        <?php if (isset($post['icon_secret'])) echo $post['icon_secret']; ?>

                        <?php echo $post['wr_subject'] ?>

                        <?php

                        if ($post['icon_new']) echo "<span class=\"new_icon\">N<span class=\"sound_only\">새글</span></span>";

                        if (isset($post['icon_hot'])) echo $post['icon_hot'];

                        if (isset($post['icon_file'])) echo '<i class="fa fa-image" aria-hidden="true"></i>';

                        if (isset($post['icon_link'])) echo $post['icon_link'];

                        // 유튜브 링크 아이콘 추가

                        $youtube_icon_added = false;

 

                        if (!empty($post['wr_1']) && (strpos($post['wr_1'], 'youtube.com') !== false || strpos($post['wr_1'], 'youtu.be') !== false)) {

                            echo '<i class="fa fa-video-camera" aria-hidden="true"></i>';

                            $youtube_icon_added = true;

                        }

 

                        if (!empty($post['wr_2']) && (strpos($post['wr_2'], 'youtube.com') !== false || strpos($post['wr_2'], 'youtu.be') !== false) && !$youtube_icon_added) {

                            echo '<i class="fa fa-video-camera" aria-hidden="true"></i>';

                        }

                        ?>

 

                       

                        <?php if ($post['wr_comment']) { ?>

                        <span class="bo_cmt" style="vertical-align: middle; margin-left: 5px;">

                            <span class="sound_only">댓글</span>

                            <?php echo $post['wr_comment']; ?>

                            <span class="sound_only">개</span>

                        </span>

                        <?php } ?>

                    </a>

                </div>

                <div class="bo_info">

                    <span class="sound_only">작성자</span><?php echo $post['wr_name'] ?>

                    <div class="bo_info_right" style="float: right; font-size: 0.8em;">

                    <span class="bo_date"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo date('m-d', strtotime($post['wr_datetime'])) ?></span>

                    <span class="bo_view"><i class="fa fa-eye" aria-hidden="true"></i> <?php echo number_format($post['wr_hit']) ?><span class="sound_only">회</span></span>

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

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

                    </div>

                </div>

            </li>

            <?php } ?>

            <?php if (count($popular_posts) == 0) { echo '<li class="empty_table">게시물이 없습니다.</li>'; } ?>

        </ul>

    </div>

</div>

 

</form>

 

<?php if($is_checkbox) { ?>

<noscript>

<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>

</noscript>

<?php } ?>

 

<!-- 페이지 -->

<?php echo $write_pages; ?>

 

<div id="bo_list_total">

    <span>전체 <?php echo number_format($total_count) ?>건</span>

    <?php echo $page ?> 페이지

</div>

 

<fieldset id="bo_sch">

    <legend>게시물 검색</legend>

    <form name="fsearch" method="get">

    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">

    <input type="hidden" name="sca" value="<?php echo $sca ?>">

    <input type="hidden" name="sop" value="and">

    <label for="sfl" class="sound_only">검색대상</label>

    <select name="sfl" id="sfl">

        <?php echo get_board_sfl_select_options($sfl); ?>

    </select>

    <input name="stx" value="<?php echo stripslashes($stx) ?>" placeholder="검색어를 입력하세요" required id="stx" class="sch_input" size="15" maxlength="20">

    <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i> <span class="sound_only">검색</span></button>

    </form>

</fieldset>

 

<?php if ($is_checkbox) { ?>

<script>

function all_checked(sw) {

    var f = document.fboardlist;

 

    for (var i=0; i<f.length; i++) {

        if (f.elements[i].name == "chk_wr_id[]")

            f.elements[i].checked = sw;

    }

}

 

function fboardlist_submit(f) {

    var chk_count = 0;

 

    for (var i=0; i<f.length; i++) {

        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)

            chk_count++;

    }

 

    if (!chk_count) {

        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");

        return false;

    }

 

    if(document.pressed == "선택복사") {

        select_copy("copy");

        return;

    }

 

    if(document.pressed == "선택이동") {

        select_copy("move");

        return;

    }

 

    if(document.pressed == "선택삭제") {

        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))

            return false;

 

        f.removeAttribute("target");

        f.action = g5_bbs_url+"/board_list_update.php";

    }

 

    return true;

}

 

// 선택한 게시물 복사 및 이동

function select_copy(sw) {

    var f = document.fboardlist;

 

    if (sw == 'copy')

        str = "복사";

    else

        str = "이동";

 

    var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");

 

    f.sw.value = sw;

    f.target = "move";

    f.action = g5_bbs_url+"/move.php";

    f.submit();

}

 

// 게시판 리스트 관리자 옵션

jQuery(function($){

    $(".btn_more_opt.is_list_btn").on("click", function(e) {

        e.stopPropagation();

        $(".more_opt.is_list_btn").toggle();

    });

    $(document).on("click", function (e) {

        if(!$(e.target).closest('.is_list_btn').length) {

            $(".more_opt.is_list_btn").hide();

        }

    });

});

</script>

<?php } ?>

<!-- 게시판 목록 끝 -->

 

보시는 코드처럼 인기글을 추출하는 것까지는 성공했습니다. 근데 한 가지 문제가 있습니다. 인기글 게시판에서 추출된 게시물들을 인식을 못 합니다(?) 무슨 뜻이냐면 메인 페이지에서 추출된 게시물들이 보이지도 않고(다른 게시판의 게시물들은 메인페이지에서도 게시물들이 보입니다), 1페이지당 10개의 게시물로 설정해놨는데 게시물로 인식을 못 해서 추출된 게시물이 10개가 넘어가도 페이지 전환이 안됩니다.. 혹시 어느 부분을 수정해야하는지 알 수 있을까요ㅠ

이 질문에 댓글 쓰기 :

답변 1

인기글을 추출하는 것까지는 성공했습니다<==나오지 않는데 추출 성공한 것은 어떻게 아는가요?

순서대로 정렬 코드 다음에 넣어서 추출한 내용이 나오는지 보세요 -- 나올 리가 없겠지만....

print_r($popular_posts);

 

메인 페이지에서 추출된 게시물들이 보이지도 않고 <== 메인에서 include를 잘못 했거나(경로 잘못 지정)

index.php가 여러개 있다보니 index.php 를 잘못 선택했거나...

 

 

아 게시판에 들어가면 추출한 게시물들이 보입니다.. 다만 관리자페이지에서 10게시물당 1페이지로 설정을 해놨는데 10개가 넘어가도 페이지가 안 넘어가도 해당 페이지에도 ‘전체0건 1페이지’라고 뜹니다. 메인페이지(인덱스? 처음 홈페이지 들어갈때 나오는 페이지)에도 다른 게시판 게시물들은 보이는데 인기게시판의 추출된 게시물은 보이지 않구요..ㅠ

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