최근게시물 관련 질문입니다.

최근게시물 관련 질문입니다.

QA

최근게시물 관련 질문입니다.

본문

 

메인에 최근게시물을 불러올 때 제목 말고 on / off 이미지로 처리하려 합니다.

즉 견적문의 게시판에 새 글(=관리자가 확인하지 않은 글)이 있을 경우에는 1번 이미지가,
없을 때는 2번 이미지가 출력되게 하려고 합니다.
그리고 관리자가 아닐 경우에는(즉 비회원→회원가입 없는 사이트임) 무조건 2번 이미지가 나와야 하구요.
그런데 기존 최근게시물 소스를 보면 글이 있을 경우 / 있다면 새 글일 경우 / 글이 없을 경우로 나뉘잖아요. 

그래서.... 프로그래머가 아닌 저는 멘붕 상태에요.... 도와주세요 ㅜㅜ​ 

(안 되면 관리자/비회원 구분은 빼도 돼요..)

 

이 질문에 댓글 쓰기 :

답변 2


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
?>
<!-- <?php echo $bo_subject; ?> 최신글 시작 { -->
<div class="lt">
    <strong class="lt_title"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>"><?php echo $bo_subject; ?></a></strong>
    <ul>
    <?php for ($i=0; $i<count($list); $i++) {  ?>
        <li>
            <?php
            //echo $list[$i]['icon_reply']." ";
            echo "<a href=\"".$list[$i]['href']."\">";
            if ($list[$i]['is_notice'])
                echo "<strong>".$list[$i]['subject']."</strong>";
            else
                echo $list[$i]['subject'];
            if ($list[$i]['comment_cnt'])
                echo $list[$i]['comment_cnt'];
            echo "</a>";
            // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
            // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }
            if (isset($list[$i]['icon_new'])) echo " " . $list[$i]['icon_new'];
            if (isset($list[$i]['icon_hot'])) echo " " . $list[$i]['icon_hot'];
            if (isset($list[$i]['icon_file'])) echo " " . $list[$i]['icon_file'];
            if (isset($list[$i]['icon_link'])) echo " " . $list[$i]['icon_link'];
            if (isset($list[$i]['icon_secret'])) echo " " . $list[$i]['icon_secret'];
            echo "<a href=\"".$list[$i]['href']."\">";
            if ($options == 'super') { 
                //최고관리자만 해당.
                if ($list[$i]['wr_hit'] == "1") echo "1번이미지"; //최초등록임.
                else echo "2번이미지"; //조회가 2회이상은 읽은 것이므로 
            }else{
                echo "2번이미지"; //비회원시 
            }
            echo "</a>";
             ?>
        </li>
    <?php }  ?>
    <?php if (count($list) == 0) { //게시물이 없을 때  ?>
    <li>게시물이 없습니다.</li>
    <?php }  ?>
    </ul>
    <div class="lt_more"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>"><span class="sound_only"><?php echo $bo_subject ?></span>더보기</a></div>
</div>
<!-- } <?php echo $bo_subject; ?> 최신글 끝 --> 
 

30~ 37번 줄 보시면 되구요
최신글 불러오는 곳에서
호출 함수를
echo latest("basic", $row['bo_table'], 5, 25, 1, $is_admin);
1과 $is_admin을 더 넣어 주시면 됩니다.

아.... 1이라는게 hit 수지요? 그런데 게시판 목록에서 조회수 2로 나오는데도 정작 최신글 불러올 때는 1로 인식을 하는 듯 해요. 혹시나 해서 조회수 출력시켰는데 계속 1이 나오더라고요.. 그래서 관리자일 때는 늘 1번 이미지가 나오네요. 혹 더 추가해야할 코드가 있는걸까요??


    <?php for ($i=0; $i<count($list); $i++) {
		if($options == 'super'){
            if ($list[$i]['wr_hit']=="1") { 
                echo "<img src='img/main/qk4_ov.png' alt='새 글'>";
				echo $list[$i]['wr_hit']; echo $list[$i]['subject'];
            }else{
                echo "<img src='img/main/qk4.png' alt='헌 글'>";
            }
		}
		else{  echo "<img src='img/main/qk4.png' alt='Customer'>"; }
    }
	if (count($list) == 0) {
     echo "<img src='img/main/qk4.png' title='노 글'>";
     }  ?>


