UseModWiki소스수정/MyInterest매크로 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/MyInterest매크로 는 읽기 전용 페이지입니다.
== MyInterest 매크로 == * 자신 또는 특정 사용자의 [[/관심있는페이지]] 목록을 출력하는 매크로 * 필수 요구 사항 : ** [[/관심있는페이지]] 패치가 적용되어 있어야 한다. * 선택 요구 사항 : 없음 * 사용법 : <myinterest> 또는 <myinterest(사용자아이디)> ** <myinterest> 매크로는, 이 매크로가 포함된 페이지를 브라우징하는 사용자의 관심 페이지 목록을 출력한다. 로그인하지 않은 사용자의 경우는 아무것도 출력되지 않는다. [[최근변경내역]] 등에 이 매크로를 넣어 두는 식으로 사용할 수 있다. ** <myinterest(사용자아이디)> 매크로는, 인자로 받은 아이디에 해당하는 사용자가 존재하고 그 사용자가 페이지 하나 이상을 관심페이지로 등록한 경우 그 페이지들의 목록을 출력한다. 그 외의 경우는 아무것도 출력되지 않는다. * 주의사항 : ** <myinterest> 는 이름이 <mysign> 과 유사하나 ([[/MySign전처리매크로]] 참조) 전처리 매크로가 '''아니다'''. <date> 나 <time> 이 "페이지를 보는 시각"에 따라 출력이 달라지는 것처럼, 이 매크로는 "페이지를 보는 사용자"에 따라 출력이 달라지는 것이다. ** <myinterest(사용자아이디)> 를 사용하면, 자신의 관심 페이지 목록을 쉽게 자신의 [[개인페이지]] 등에 삽입해 두기가 쉬운 대신, 말을 바꾸면 타인의 관심 페이지 목록을 이 매크로를 써서 알아낼 수 있다는 뜻이 된다. 네티켓을 지키는 의미로, 남의 아이디를 인자로 넣어서 페이지에 포함하는 것을 삼가자. ([[주인장]]의 과민반응일지도..) === wiki.pl 수정 === {{{#!vim perl sub MacroSubst { ... ###
$txt =~ s/(\&__LT__;myinterest(\(([^\n]+)\))?\&__GT__;)/&MacroMyInterest($1, $3)/gei; ### ############### return $txt; } }}} 다음 함수를 통채로 추가 {{{#!vim perl ### MyInterest sub MacroMyInterest { my ($itself, $username) = (@_); my ($data, $status, @pages); my (%tempUserData, %tempUserInterest); my $txt = ""; if ($username eq "") { if (&GetParam('username') eq "") { return ""; } else { $username = &GetParam('username'); } } %tempUserData = (); ($status, $data) = &ReadFile(&UserDataFilename($username)); if (!$status) { return ""; } %tempUserData = split(/$FS1/, $data, -1); # -1 keeps trailing null fields %tempUserInterest = split(/$FS2/, $tempUserData{'interest'}, -1); @pages = sort (keys (%tempUserInterest)); foreach (@pages) { $txt .= ".... " if ($_ =~ m|/|); $txt .= &GetPageOrEditLink($_)."
"; } return $txt; } }}} === Notes === [[Raymundo]] 페이지에 테스트 삼아서 넣긴 했지만... 제 홈페이지에 있는 페이지들이야 전부 제 관심 페이지일테니... 제가 만들었지만 저는 전혀 쓸 일이 없는 매크로로군요. 게다가 막상 남의 홈페이지에서 사용하려고 해도 괜히 페이지들 차별하는 느낌이 들어서.. ^^; NoSmoke 같은 공공 홈페이지쯤 되면 사용하기 좋을 것 같은데 그런 곳 중에 이곳의 소스를 사용해서 운영하는 곳이 있으려나요? :-)
---- {{{#!vim perl if ($username eq "") { if (&GetParam('username') eq "") { return ""; } else { $username = &GetParam('username'); } ## 추가 } else { $username = &FreeToNormal($username); } ## 추가 }}} 누군가를 위해서 저걸 추가해주는게 좋을거 같습니다.
: 누구가 누군데요? 일리가 있고, 생각을 안 한 것도 아닙니다만... [[/사용자아이디]] 패치를 적용하지 않은 경우에는 들어맞지 않지요. 굳이 패치들간에 불필요한 의존성을 걸 필요가 없다고 생각해서 일부러 넣지 않았습니다. 뭐 이 원칙이 잘 지켜지고 있지도 않습니다만 :-)
:: 그렇군요.. 'o'a 누군가는... 저희 아이들(?) 얘기 였습니다. ^^;
---- ext1.50b - 관심있는 페이지로 등록한 페이지가 삭제되었을 경우, 여전히 평범하게 링크가 나오던 것을 일반적인 경우처럼 "없는 페이지 링크" (뒤에 물음표 또는 굵은 첫글자) 로 표시하게 고쳤습니다. 관심 페이지의 수가 좀 많을 경우 속도 저하가 있겠습니다만, 그것을 체감할 정도로 관심 페이지를 많이 등록하지는 않겠죠.
---- [[위키위키분류]]
UseModWiki소스수정/MyInterest매크로
페이지로 돌아가기 |
다른 수정본 보기