(스크랩 목록 작업을 구상하고 있었는데 일단은) 추천한 글/댓글 목록 작업부터 해봐야겠다는 생각이 들었습니다.

일단 기초부터 해보고 싶은 심산이었을까요ㅎㅎ

 

* 구조는 대강 이렇습니다.

- 모듈 설정에 따라 0. 사용 안 함, 1. 추천한 글만 보기, 2. 추천한 댓글만 보기, 3. 추천한 글/댓글 모두 보기 등이 있구요.

00.png

- 설정값에 따라 회원메뉴의 탭 이름과 목록이 각각 다른 방식으로 디스플레이됩니다.

01.png

 

 

* 다만, 한 가지 난관이 있었습니다. 작업 전 예상과 달리 '글과 댓글을 하나의 목록으로 통합'시키기가 쉽지 않더라는 거였어요;;;

- 아무리 해봐도 쿼리.xml 파일로는 구현이 안 되는 것 같아서 아래와 같은 커스텀 쿼리를 돌렸습니다.

$args = new stdClass;
$args->member_srl = $this->user->member_srl;

// 중략

$oDB = DB::getInstance();
$query = '
(SELECT document_voted_log.document_srl, null as comment_srl, document_voted_log.member_srl, document_voted_log.ipaddress, document_voted_log.regdate as voted_date, document_voted_log.point
FROM document_voted_log LEFT JOIN comment_voted_log ON document_voted_log.member_srl = comment_voted_log.member_srl
WHERE document_voted_log.member_srl = ?)
UNION
(SELECT null as document_srl, comment_voted_log.comment_srl, comment_voted_log.member_srl, comment_voted_log.ipaddress, comment_voted_log.regdate as voted_date, comment_voted_log.point
FROM document_voted_log RIGHT JOIN comment_voted_log ON document_voted_log.member_srl = comment_voted_log.member_srl
WHERE comment_voted_log.member_srl = ?)
ORDER BY voted_date ASC LIMIT 20
';
$stmt = $oDB->query($query, [$args->member_srl, $args->member_srl]);
$result = $stmt->fetchAll();

- 한참을 헤맸는데, 라이믹스의 xml로 UNION이 구현되지 않는 거 맞겠죠?

- 암튼 위와 같은 방식으로 목록을 만들었습니다. 그리고 document_srl 및 comment_srl에 따라 각각 문서 객체와 댓글 객체를 불러오고, $no값 재연을 위해 $key값 재배열하고, ... 이렇게 힘든데 스크랩 목록 작업까지 할 수 있으려나 싶습니다ㅜㅜ

 

 

* 이제 남은 작업은...

- 검색 기능과 페이지네비게이션 작업을 해야 합니다. 이 또한 까마득한 작업이네요ㅜㅜ 저 복잡한 코드 안에다 또 복잡한 코드를 집어넣어야 하다뇨;;; (검색 기능은 일단 보류를 해놔야겠습니다ㅎㅎ)

- 그리고 '글/댓글 모두 보기'일 경우, 버튼을 만들어서 파라미터를 전달하고 글 또는 댓글만 따로 목록화하는 것도 해야겠습니다.

- 결론 : 뭔가 스스로 일을 키운 느낌입니다;;;;

 

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • Lv12
    제로보드시절에는 다 작동되던 기능들 이였던 것(?) 같은 느낌 적인 느낌이네요.
    쉬엄 쉬엄 작업하셔요 ~
  • Lv12 Lv19
    이번주는 다른 할 일도 있고 해서 코딩은 후순위로 하려 했는데 톰캣님 활약을 보고 갑자기 추진력이 생기더라구요ㅋㅋ
  • Lv19 Lv12

    제 활약은 아무것도 없습니다 윤삼님 자로 클릭해서 다운로드 한 것뿐!!

    사실 저는 최근에 다리가 골절 돼서 한동안 못 움직이게 되었었거든요 그래서 강제로 사이트를 돌보기 시작했어요.
    지금은 걸어다닐 수 있는 수준까지 회복 했지만 ㅎㅎㅎ 액티비티한 스포츠를 무지 사랑하는 사람이였는데 이제 외부 활동도 귀찮아졌네요.

     

    주말에 놀시간 아껴서 홈페이지 css 돌보자 마인드가 되어버렸습니다

  • Lv12 Lv19
    아이고, 많이 불편하셨겠어요.
    톰캣님이야말로 재활차 코딩을 쉬엄쉬엄하셔야겠어요ㅜㅜ
  • Lv3
    와 추진력이 대단하셔요. 얼마전 관련 다른 게시글에 댓글 단 것 같은데 벌써 구현중이시네요. 수고많으십니다.
  • Lv3 Lv19
    실패할 수도 있습니다ㅎㅎㅎ
  • Lv36

    추천한 글이나 댓글이 많으면 쿼리가... 음... 무척 오래 걸릴 것 같은 느낌적인 느낌입니다. 이 자료 때문에 서버 성능 진단, 튜닝 의뢰가 종종 들어오겠군요.^^

    아무튼 이런 기능은 원래 없던 것이니 서드파티 모듈로 딱이고요, 반면에 스크랩은 코어에 이미 반쪽이 있으니 나머지 절반도 코어에서 책임지고 제공해야 할 부분인 것 같습니다.

  • Lv36 Lv19
    역시 글과 댓글을 합친 게 역시 무리수였으려나요?
    첫 화면은 그냥 현황판 정도만 보여주고, 그 안에서 url 파라미터값으로 추천 글 보기, 추천 댓글 보기를 하는 것이 어떨까 하는 생각도 듭니다.

    스크랩 쪽은 코어에서 해주시는 건가요? 오독이 아니길 ㄷㄷㄷㄷ
  • Lv36 Lv12

    태그도 관리가없던데 혹시나! 기대를해봅니다(욕심)

    혹시이니 개의치 마셔요ㅎㅎ

  • Lv36 Lv19

    이 말씀이셨을까요?
    저 커스텀 쿼리에서 얻은 목록에서 (전체를 대상으로 하지 않고) list_count와 page를 기준으로 디스플레이되는 항목들만 슬라이스해서 documentItem과 commentItem을 적용했더니 한결 빠릿빠릿해진 느낌이에요.

  • Lv6
    윤삼님은 하실 수 있습니다.
    언제나 응원하는 1호팬 화이팅~
  • Lv6 Lv19
    ㅎㅎ 안 그래도 일단락시키고 방금 공개자료실에 올렸어요~
    파이팅!!
  • Lv15
    역시 윤삼님은 뚝딱뚝딱 해내시는군요 (__)/;
  • Lv15 Lv19
    뚝딱이라 하기에 이 모듈은 꽤 시행착오가 있었어요.
    하지만 그 덕에 소소하게나마 레벨업한 것 같습니다ㅋㅋ