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

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

QA

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

본문

<?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페이지’라고 뜹니다. 메인페이지(인덱스? 처음 홈페이지 들어갈때 나오는 페이지)에도 다른 게시판 게시물들은 보이는데 인기게시판의 추출된 게시물은 보이지 않구요..ㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 3

회원로그인

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