내가 쓴 게시글 댓글 답글 모든글에 댓글 답글시 반응 > 그누4 스킨

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.

내가 쓴 게시글 댓글 답글 모든글에 댓글 답글시 반응 정보

최신글 내가 쓴 게시글 댓글 답글 모든글에 댓글 답글시 반응

첨부파일

lib.zip (3.8K) 230회 다운로드 2013-02-27 15:46:01

본문

18일 버전의 업그레이드 버전입니다.
내글 이후로 새글이 달리면 무조건 반응하는 내글 반응입니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=141276#c_141476

바보천사님의 스킨을 참조 하였습니다. 내용은 완전히 달라졌습니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=112508

기존과 비교 기능상 달라진점은 :
내가 쓴 게시글 또는 댓글 이나 답변에 달린 답글, 댓글에 대한 반응을 보여주는데
보통 계단식 댓글에 대하여 반응하지만 이 버전은 나란히 올린 댓글에 대하여도 반응합니다.
내글 이후로 새글이 달리면 무조건 반응합니다.
내글 이후에 반응글이 있어야 출력되며 하나의 게시물에 하나의 결과만 출력되는는 방식입니다.

첨부는 utf-8 로 인코딩 됐고 euc-kr 로도 가능합니다.
다만 mysql 버전이 낮으면 수행이 안됩니다.
ex) mysql v4.0 에서 쿼리수행 안됨

설치방은 아래와 같습니다.
주석 꼭 읽어보세요
//interval을 두고 모드 테이블에서 쿼리하는 방법으로 DB 억세스 회수를 줄임
//회원테이블 여분필드 1(시간비교) 2(댓글반응)를 활용함
//★여분필드2 는 기존 varchar --> text로 스키마 변경해야 함. 아래 코드 한번만 적용, utf8, euckr 구분해서 실행요!!
//sql_query("ALTER TABLE  $g4[member_table] CHANGE  mb_2  mb_2 TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");


이건 스킨형태가 아니라 아래 내용 꼭 숙지하시기 바랍니다.

1.
다운받은 파일에서 myreply.lib.php 를 열어서 아래 내용을 수정합니다.

$ins_dir = lib; // g4path 이하의 자신의 환경에 맞게 설치 lib 권장합니다.
이건 설치폴더 명이구요.. lib는 다들 가지고 계시니 lib에 올리면 좋겠네요.
lib/img 도 업로드 해야 합니다.

$rows = 10; //댓글 반응글 리스트 수

$interval = 0 ; //전체 DB에서 반응글을 조회할 주기(분), 0:실시간

$daysago = 90; //댓글 반응글을 뽑을 최근 일수, 10일정도 적은 일수부터 늘려 보시면 좋겠네요~
댓글이 너무 많아 쿼리에 문제가 되는걸 방지하기 위해

<주의!!>
댓글을 멤버테이블에 저장하는 방식이라 멤버테이블 여분필드 mb_1, mb_2를 기존에 사용하고 있는지 확인 하시고 사용하지 않는다면 그대로, 그렇지 않고 중복된다면 다른 여분필드 활용하세요

($interval = 0(실시간) 으로 한 상태에서는 2번과정 생략해도 됩니다.
댓글이 잘 추출되면 아래의 작업 해주시면됩니다. 일단 2번은 건너뛰셔도 됩니다.)
2.
mb_2 여분필드의 스키마를 변경합니다. 기존 varchar -> text 로 변경합니다.
아래는 utf-8 용입니다.
//sql_query("ALTER TABLE  $g4[member_table] CHANGE  mb_2  mb_2 TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
위 주석 해제

3.
head.php 안에 적당한곳에 아래 코드 삽입 lib가 아닐때 lib 부분은 변경해야 합니다.
꼭 head 영역에 넣어야 합니다. 다른곳에 넣을경우 그누환경변수 등 기타 파일들을 include 해야합니다.

<div>
<?
if($member['mb_id'])
include_once("$g4[path]/lib/myreply.lib.php"); // 내글 반응
?>
</div>

4.
댓글이 정상적으로 나온다면
//sql_query("ALTER TABLE <-- 요거 다시 주석해제 스키마 변경 후 다시 주석처리
if 스키마 변경할순 있지만 계속 if로 쿼리하는것 보다 한번만 수작업해심이 좋을듯..

