UseModWiki소스수정/인터위키아이콘표시 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/인터위키아이콘표시 는 읽기 전용 페이지입니다.
== [[인터위키]]의 위키 이름 부분을 아이콘으로 표시 == 여러 [[위키클론]]들이 구현하고 있는 패치. Jof:UseModWiki소스수정/InterWiki아이콘표시 와 NoSmok:InterWiki토론, 그리고 MoinMoin, MoniWiki 등의 구현을 참조하여 적용하였다. * 사용법: ** [[인터위키]]를 사용하면 예전에는
UseMod:UseModWiki
로 보이던 것이 이제는 UseMod:UseModWiki 로 나온다. ** 앞의 아이콘을 클릭하면 해당 위키에서 뒤에 페이지 이름을 뺀 URL (즉 intermap 에 적힌 경로) 로 간다. ** GyparkPDS:wiki/intermap 화일에는 다음과 같은 형식으로 쓴다. {{{ 위키이름 위키URL|이미지경로 GyparkWiki http://gypark.pe.kr/cgi-bin/wiki/wiki.pl?|GyparkWiki.gif }}} ** 즉, URL 과 이미지 경로를 "|" 로 구분해 준다. 이미지 경로가 없을 경우는 기본 아이콘을 사용한다. ** config 화일에서 $InterIconDir 변수를 추가하여 인터위키에 사용할 아이콘들이 있는 경로를 지정한다. 상대경로로 해도 되고, http: 로 시작하는 URL 을 적어도 된다. 기본값은 "./icons-inter/" 이다. (그냥 icons 디렉토리를 같이 사용할까 했는데, 따로 구분하는 게 보거나 나중에 화일을 추가 삭제할 때 더 낫겠다 싶어서 따로 분리하였다) 이 경로는 당연히 웹서버를 통해 볼 수 있는 경로여야 한다. ** 이미지 경로에 화일 이름만 적혀 있는 경우는 $InterIconDIr 아래에서 찾는다. 이미지 경로에 URL 이 적혀 있다거나, 디렉토리가 적혀 있으면 (예: my_image/icon.png, /home/user/public_html/image/icon.png 등) 그 경로를 그대로 img 태그에 넣어서 사용한다. ** 기본적으로 세 가지의 아이콘 화일이 있어야 한다. 없으면 빈 X박스가 나온다. -_-; *** icons-inter/default-inter.gif - 해당 인터위키를 위한 이미지가 따로 없을 경우, 이 아이콘이 표시된다. *** icons-inter/default-upload.gif - [[화일업로드]]를 하여
Upload:화일명
로 적었을 때 이 아이콘이 표시된다. *** icons-inter/default-local.gif - [[/LocalWiki]]를 사용하여 (
LocalWiki: 또는 Local:
) 사용할 때 이 아이콘이 표시된다. ext 버전에 들어있는 아이콘은 default-inter.gif 와 동일하다. 자신의 홈페이지에 맞는 아이콘 화일의 이름을 이것으로 변경해 준다. **
UseMod:UseModWiki
로 쓴 경우만 아이콘이 나오고
[UseMod:UseModWiki]
나
[UseMod:UseModWiki 여기]
등과 같이 쓴 경우는 예전과 동일하다. * 부작용: 양날의 칼 ** 이 패치의 장점은, 아이콘이 등록되어 있는 [[인터위키]]의 경우 한 눈에 쉽게 알아볼 수 있다는 점. 마우스로 웹브라우저의 내용을 긁어서 복사할 때 페이지이름만 복사되므로 읽을 때 직관적이란 점 등 ** 반대로 말하면, 아이콘이 등록되어 있지 않으면 다 똑같은 기본 아이콘으로 나오므로 어디가 어딘지 알 수 없다. 또 인터위키 이름까지 같이 긁어서 복사할 수 없으므로 페이지 편집이나 소스 보기에 들어가서 복사해야 한다. ** 막상 적용해 보니까 화면이 별로 안 예쁜 듯 해서 낭패. -_-; === config.pl 수정 === {{{#!vim perl ### interwiki 아이콘 사용 $InterIconDir = "./icons-inter/"; # directory containing interwiki icons }}} === wiki.pl 수정 === 환경 변수 $InterIconDir 추가 {{{#!vim perl ... ### 패치를 위해 추가된 환경설정 변수 use vars qw( $UserGotoBar $UserGotoBar2 $UserGotoBar3 $UserGotoBar4 ... $SlashLinks $InterIconDir ); ### ... }}} {{{#!vim perl sub InterPageLink { ... $url = &GetSiteUrl($site); ############### ### added by gypark ### interwiki 아이콘 my ($image, $url_main); if ($url =~ /\|/) { ($url, $image) = split(/\|/, $url, 2); } $url_main = $url; ### ############### return ("", $id . $punct) if ($url eq ""); ... return ("
", $punct); } ### ############### ############### ### replaced by gypark ### interwiki 아이콘 # return ("
$name
", $punct); my $link_html = ''; if (!($image)) { $image = "default-inter.gif"; } if (!($image =~ m/\//)) { $image = "$InterIconDir/$image"; } $link_html = "
" . "
" . "
"; $link_html .= "
$remotePage
"; ### 외부 URL 을 새창으로 띄울 수 있는 링크를 붙임 $link_html .= "
"; return ($link_html, $punct); ### ############### } }}} Upload: 와 Local: ,
LocalWiki:
의 경우는 기본 default 이미지를 출력하도록 수정 {{{#!vim perl sub GetSiteUrl { my ($site) = @_; my ($data, $url, $status); if (!$InterSiteInit) { $InterSiteInit = 1; ############### ### replaced by gypark ### file upload # ($status, $data) = &ReadFile($InterFile); # return "" if (!$status); # %InterSite = split(/\s+/, $data); # Later consider defensive code ($status, $data) = &ReadFile($InterFile); if ($status) { %InterSite = split(/\s+/, $data); } if (!defined($InterSite{'Upload'})) { ### interwiki 아이콘 $InterSite{'Upload'} = "$UploadUrl\/|default-upload.gif"; } ### ############### ############### ### added by gypark ### Local, LocalWiki 인터위키 from usemod 1.0 ### interwiki 아이콘 같이 적용 if (!defined($InterSite{'LocalWiki'})) { $InterSite{'LocalWiki'} = $ScriptName . &ScriptLinkChar() . "|default-local.gif"; } if (!defined($InterSite{'Local'})) { $InterSite{'Local'} = $ScriptName . &ScriptLinkChar() . "|default-local.gif"; } ### ############### } $url = $InterSite{$site} if (defined($InterSite{$site})); return $url; } }}} 대괄호로 둘러싼 경우는 아이콘 표시는 하지 않지만, intermap 화일 형식이 바뀌었기 때문에 처리는 해 주어야 한다. {{{#!vim perl sub StoreBracketInterPage { ... $url = &GetSiteUrl($site); ############### ### added by gypark ### interwiki 아이콘 my ($image, $url_main); if ($url =~ /\|/) { ($url, $image) = split(/\|/, $url, 2); } $url_main = $url; ### ############### if ($text ne "") { return "[$id $text]" if ($url eq ""); ... $url .= $remotePage; ############### ### replaced by gypark ### interwiki 아이콘 # return &StoreRaw("
[$text]
"); my $link_html = ''; $link_html = "
[$text]
" . ### 외부 URL 을 새창으로 띄울 수 있는 링크를 붙임 "
" . "
" . "
"; return &StoreRaw($link_html); ### ############### } }}} === wiki.css === 아이콘의 [[UseModWiki스타일쉬트]] {{{html IMG.inter { width: 16; height: 16; border: none; } }}} === Notes === ---- [[위키위키분류]]
UseModWiki소스수정/인터위키아이콘표시
페이지로 돌아가기 |
다른 수정본 보기