코드는 이렇게 썼구요.

올려주신 소스에는 [wr_hit] => 1 되어 있네요
글을 읽게되면 이 조회수가 증가 됩니다.
테스트로 관리자로 쓰시고 관리자로 읽게되면 조회수가 증가 안될 수 있습니다.본인 글이므로....
일반회원이나 비회원으로 글을 등록하시고 테스트 해보세요.
관리자로 읽었을때 이카운트가 증가 되는지 확인해 보시기 바랍니다.

말씀하신 것처럼 비회원 작성 / 관리자 확인했어요. 각각 다른 브라우저 썼고, 조회수 2로 올라갔지만 여전히 메인에서는 조회수 1로 출력이 됩니다. 그전에도 조회수 3까지 올려서 확인했지만 마찬가지였거든요.. ㅜ

아뇨 그렇진 않아요... ^^; 저도 당최 뭔 조화인가 싶네요..;; 아무튼 소스 문제가 아니라 hit이 제대로 안 나오는게 문제인 모양이니... 열심히 연구해볼게요! 도움 주셔서 감사합니다!

안녕하세요, 어제 저 때문에 많이 고생하셨지요?
아침에 확인해보니 정상적으로 조회수가 출력이 되더라고요.
그누보드 탓인지, 서버 탓인지는 모르겠지만 아무래도 최근게시물에 조회수 부르는 부분에서 딜레이랄까, 그런게 생기는 것 같아요. 그러니까 어제는 아무리 애를 써도 조회수가 1로만 나왔던 것이겠지요.
일단 다른 해결법이 없으니 알려주신 소스대로 적용해서 사용할까 합니다.
혹시나 찜찜해하실까봐 말씀드려요^^ 좋은 하루 되세요 :)

되신다니 다행이네요...
서버에서 캐쉬를 적용하신 거 같습니다. 그럼... 매번 문제가 발생할 수 있는 소지라.. 그누 config.php에 최신글등에 cache 기능 사용여부를 false로 변경하시면 바로 적용되리라 봅니다. 즐거운 하루 되세요.

관리자 인지 아닌지는 바로 구분이 가능합니다.

head.sub.php 제일 하단에 있는 내용이지요.

if ($is_member) { // 회원이라면 로그인 중이라는 메세지를 출력해준다.
    $sr_admin_msg = '';
    if ($is_admin == 'super') $sr_admin_msg = "최고관리자 ";
    else if ($is_admin == 'group') $sr_admin_msg = "그룹관리자 ";
    else if ($is_admin == 'board') $sr_admin_msg = "게시판관리자 ";

    echo '<div id="hd_login_msg">'.$sr_admin_msg.$member['mb_nick'].'님 로그인 중 ';
    echo '<a href="'.G5_BBS_URL.'/logout.php">로그아웃</a></div>';
}

 

회원인지 아닌지만 구분하면 될 문제라 if($is_member) 로 분리하면 됩니다.

 

구체적인 질문입니다. 관리자가 확인했다는 부분은 무엇을 말씀하시는건지요?

답글을 달았을때를 봤다고 할 건지. 내용을 읽었다면 확인이 된건지 질문이 애매하여 답을 드릴수가

없네요... 

 

아, 내용을 확인했을 때를 얘기하는 거에요. 고객 특성상 메인에서 바로 새글 여부를 알려줘야 하거든요. 관리자 여부는 저도 아는데 그걸 어떻게 코드로 정리해야할지 몰라서요..

답변을 작성하시기 전에 로그인 해주세요.
전체 81
QA 내용 검색

회원로그인

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