$interval = 0 ; 이부분 1 이상 값으로 변경요.. 실시간으로 할거면 0 으로 유지..  1이상 권장
$daysago = 90; 댓글 뽑을 날짜를 조금씩 늘려서 실행시켜보세요

댓글이 head 영역에 계속 노출되는거라 동시접속자가 많을 경우 실시간으로 하면 좋지는 않을듯 합니다.

참고..
$interval 에 0 이상의 값을 넣으면 결과물을 멤버테이블 여분필드에 입력하고 입력한 시간만큼 여분필드에서 글을 읽어 옵니다. 실시간인 경우 여분필드에 값을 넣지 않습니다.

첨부이미지에 답댓글은 구버전용으로 현재 버전은 댓글과 +답글과 카운트로 출력됩니다.
내글이 마지막 댓글인경우 출력에서 사라집니다. 이건 정상입니다. 이후 새글이 올라오면 다시 반응글에 출력됩니다.
추천
8

댓글 전체

고치면 가능합니다
board_new 에서 내가 쓴글 아닌 경우에서 where 절 아래 bo_table=' ' 에 원하는 테이블 주시면됩니다 여러개일때 괄호안에 or로 여러개넣어도 되구요
head.php 파일에 인클루드 소스를 불렀을때 무한로딩이 걸리면 mysql 버전이 낮은건가요? UTF-8입니다 꼭 쓰고싶은 스킨인데 못쓰게됐네요 ㅠㅠ
아니요.. 버전이 낮으면 mysql 에러가 날거에요
무한로딩이라면.. 감은 안잡히지만.. 혹시 변수의 충돌이라든지 뭐.. 그런류 아닐까 싶은데요.. 테스트용으로 index2.php 와 head2.php를 따로 만들어 그누보드 디폴트 파일 index.php와 head.php를 각각2에 복사해서 넣고 heed2.php를 불러와 테스트해보시면 어떨까요?
내 글에 대해서만 반응을 보려면 어떻게 하나요?  바보천사님 스킨으로 하니까 구분자 때문에 그런지 좀 뭔가 문제가 있는데 지러유님 것은 제대로 잘 되는 대신 내 글 외에 다른 댓글이 달려도 반응하니까 그 부분은 사용 안했으면 하는데 어디를 고쳐야 할까요?
이버전은 스킴이 완전히 달라 수정이 안될것 같구요..
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=141276
기존에 올린 스킨을 쓰시면 될듯 합니다.. 감사합니다~ ^^
디비가 큰가봐요.. 트래픽문제라면 실시간 체크부분
$interval = 0 ; //전체 DB에서 반응글을 조회할 주기(분), 0: <= 여기 값을 바꿀수 있습니다.
새창으로 띄우는건 첨부된 파일을 별도의 페이지로 하나만드셔서 onclick 으로 구현하시면 되는데 이건 직접하셔야 할듯 합니다.
한가지 궁금한건.. 트래픽이 많다는 말씀이 웹사이트 일일 트래픽이 증가했다는 말씀인지 아니면 로딩될때 느려지는지건지 궁금합니다.. 아무도 피드백을 안해주셔서요.. 궁금하네요 ^^
지러유님~ 빠른 답변 감사드려요. ^^; 제가 낮에는 컴퓨터를 못하는 통에 답변이 늦었습니다.
디비가 큰건 아녜요. 이제 막 운영하는 커뮤니티에요. 제가 피드백 없이 결과만 말씀드렸네요.
결과적으로 트래픽이 증가하는거 같아요. 로딩 시 느려지는건 아니구요.

제 사이트에 맞게 디자인 작업을 하면서 리로딩을 많이 해서 그런지 트래픽이 빨리 소모되더라구요. 아마 인터벌을 실시간으로 해 놓고 게시물을 10개로 놓고 작업하면서 리로딩을 많이
했었는데 그래서 그런지 확실치 않아서요.

현재는 기능을 오픈해 놨는데 특별한 트래픽 소모가 심하진 않은거 같아요. 조금 지켜보는 중입니다. 회원등급별로 인터벌 시간과 게시물, 추출기간을 차등해 놨어요.

궁금한 것이 정해놓은 페이지가 리로딩 되어도 인터벌 대로만 디비를 조회하나요?
아니면 페이지 리로딩 시에는 디비를 다시 로딩하나요?

그리고 별도의 페이지를 만들어서 인클루드 시키면 되는거죠?

