[첫화면으로]UseModWiki소스수정/인터위키아이콘표시

마지막으로 [b]

인터위키의 위키 이름 부분을 아이콘으로 표시

여러 위키클론들이 구현하고 있는 패치. Jof:UseModWiki소스수정/InterWiki아이콘표시NoSmok:InterWiki토론, 그리고 MoinMoin, MoniWiki 등의 구현을 참조하여 적용하였다.

위키이름    위키URL|이미지경로
GyparkWiki  http://gypark.pe.kr/cgi-bin/wiki/wiki.pl?|GyparkWiki.gif

config.pl 수정

### interwiki 아이콘 사용
$InterIconDir = "./icons-inter/"; # directory containing interwiki icons

wiki.pl 수정

환경 변수 $InterIconDir 추가
   ...
### 패치를 위해 추가된 환경설정 변수
use vars qw(
    $UserGotoBar $UserGotoBar2 $UserGotoBar3 $UserGotoBar4
    ...
    $SlashLinks $InterIconDir
    );
###
   ...

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 ("<img $ImageTag src=\"$url\" alt=\"$id\">", $punct);
    }
###
###############

###############
### replaced by gypark
### interwiki 아이콘
#   return ("<a href=\"$url\">$name</a>", $punct);
    my $link_html = '';
    if (!($image)) {
        $image = "default-inter.gif";
    }
    if (!($image =~ m/\//)) {
        $image = "$InterIconDir/$image";
    }
    $link_html = "<A class='inter' href='$url_main'>" .
                "<IMG class='inter' src='$image' alt='$site:' title='$site:'>" .
                "</A>";
    $link_html .= "<A class='inter' href='$url' title='$id'>$remotePage</A>";
### 외부 URL 을 새창으로 띄울 수 있는 링크를 붙임
    $link_html .= "<a href=\"$url\" target=\"_blank\"><img src=\"$IconDir/newwindow.gif\" border=\"0\" alt=\"" . T('Open in a New Window') . "\" align=\"absbottom\"></a>";
    return ($link_html, $punct);
###
###############
}

Upload: 와 Local: , LocalWiki: 의 경우는 기본 default 이미지를 출력하도록 수정
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 화일 형식이 바뀌었기 때문에 처리는 해 주어야 한다.
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("<a href=\"$url\">[$text]</a>");
    my $link_html = '';
    $link_html = "<A class='inter' href='$url' title='$id'>[$text]</A>" .
### 외부 URL 을 새창으로 띄울 수 있는 링크를 붙임
                "<a href=\"$url\" target=\"_blank\">" .
                "<img src=\"$IconDir/newwindow.gif\" border=\"0\" alt=\"" . T('Open in a New Window') . "\" align=\"absbottom\">" .
                "</a>";
    return &StoreRaw($link_html);
###
###############
}

wiki.css

아이콘의 UseModWiki스타일쉬트
IMG.inter
{
    width: 16;
    height: 16;
    border: none;
}

Notes


위키위키분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
786 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기