[첫화면으로]"UseModWiki소스수정/UserList매크로" 페이지의 변경 내역

마지막으로 [b]


현재 버전 . . . . (수정) 2007-1-8 12:19 pm 수정한 사람: Raymundo
1 번째 수정본 . . . . 2003-2-7 8:05 pm 수정한 사람: Raymundo
 

변경사항 (가장 최근의 "일반적인 수정"부터) (소소한 수정)

-1,49 +1,36
== 존재하지 않는 페이지의 링크 스타일을 사용자가 결정할 수 있게 함 ==
* 위의 "존재하지 않는 페이지의 링크를 WikiX 스타일로 출력" 항목을 참조할 것
* 각 사용자마다 "환경설정" 페이지에서 자신이 선호하는 스타일을 택할 수 있다.
* [[Bab2]] 님의 패치 적용
* "존재하지 않는 페이지의 링크를 WikiX 스타일로 출력" 패치를 적용한 상태여야 한다. 그렇지 않으면 LinkFirstChar 변수가 선언되어 있지 않다고 에러를 낼 것이다. 위 패치를 같이 적용하던가, 그게 귀찮으면 아래 코드에서 $LinkFirstChar 대신에 0 또는 1 중 맘에 드는 값을 넣어라.
== userlist 매크로 추가 ==
* 현재 존재하는 아이디 목록을 출력한다.
* 사용법 - <userlist>
* [[Bab2]] 님의 패치를 함수 이름만 바꿔서 적용
:
{{{perl
sub GetPageOrEditAnchoredLink {
    ...
#   다음 줄 이하를 재수정
#   if (($LinkFirstChar) && ($name =~ ... /)) {;
    if ((&GetParam('linkstyle', $LinkFirstChar))
            && ($name =~ /(\[)?([^\/]*\/)?([a-zA-Z0-9\/]|[\x80-\xff][\x80-\xff])([^\]]*)(\])?/)) {
        return $2 . &GetEditLink($id,"<b>$3</b>") . $4;
    } else {
        return $name . &GetEditLink($id,"?");
    }
### 여기까지
}
}}}
:
{{{perl
sub DoEditPrefs {
    ...
    print '<br>', &GetFormCheck('toplinkbar', 1,
                            T('Show link bar on top'));
### 다음 단락 추가
    print '<br>', &GetFormCheck('linkstyle', $LinkFirstChar,
            T('Use wikiX style for the links to empty pages'));
{{{#!vim perl
sub MacroSubst {
### 다음 라인 추가
    $txt =~ s/\&__LT__;userlist\&__GT__;/&MacroUserList()/gei;
###
    print '<br>', &GetFormCheck('linkrandom', 0,
                                                T('Add "Random Page" link to link bar'));
    ...
    return $txt;
}
}}}
:
{{{perl
sub DoUpdatePrefs {
    ...
    &UpdatePrefCheckbox("toplinkbar");
### 다음 라인 추가
    &UpdatePrefCheckbox("linkstyle");
###
    &UpdatePrefCheckbox("linkrandom");
    ...
{{{#!vim perl
### 다음 함수를 통채로 추가
sub MacroUserList {
    my (@userlist, $result);
    my $usernumber;
    opendir(USERLIST, $UserDir);
    @userlist = readdir(USERLIST);
    close(USERLIST);
    shift @userlist;
    shift @userlist;
    @userlist = sort @userlist;
    foreach $usernumber (0..(@userlist-1)) {
        @userlist[$usernumber] =~ s/(.*)\.db/($1)/gei;
        @userlist[$usernumber] = &StorePageOrEditLink("@userlist[$usernumber]", "@userlist[$usernumber]") . "<br>";
    }
    $result = "@userlist";
    return $result;
}
}}}