[첫화면으로]UseModWiki소스수정/액션모듈화

마지막으로 [b]

action 모듈화

/매크로모듈화와 유사하게, wiki.pl?action=**** 의 형식으로 호출했을 때 실행되는 함수를 별도의 파일로 분리하여 손쉽게 새로운 action을 추가하거나 기존 action을 덮어쓸 수 있게 함.

wiki.pl 수정

sub DoOtherRequest {
    ...
    if ($action ne "") {
        $action = lc($action);
###############
### replaced by gypark
### action 모듈화 - 여기서부터 추가
        my $action_file = "";
        my ($MyActionDir, $ActionDir) = ("./myaction/", "./action/");
        if (-f "$MyActionDir/$action.pl") {
            $action_file = "$MyActionDir/$action.pl";
        } elsif (-f "$ActionDir/$action.pl") {
            $action_file = "$ActionDir/$action.pl";
        }

        if ($action_file ne "") {
            my $loadaction = eval "require '$action_file'";

            if (not $loadaction) {      # action 로드 실패
                $UseShortcut = 0;
                &ReportError(Ts('Fail to load action: %s', $action));
                return;
            }

            my $func = "action_$action";
            &{\&$func}();
            return;
        }
###
###############
        if ($action eq "edit") {
    ...
}

추가 업데이트 내역

사용자 의견

이름:  
Homepage:
내용:
 

위키위키분류

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