본문으로 이동

미디어위키 1.45 안정화가 거의 끝났습니다. 다만 Flow 확장 기능 관련 이슈가 있어서 대체하는 작업을 수행할 계획입니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 데이터베이스 덤프 받고싶으신 분은 큰숲백과 가입 후에 사용자토론:Bigforest에 의견 남겨주시면 ftp 주소, 계정, 비밀번호를 특수:EmailUser를 통해서 공개할 예정입니다.

모듈:Rating

큰숲백과, 나무를 보지 말고 큰 숲을 보라.

{{#css: .template-documentation {

   clear: both;
   margin: 1em 0 0 0;
   padding: 1em

} /* 아래 상자 */ .mbox-text {

   clear: both;
   background-color: #e8ffe8;

}

.template-documentation-template-data .mw-templatedata-doc-desc {

   display: none;

}

}}

설명문서 [보기] [편집] [역사] [새로 고침]
이 모듈 문서의 출처는 한국어 위키백과의 모듈: Rating입니다.

이 모듈은 점수를 별 그림으로 출력할 수 있도록 하는 모듈입니다. 이 모듈은 틀:순환에서 사용하는 loop 함수와 틀:등급에서 사용하는 stars 함수로 구성됩니다. 별을 출력하는 별점의 경우에는 소수 부분 m에 대해서

m0.25 - 회색 별을 출력(소수 부분 버림)
0.25<m<0.75 - 반쪽 별을 출력
m0.75 - 노란 별을 출력(소수 부분 올림)

하게 됩니다.

사용법

loop 함수

{{#invoke:Rating|loop|1= |2= }}

변수 이름 설명 기본값 필수 및 선택 여부
변수 #1 문자열을 반복할 횟수 비어 있음 필수
변수 #2 반복 출력할 문자열 비어 있음 필수

stars 함수

{{#invoke:Rating|stars|1= |2= }}

변수 이름 설명 기본값 필수 및 선택 여부
변수 #1 평가 점수 비어 있음 필수
변수 #2 만점일 때 별의 개수 비어 있음 필수
위 설명은 모듈:Rating/설명문서의 내용을 가져와 보여주고 있습니다.
연습장이나 사용자 문서에서 틀의 사용이나 수정을 연습할 수 있습니다.
분류는 /설명문서에 넣어주세요. 이 틀의 하위문서.

--한국어 위키백과에서 가져왔습니다.

local rating = {}

function rating.loop(frame)
    local times = tonumber( frame.args[1] )
    local str = frame.args[2]
    return string.rep(str,times)
end

function rating.stars(frame)
    local pts = frame.args[1]
    local fs = frame.args[2]
    local point = tonumber(pts)
    local f = tonumber(fs) -- 만점
    if point == nil or f == nil then
        return '<strong class="error">평가에 대해 명기하십시오.</strong>'
    end
    if point > f then
        return '<strong class="error">점수가 만점보다 높을 수 없습니다.</strong>'
    end
    -- FIXME: 별 크기 조정 시도 시 스크립트 오류 발생 
    if f > 6 then
        size = "7px"
    else
        size = "11px"
    end
    local img_spec = size ..'|' .. pts..'/'..fs..' 별'
    local complete_star = '[[그림:Star full.svg|'..img_spec..']]'
    local complete_stars = string.rep(complete_star, math.floor(point))
    local empty_star = '[[그림:Star empty.svg|'..img_spec..']]'
    local empty_stars = string.rep(empty_star, math.floor(f-point)) 
    local minor = point - math.floor(point) -- 판별식
    if minor == 0 then -- point+floor(f-point)=point+f-floor(point); if minor = 0 then ans = f else ans = f-1
        return complete_stars..empty_stars
    elseif minor > 0 and minor <= 0.25 then
        return complete_stars..empty_star..empty_stars
    elseif minor > 0.25 and minor < 0.75 then
        local half_star = '[[그림:Star half.svg|'..img_spec..']]'
        return complete_stars..half_star..empty_stars 
    else
        return complete_stars..complete_star..empty_stars
    end
end
return rating