최신글스킨 출력시 wr_1필드값 으로 정렬하는 방법.. > 그누4 질문답변

그누4 질문답변

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

최신글스킨 출력시 wr_1필드값 으로 정렬하는 방법.. 정보

최신글스킨 출력시 wr_1필드값 으로 정렬하는 방법..

본문

현재 한 게시물의 댓글입력란을 왼쪽, 오른쪽으로 나누어서
왼쪽에 입력했을땐 wr_1 필드값에 1이,
오른쪽에 입력했을때는 wr_1 필드값에 2가 입력되도록 하였습니다.

최신글스킨 출력시 /lib/latest.lib.php의 함수를 function latest_left, function latest_right 로 나누어
 function latest_left에는 왼쪽댓글란에 댓글을 최근에 단 게시물 순서로 출력하고,
 function latest_right에는 오른쪽댓글란에 댓글을 최근에 단 게시물 순서로 출력하도록 하고자합니다.

wr_is_comment가 0이면 원글, 1이면 댓글로 알고있습니다.
wr_last는 최근에 댓글이 달린 시간이 기록되는것으로 알고있습니다.

/lib/latest.lib.php의 함수부분에 sql 구문을 어떻게 써야 할지 고민입니다..

function latest_left(...
    $sql = " select * from $tmp_write_table where wr_is_comment = 1 and wr_1 = 1 order by wr_last desc limit 0, $rows ";

function latest_right(...
    $sql = " select * from $tmp_write_table where wr_is_comment = 1 and wr_1 = 2 order by wr_last desc limit 0, $rows ";

이렇게 써도 될지.. sql쪽은 너무 약해서 조언을 듣고자 올려봅니다.

정리하면,

최근글스킨을 '왼편', '오른편' 두군대로 나눕니다.
게시물의 하단 '왼편'에 댓글을 달았을때 '왼편 최근글스킨'에만 최근글이 뜨고
'오른편'에 댓글을 달면 '오른편 최근글스킨'에만 최근글이 뜨도록 sql문을 수정하고 싶습니다.
  • 복사

댓글 전체

wr_parent도 추가해주셔야해요~
wr_parent가 없으면.... 모~~든 글에대한 코멘트가 다 달리겠지요^^

select * from $tmp_write_table where wr_parent = '원글아이디' and wr_is_comment = 1 and wr_1 = 1 order by wr_last desc limit 0, $rows

요로케..?^^
kalcapt님 답변 정말 감사드립니다..
wr_parent는 댓글단 게시원본글의 id (wr_id?)로 알고 있습니다
wr_parent = '원글아이디' 에서 '원글아이디' 이걸 어떻게 써야하는지 모르겠습니다..
그냥 '원글아이디'로 쓰는건 아닌것같아서 여쭤봅니다
이제보니 /lib/latest.lib.php을 수정하시는거군요...
/lib/latest.lib.php이 파일은 최근게시물 출력용이고... 코멘트 출력용이 아니라서요..^^;

코멘트를 출력하시뎌면 skin/board/스킨폴더명/view.skin.php을 수정해주셔야해요~
거기에서... sql문을 직접 쓰실게 아니라...
이미 sql은 쿼리가 날려져서 불려오기때문에... 해당하는 값이 홀수냐 짝수냐에 따라 좌 우로 나눠주기만 하시면 됩니다~
아 그러시군요^^
그럼 다른 최근게시물은 이용하지 않으시는건가요...?
lib자체를 수정해버리면 다른 최근게시물 스킨을(홈페의 다른부분에..)이용할때도 영향을 받기때문에..
스킨 단에서의 수정을 추천드리는 바입니다..^^
네.. 그래서 /lib/latest.lib.php 안에 function latest 함수는 기본그대로,
function latest_left, function latest_right 함수를 따로 만들어서
최신글 출력할때
echo latest_left("simple_basic4", "guest_board", 10, 40")
echo latest_right("simple_basic4", "guest_board", 10, 40")
이런식으로 출력하고 있습니다
이 상황에서 sql문을 어떻게 써야할지 고민이에요 ㅡㅜ.. 도와주셔요
질문하는 방법이 영...어디서 저렇게 출력하려는 것인지 차근차근 질문을 해야..

뷰페이지 하단에서 둘로 나누어 댓글을 출력하려고 하는 것인가요?
그렇다면 아래와 같습니다

호출
latest_left("simple_basic4", "guest_board", 10, 40", $wr_id)

함수
function latest_left(~~~~, $wr_id)

쿼리
select * from $tmp_write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and wr_1 = 1 order by wr_last desc limit 0, $rows
균이님 죄송합니다.. 질문을 명확하게 한다고 했는데 처음부터 제가 잘못 질문을 했네요..
1. index.html에서 하나의 게시판에 대해 최신글스킨을 사용하여 최신게시글을 뽑아옵니다.(일반적인 최신글출력입니다..코멘트를 가져오는것이 아닙니다)
  최신글스킨은 index.html 내부.. 왼편, 오른편에 위치합니다 ( 그림 http://goo.gl/G5xkFy 참조)
  즉, 하나의 게시판에게 최신글스킨 두개를 사용합니다. (왼편,오른편의 출력함수명을 다르게 함. function latest_left, function latest_right)
2. 하나의 게시판 안에는 두개의 댓글 공간이 있습니다 ( 그림 http://goo.gl/h58jpc 참조)
  왼쪽댓글공간에 댓글을 달면 index.html의 왼편 최신글스킨에 해당게시물이 최상단으로 올라오고, 오른편 최신글스킨에는 변화가 없습니다.
  왼편 최신글스킨 최상단에 올라와진 그 게시물에는 댓글갯수가 1+ 됩니다. "게시물제목 (1)" 이렇게..
  반대로 오른편댓글공간에 댓글을 달면 index.html 오른편 최신글스킨에 해당게시물이 최상단으로 올라옵니다. 그리고 댓글갯수가 +1 되겠지요..
(order by wr_last desc 로, 댓글을 가장 마지막에 단 게시물이 상단으로 위치하도록 함)

예전에 올라간 게시물에도 댓글을 달면 최근글스킨을 통해 최상단으로 이동시켜주어서, 한번 더 그 게시물을 확인할수 있도록 함입니다..
댓글이 하나만 있을때는 lib/lastest.lib.php에서 "select * from $tmp_write_table where wr_is_comment = 0 and wr_comment != 0 order by wr_last desc limit 0, $rows" 이것으로 해결이 가능했습니다만
한 게시물에 댓글공간을 두개로 두니 위 sql로는 불가능해서 고민끝에 질문 해 보았습니다.

현재는 왼편공간에 댓글을 달때는 wr_1필드에 1이 입력되도록, 오른편공간에 댓글달때는 wr_1필드에 2가 입력되도록 하여
sql문을 통해 where로 어떻게 해보려고 하다가 막힌 상태입니다.

제가 자세히 설명한다고 했는데 잘 되었는지 모르겠습니다..
© SIRSOFT
현재 페이지 제일 처음으로