사용자:Senouis/SectionRatings: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
(초안 생성)
편집 요약 없음
1번째 줄: 1번째 줄:
* [[../|메인 사용자 문서로]]
* [[../|메인 사용자 문서로]]
* [[리버티게임:청사진|청사진 문서: 2단계의 '인기 게임 순위 시스템 구현'에 해당]]
게임별 토론 문서의 게임 평가용 문단 내용을 바탕으로 SQL 쿼리를 사용해 이 게임의 평점이 리버티게임 전체에서 상위 몇 퍼센트인지 알려주는 SectionRatings(가칭)의 설계에 관한 문서입니다.


== 요구 사항 ==
== 요구 사항 ==
15번째 줄: 17번째 줄:
*** 다만 5단계의 하위 평가 문단은 문단 제목 문구가 전부 같은 것으로 추정되므로, 이에 따라 키워드를 뽑아 파싱하는 것은 가능
*** 다만 5단계의 하위 평가 문단은 문단 제목 문구가 전부 같은 것으로 추정되므로, 이에 따라 키워드를 뽑아 파싱하는 것은 가능
* 클라이언트 측에서 토론 문서를 보았을 때 평론 틀이 풀기 처리된 토론 문서의 HTML element 계층 구조는 같은 level을 가지고 있어 클라이언트 측 파싱은 매우 복잡하거나 불가능할 가능성이 큼(h2, h3, ol 태그가 전부 같은 부모를 가짐)
* 클라이언트 측에서 토론 문서를 보았을 때 평론 틀이 풀기 처리된 토론 문서의 HTML element 계층 구조는 같은 level을 가지고 있어 클라이언트 측 파싱은 매우 복잡하거나 불가능할 가능성이 큼(h2, h3, ol 태그가 전부 같은 부모를 가짐)
* 자체 개발에 실패할 가능성이 크므로 [[mw:Extension:RatePage|리버티책에서 사용 중인 RatePage 확장 기능]]을 사용하는 방법이 존재
* 자체 개발이 좋으나 PHP 확장 기능 개발의 어려움으로 인해 실패할 가능성이 크므로 두 가지 방법을 고려<s>새삼 조사 확장 기능을 개발한 *devunt님이 대단해지는 순간</s>
** 다만 이럴 경우 기존 평가를 반영하지 못함
=== 방법 1: 자체적으로 바닥에서부터 개발 ===
** 혹은 이 RatePage에 기존 평가 문단을 파싱하여 ratepage_vote 데이터베이스 테이블 편집으로 점수를 초기화하는 업데이트 스크립트 파일(단일 php 파일)를 추가하는 방법도 가능
* 자체적으로 SQL 파일을 만들어 libertygame.sectionratings 데이터베이스 테이블을 생성
*** 그런 경우 기존 평가는 글 숨김 틀을 앞 뒤로 추가하여 숨김 처리하고, SectionRatings는 RatePage에 의존하여 ratepage_vote의 값을 정렬하여 SQL 구문으로 불러와 특정 태그에 붙이는  
* 서버에서 php update.php를 돌리면 SQL 파일의 내용대로 쿼리 전송
=== 방법: [[mw:Extension:RatePage|RatePage 확장 기능]]에 의존 ===
[[mw:Extension:RatePage|리버티책에서 사용 중인 RatePage 확장 기능]]을 사용하는 방법이 존재: MultimediaViewer -> RatePage -> SectionRatings(가칭) 순으로 의존성 발생
* extension.json의 "requires"에 <nowiki>["extensions"]["RatePage"]</nowiki>의 값을 추가할 것
* 다만 이럴 경우 기본적으로 기존 평가를 반영하지 못함
** 이 RatePage에 기존 평가 문단을 파싱하여 ratepage_vote 데이터베이스 테이블 편집으로 점수를 초기화하는 업데이트 스크립트 파일(단일 php 파일)를 추가하는 방법도 가능(SectionRatings 확장 기능의 maintenance 폴더를 만들어 거기 넣을 것)
** 기존 평가는 글 숨김 틀을 앞 뒤로 추가하여 숨김 처리하고, SectionRatings는 RatePage가 만드는 데이터베이스 테이블인 ratepage_vote나 ratepage_contest의 값을 정렬하여 SQL 구문으로 불러와 상위 k개의 값을 배열로 반환하여 특정 미디어위키 태그에 붙이는 작업을 수행
 
