[첫화면으로]UseModWiki소스수정/AllPagesFrom매크로

마지막으로 [b]

allpagesfrom 매크로 추가

sub MacroSubst {
    ...
### 다음라인 추가
    $txt =~ s/\&__LT__;allpagesfrom\(([^,\n]+)(,\d)?\)\&__GT__;/&MacroAllPagesFrom($1, $2)/gei;
###
    return $txt;
}
### 다음 함수를 통채로 추가
sub MacroAllPagesFrom {
    my ($string, $exists) = @_;
    my (@x, @links, $pagename, %seen, %pgExists);
    my $txt;

    $string = &RemoveLink($string);
    $string = &FreeToNormal($string);
    if (&ValidId($string) ne "") {
        return "<allpagesfrom($string)>";
    }

    if ($exists =~ /,(\d)/) {
        $exists = $1;
    } else {
        $exists = 2;
    }

    %pgExists = ();
    foreach $pagename (&AllPagesList()) {
        $pgExists{$pagename} = 1;
    }

###############
### replaced by gypark
### 링크 목록을 별도로 관리 패치를 적용한 경우는 두번째 라인을, 그렇지 않다면 첫번째 라인을 쓸 것
#   @x = &GetPageLinks($string, 1, 0, 0);
    @x = &GetPageLinksFromFile($string, 1, 0, 0);
###
###############

    foreach $pagename (@x) {
        $pagename = (split('/',$string))[0]."$pagename" if ($pagename =~ /^\//);
        if ($seen{$pagename} != 0) {
            next;
        }
        if (($exists == 0) && ($pgExists{$pagename} == 1)) {
            next;
        }
        if (($exists == 1) && ($pgExists{$pagename} != 1)) {
            next;
        }
        $seen{$pagename}++;
        push (@links, $pagename);
    }
    @links = sort(@links);

    foreach $pagename (@links) {
        $txt .= ".... "  if ($pagename =~ m|/|);
        $txt .= &GetPageOrEditLink($pagename) . "<br>";
    }

    return $txt;
}

1.1. 추가 업데이트 내역

ext1.90 - /매크로파라메터에이중대괄호허용
-- Raymundo 2005-11-19 6:09 pm

1.2. 사용자 의견

이름:  
Homepage:
내용:
 


위키위키분류

마지막 편집일: 2007-4-11 4:32 pm (변경사항 [d])
824 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기