[첫화면으로]UseModWiki소스수정/Template

마지막으로 [b]

Template Page 기능 추가

See also 다른페이지의내용을포함하여출력하기

$TemplatePage = "TemplatePage";

config.pl 수정

다음 항목 추가
### template page
$TemplatePage = "TemplatePage"; # name of template page for creating new page

wiki.pl 수정

전역 변수인 TemplatePage 추가
###############
### added by gypark
### 패치를 위해 추가된 환경설정 변수
use vars qw(
    $UserGotoBar $UserGotoBar2 $UserGotoBar3 $UserGotoBar4
    ...
    $HiddenPageFile $TemplatePage
    );
###
###############

함수 수정
sub OpenNewText {
    ...
        $Text{'text'} = T('Describe the new page here.') . "\n";
    }

###############
### added by gypark
### template page
    if (($TemplatePage) && (&GetParam("action","") eq "edit")) {
        my $temp;
        $temp = &GetTemplatePageText(&GetParam("id",""));
        if ($temp ne "") {
            $Text{'text'} = $temp;
        }
    }
###
###############
    $Text{'text'} .= "\n"  if (substr($Text{'text'}, -1, 1) ne "\n");
    ...
}

다음 함수 통채로 추가
### template page
sub GetTemplatePageText {
    my ($newpage) = @_;
    my $templatePage = "";
    my ($fname, $status, $data);

    if ($newpage eq "") {
        return "";
    }

    if ($newpage =~ /^(.*)\/(.*)/) {
        $templatePage = $1 . "/" . $TemplatePage;
    } else {
        $templatePage = $TemplatePage;
    }

    $fname = &GetPageFile($templatePage);
    if (!(-f $fname)) {
        $fname = &GetPageFile($TemplatePage);
        if (!(-f $fname)) {
            return "";
        }
    }

    ($status, $data) = &ReadFile($fname);
    if (!$status) {
        return "";
    }

    my %temp_Page = split(/$FS1/, $data, -1);
    my %temp_Section = split(/$FS2/, $temp_Page{'text_default'}, -1);
    my %temp_Text = split(/$FS3/, $temp_Section{'data'}, -1);

    return $temp_Text{'text'};
}

Notes

소스를 약간 고쳤습니다만, 동작에 차이가 있는 것이 아니니 이미 반영하신 분들은 다시 고칠 필요는 없습니다.
-- Raymundo 2003-9-17 8:05 am


위키위키분류

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