== 참고 자료 ==
== 참고 자료 ==
* [https://namu.wiki/w/PHP/%EB%AC%B8%EB%B2%95 나무위키의 PHP 문법 자료]
* [https://namu.wiki/w/PHP/%EB%AC%B8%EB%B2%95 나무위키의 PHP 문법 자료]

2024년 3월 17일 (일) 17:24 판

게임별 토론 문서의 게임 평가용 문단 내용을 바탕으로 SQL 쿼리를 사용해 이 게임의 평점이 리버티게임 전체에서 상위 몇 퍼센트인지 알려주는 SectionRatings(가칭)의 설계에 관한 문서입니다.

요구 사항

== h-게임 평가하기-(id) ==
h-(사용자1)-(id)
=== h-(문단)-게임 평가하기-(id) ===
c-(사용자2)-(id)-게임 평가하기
c-(사용자2)-(id)
:c-(사용자3)-(id)-(사용자2)-(id)
:c-(사용자3)-(id)
    • 현재 틀:평론은 백괴게임 시절과 문단 제목이 다른 부분(이 게임 평가하기, 평가, 게임 평가하기 등등)도 있고, 토론 문서가 없는 게임들이 아직 있어 요구 사항처럼 대량 편집을 넣기 쉽지 않은 부분이 있음
      • 다만 5단계의 하위 평가 문단은 문단 제목 문구가 전부 같은 것으로 추정되므로, 이에 따라 키워드를 뽑아 파싱하는 것은 가능
  • 클라이언트 측에서 토론 문서를 보았을 때 평론 틀이 풀기 처리된 토론 문서의 HTML element 계층 구조는 같은 level을 가지고 있어 클라이언트 측 파싱은 매우 복잡하거나 불가능할 가능성이 큼(h2, h3, ol 태그가 전부 같은 부모를 가짐)
  • 자체 개발이 좋으나 PHP 확장 기능 개발의 어려움으로 인해 실패할 가능성이 크므로 두 가지 방법을 고려새삼 조사 확장 기능을 개발한 *devunt님이 대단해지는 순간

방법 1: 자체적으로 바닥에서부터 개발

  • 자체적으로 SQL 파일을 만들어 libertygame.sectionratings 데이터베이스 테이블을 생성
  • 서버에서 php update.php를 돌리면 SQL 파일의 내용대로 쿼리 전송

방법: RatePage 확장 기능에 의존

리버티책에서 사용 중인 RatePage 확장 기능을 사용하는 방법이 존재: MultimediaViewer -> RatePage -> SectionRatings(가칭) 순으로 의존성 발생

  • extension.json의 "requires"에 ["extensions"]["RatePage"]의 값을 추가할 것
  • 다만 이럴 경우 기본적으로 기존 평가를 반영하지 못함
    • 이 RatePage에 기존 평가 문단을 파싱하여 ratepage_vote 데이터베이스 테이블 편집으로 점수를 초기화하는 업데이트 스크립트 파일(단일 php 파일)를 추가하는 방법도 가능(SectionRatings 확장 기능의 maintenance 폴더를 만들어 거기 넣을 것)
    • 기존 평가는 글 숨김 틀을 앞 뒤로 추가하여 숨김 처리하고, SectionRatings는 RatePage가 만드는 데이터베이스 테이블인 ratepage_vote나 ratepage_contest의 값을 정렬하여 SQL 구문으로 불러와 상위 k개의 값을 배열로 반환하여 특정 미디어위키 태그에 붙이는 작업을 수행

참고 자료