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

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

QA

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

답변 2

본문

 

메인에 최근게시물을 불러올 때 제목 말고 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; ?> 최신글 끝 --> 
 

아.... 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까지 올려서 확인했지만 마찬가지였거든요.. ㅜ

안녕하세요, 어제 저 때문에 많이 고생하셨지요?
아침에 확인해보니 정상적으로 조회수가 출력이 되더라고요.
그누보드 탓인지, 서버 탓인지는 모르겠지만 아무래도 최근게시물에 조회수 부르는 부분에서 딜레이랄까, 그런게 생기는 것 같아요. 그러니까 어제는 아무리 애를 써도 조회수가 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) 로 분리하면 됩니다.

 

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

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

없네요... 

 

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