최신글 불러오기에서요 로그인 한 사람의 자기글만 뜨게 할 수 있나요? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

최신글 불러오기에서요 로그인 한 사람의 자기글만 뜨게 할 수 있나요? 정보

최신글 불러오기에서요 로그인 한 사람의 자기글만 뜨게 할 수 있나요?

본문

안녕하세요.

예를들어
<? echo latest("basic", free, 7, 50); ?>
이런 소스로 해당 게시판 최신글을 끌어오잖아요~

근데 작성된 모든 글이 아니라 로그인 한 사람의 글만 노출이 되게 할 수 있나요?

비로그인이라면 아무것도 안뜨게 되겠구요.

관리자라면 순서대로 다 뜨도록이요.

고수님 조언 부탁 드립니다.
  • 복사

댓글 전체

lib/latest.lib.php 파일에 보면 아래와같은 lastest 함수가 있습니다.
기존의 함수를 똑같이 복사하여 그 아래에 새로운 함수로 lastes2 를 만듭니다.

function latest2($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
    global $g4, $member, $is_admin;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/basic";

    $list = array();

    $sql = " select bo_table, bo_notice, bo_subject, bo_subject_len, bo_use_list_content, bo_new, bo_use_sideview, bo_use_comment, bo_hot, bo_use_search from $g4[board_table] where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

if (!$is_admin)
{
        $sql_search = " and mb_id = '$member[mb_id]' ";
}

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
    //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
    // 위의 코드 보다 속도가 빠름
    $sql = " select wr_id, wr_subject, wr_option, wr_content, wr_comment, wr_parent, wr_datetime, wr_last, wr_homepage, wr_name, wr_reply, wr_link1, wr_link2, ca_name, wr_hit from $tmp_write_table where wr_is_comment = 0 $sql_search order by wr_num limit 0, $rows ";
    //explain($sql);
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++)
        $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
   
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

이거 복사해 추가하신 후 <? echo latest2("basic", free, 7, 50); ?> 이렇게 호출하시면 됩니다.
이렇게 해도 됩니다
<?
$my_id= $is_admin? '':$member[mb_id];
echo latest("basic", free, 7, 50, $my_id);
?>

latest.lib.php 수정
    // 위의 코드 보다 속도가 빠름
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";

수정 후
  if($options) $add_qry="and mb_id='$options'";
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 $add_qry order by wr_num limit 0, $rows ";
비로그인의 경우 출력되지않게 하려면 없는 아이디를 넣어주면 간단하게 됩니다
$my_id= $is_admin? '':$member[mb_id];
if(!$member[mb_id]) $my_id='1';
echo latest("basic", free, 7, 50, $my_id);
균이님 말씀데로 하면 위에서 유바이님이 원하는 "비로그인이라면 아무것도 안뜨게 되겠구요." 이 부분이 처리 안됩니다.
비회원일 때는 아무것도 안나와야 한다고 하셨는데 저렇게 되면 비회원시 $options 에 값이 없기 때문에 관리자가 로그인한것처럼 최신게시물이 출력되게 됩니다.
© SIRSOFT
현재 페이지 제일 처음으로