변경사항 없음--이것이 첫번째 일반적인 버전임.
(소소한 수정)
action 모듈화
/매크로모듈화와 유사하게, wiki.pl?action=**** 의 형식으로 호출했을 때 실행되는 함수를 별도의 파일로 분리하여 손쉽게 새로운 action을 추가하거나 기존 action을 덮어쓸 수 있게 함.
-  필수 요구 사항: 없음
-  선택 요구 사항: 없음
-  사용법: wiki.pl 이 실행되었을 때 GetParam('action') 의 값이 예를 들어 "bookmark" 라면,
-  먼저 ./myaction/ 에서 bookmark.pl 을 찾는다. (사용자가 작성한 액션 파일을 넣는 디렉토리)
-  없으면 ./action/ 에서 bookmark.pl 을 찾는다. (ext버전에 포함된 디렉토리)
-  위 두 경우에 bookmark.pl이 있으면, 그 파일을 읽은 후 그 안에 있는 action_bookmark 함수를 호출한다. (즉, 함수이름은 "action_액션이름"이 되도록 작성할 것)
 
-  그도 없으면 기존처럼 wiki.pl 내의 if 구문에서 검색한다.
-  즉 wiki.pl내에 있는 기존 action들도 덮어쓸 수 있다는 얘기이다.
 
 
wiki.pl 수정
sub DoOtherRequest {
    ...
    if ($action ne "") {
        $action = lc($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) {      
                $UseShortcut = 0;
                &ReportError(Ts('Fail to load action: %s', $action));
                return;
            }
            my $func = "action_$action";
            &{\&$func}();
            return;
        }
        if ($action eq "edit") {
    ...
}
추가 업데이트 내역
사용자 의견
위키위키분류