초보라 모르는게 많네요. ^^;; 덕분에 좋은 기능으로 반응이 좋아요.
먼저.. 잘 사용하신다니 감사드립니다. ^^
궁금한점에 대한 답변은
해당 페이지가 호출되는 시점에 interval 값을 계산하여 초과 -> 전체디비조회, 미만->멤버디비에 저장된 값 호출 입니다.
결국 이러나 저러나 디비에서 호출하는건 맞습니다.
단, 초과시 여러 테이블에서 조회하고 미만시 한개의 테이블에서 조회하는거죠
이건 디비부하와 상관있고 다운로드 트래픽과는 무관합니다.
onclick 으로 페이지를 호출하면 그만큼 노출빈도가 낮아지며 전체디비조회는 interval에 의해 동작합니다. 이렇게 동작된다면 interval을 0(실시간)으로 하는게 좋을듯 합니다.

트래픽에 대한 제 생각은 아무리 디비에 저장된 데이터가 많다고 할지라도 일일트래픽에 미치는 영향은 미미할걸로 예상됩니다. 내려받는 데이터가 제한적이기 때문이죠..
한번 모니터링 해보시구요.. 혹시 문제점 있으면 알려주세요~ 감사합니다 ^^
현재까지 테스트할 때 발생했던 트래픽 과소비?현상은 없습니다. 아마 제 어떤 부주의 때문이었나봅니다. 지러유님 덕분에 좋은 기능을 사용할 수 있어서 심히 감사한 마음 전합니다. ^^
오늘도 좋은 하루 되시고 늘 감사하는 마음 잊지 않겠습니다. ^^
Script line: 1 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sql_query("ALTER TABLE  $g4[member_table] CHANGE  mb_2  mb_2 TEXT CHARACTER SET ' at line 1


쿼리 적용할떄 이렇게 오류가 뜨는데 어떻게해야하나요?
혹시 phpmyadmin 사용 가능하시면 멤머 테이블의 구조 들어가셔서 여분필드 mb_2 의
종류 -> TEXT, 길이 -> 공백, 기본값 -> NONE 으로 바꾸시면 될것 같습니다. 그리고 위 쿼리를 주석처리 해주세요. 한번만 바꾸면 되는거라서요..
종류 -> TEXT, 길이 -> 공백, 기본값 -> NONE  여기서부터 이해가 안갑니다 ㅠㅠ
쿼리를 적용시키지 않으면 댓글을 입력해도 반응이 없다고 나오네요..
혹시 언어셋이 어떻게 되나요?

utf-8 일 경우 아래 적용
//sql_query("ALTER TABLE  $g4[member_table] CHANGE  mb_2  mb_2 TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
euc-kr 일 경우 아래 적용
//sql_query("ALTER TABLE  $g4[member_table] CHANGE  mb_2  mb_2 TEXT CHARACTER SET euckr COLLATE euckr_korean_ci NOT NULL");

그런데 아마 위 작업을 안하셔도 댓글 몇개는 보여야 맞을것 같은데 하나도 안나온다면 위 문제가 아닐수도 있을것 같아요..
감사히 사용하고 있습니다. 마지막 글이 내 글일 때 사라진다고 하셨는데요 혹시 일단 클릭해서 들어가면 내 글을 마지막으로쓰지 않아도 사라지게는 할 수 없을까요? 너무 초보라서 아는게 없네요^^;
읽은 글은 사라지게 한다는 말씀이죠.. 가능은 하겠지만 많이 고쳐야 해요.. 읽은내용에 대한 정보를 기록해 줘야 하니깐.. 담에 수정하게 된다면 고려해 보겠습니다  감사합니다 ^^
지러유님 스킨 감사드립니다 사용하다보니 한가지 아이디어가 생각나서 댓글남깁니다.

출력되는 리스트를 더 볼 수 있게 + 공간 활용을 위해 스크롤을 적용 하는게 어떨까요?
디자인도 신경을 써야 하는데 솔직히 디자인은 무시하고 작업한거라서요.. 유용한 소스가 되지 않을까 싶어서 올려봤습니다. 스크롤 다는건 어렵지 않은거라 다음에 고려해 보도록 하겠습니다. 좋은 의견 감사드립니다 ^^
전체 5,853 |RSS
그누4 스킨 내용 검색

회원로그인

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