1. 소개

모니위키에서 댓글(comment)를 입력할 수 있는 매크로. 페이지 수정 모드에 들어가거나 로그인 하지 않아도 의견을 남길 수 있습니다. 이렇게 입력된 댓글은 comment macro 바로 아래 혹은 지정된 위치 아래에 차곡차곡 쌓이게 됩니다.

2. 사용법

2.1. 특정 페이지에 추가

특정 페이지 하단에 [[Comment]]를 넣으면 http://moniwiki.kldp.net/에서 보이듯이 맨 하단에 CommentMacro가 붙게 됩니다.

2.2. 모든 페이지에 추가

모든 페이지에 Comment 매크로를 붙이기를 원한다면 config.php에 다음을 추가해주세요.
$extra_macros=array('FootNote','Comment');
/!\ Comment 매크로 이외에 자신이 만든 매크로가 맨 하단에 들어가도록 위의 방법을 쓰실 수 있습니다. 위의 방법으로 FootNoteMacroCommentMacro를 넣은 예입니다.

/!\ 1.0.9부터 지원합니다.

2.3. 입력창 바꾸기

기본 옵션으로 제공되는 입력창이 아닌 한 줄 짜리 입력창을 사용하려는 경우 아래와 같이 'oneliner' 옵션을 코멘트 매크로에 적용해주면 됩니다.
$extra_macros=array('FootNote','Comment(oneliner)');

2.4. 댓글 기록 순서 바꾸기

페이지에 특정 위치에##Comment라고 적어두면, 그 아래에 댓글이 기록됩니다. Google:트위터처럼 댓글이 역순으로 저장됩니다.

3. 코드 수정

2025-05-25

comment.php

수정 전 (342 Line)
} else if (preg_match("/^((\[\[|\<\<)Comment(\([^\)]*\))?(\]\]|>>)/m",$body)) {

수정 후 (342 Line)
} else if (preg_match("/^((\[\[|\<\<)Comment(\([^)]*\))?(\]\]|>>))/m", $body)) {

수정된 부분:

원래 패턴: (\(^\)*\))?
수정된 패턴: (\(^)*\))?
^\)*를 ^)*로 변경하여 닫는 괄호 )를 명확히 매칭하도록 했습니다.
이 변경은 PHP5의 PCRE 엔진에서 더 안정적으로 작동합니다.
^)*는 닫는 괄호를 제외한 모든 문자를 0개 이상 매칭하며, 괄호가 올바르게 닫히도록 보장합니다.
변경 이유:

(^\)*)는 이스케이프된 괄호 \)를 포함하며, PHP5에서 복잡한 입력에 대해 파싱 오류를 일으킬 수 있습니다.
^)*는 더 명확하고 간단한 패턴으로, PHP5의 구형 PCRE 엔진에서도 안정적으로 작동합니다.
Retrieved from http://memorecycle.com/w/wiki.php/CommentMacro
last modified 2025-05-25 10:51:39