MoniWiki 에 해당하는 글 : 2 개
구글 웹마스터 도구에는 각 사이트의 sitemap을 등록하여 검색 엔진이
어느 주소를 검색 목록에 추가할 것인지를 알 수 있도록 하는 기능이 있는데,
Sitemap protocol이라는 형식의 파일을 사용해도 되고, 기존에 많이 쓰이고
있는 RSS 형식을 사용해도 된다. 그런데, MoniWiki를 사용하는 위키 사이트의
RSS를 구글 웹마스터 도구에 등록하려고 봤더니, MoniWiki에 들어 있는 rss plugin을 통해서는
제대로 되지 않는다. 티스토리에서 제공하는 rss는 잘 등록되는 것을
보면 MoniWiki에서 사용하는 rss 형식이 구글에서 요구하는 rss 형식과
잘 맞지 않는 모양이다. 하지만 어차피 rss protocol에 대해서 잘 알고 있는 것이
아니고 Sitemap 문법이 무척 간단하기 때문에 기존의 rss plugin을 고치기보다
새롭게 sitemap plugin을 하나 간단히 만들었다.

XML 형식은 sitemaps.org에 있는 것을 참조했고,
원래 MoniWiki에 들어 있는 rss_rc plugin과 TitleIndex macro를 참고했다.
현재는 아주아주 단순하게 각 페이지 목록을 추출해서 sitemap에 오로지 위치만
포함시킨다. 다른 정보는 하나도 안 들어간다. -.-;;
버젼은 일단 0.1로 메긴다.


확인 결과 일단은 동작을 하는 듯 하다.
사용자 삽입 이미지

스크린샷을 보니 위키에 페이지가 48개 뿐이라니 쫌 한심하다. ㅋㅋ
아니지, 실제 내용이 들어 있는 페이지는 저거의 반수도 안될 것인데
정말 한심하다. ㅠ.ㅠ

삽질기가 너무 썰렁하여 MoniWiki에 써 놓았던 것을 여기에 옮겨 옴 -.-;;


A2
: 다음의 방법은 어떨까요. 각 페이지에 #private이라는 instruction을 넣음으로써 개인적인 페이지로 설정하는 방법입니다. 대충 말하자면 #private이라는 instruction이 있는 페이지는 read_private이라는 permission이 있어야 볼 수 있도록 하는 방식입니다.

wiki.php에서 대충 다음 부분을 찾아서 고칩니다. (#inserted부터 #end of inserted까지를 삽입합니다.)

$formatter->pi=$formatter->get_instructions($dum);
if ($DBInfo->body_attr)
$options['attr']=$DBInfo->body_attr;

# inserted by Lbird. supporting private pages
if ($formatter->pi['#private'] and !$DBInfo->security->is_allowed('read_private',$options)) {
do_invalid($formatter,$options);
return;
}
# end of inserted code by Lbird.

$formatter->send_header("",$options);

$formatter->send_title("","",$options);
주의: 긴줄이라 잘려서 보일 수 있으니 마우스로 긁어서 어딘가에 붙여 넣어서
봐야 할지도 모름 -.-;; (스킨을 바꿀까 -.-;;)

역시 wiki.php에서 다음 부분도 찾아서 고칩니다. (#private 하나를 추가합니다.)
function get_instructions(&$body) {
global $DBInfo;
# '#private' inserted by Lbird
$pikeys=array('#redirect','#action','#title','#keywords','#noindex',
'#filter','#postfilter','#twinpages','#notwins','#nocomment',
'#language','#camelcase','#nocamelcase',
'#singlebracket','#nosinglebracket','#private');
$pi=array();


#private 이라는 instruction이 들어가 있는 페이지들만 영향을 받습니다. acl.default.php 파일에서
* @ALL deny *
* @ALL allow read,ticket,savepage
* @User allow *

와 같이 되어 있는 경우라면 로그인한 사용자들은 read_private이 있고, guest는 없습니다. read permission만 있으니까 #private이 붙어 있지 않은 페이지들만 읽을 수 있습니다. 더 세세한 설정을 위해서는 특정 그룹을 지정해서 그 그룹에만 read_private 퍼미션을 줄 수도 있을 겁니다.

사족: 위키에 read 퍼미션을 제한한다는 게 위키정신에는 맞지 않는다고 개발자께서 생각하시는데 굳이 저런 걸 하려고 해서 참 죄송하군요. :) -- Lbird
감사합니다.

마침 이 문제로 골치를 썩고 있었는데...

큰 도움이 되었습니다. = )
2007.02.22 13:54
도움이 되었다니 즐거울 따름이죠. ^^

2007.02.22 19:52

 이전  1   다음 

fotowall :: ncloud RSS Feeds today : 4   yesterday : 7
total : 176,838