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

마지막으로 [b]

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

-1,10 +1,12
== Template Page 기능 추가 ==
See also [[다른페이지의내용을포함하여출력하기]]
* 새로운 페이지를 만들 때, 편집창에 미리 지정해 둔 내용을 채워넣어 쉽게 만들 수 있게 하는 기능
* Jof:UseModWiki소스수정/빈페이지기본내용 의 아이디어를 얻음
* 사용법
** config 화일에 다음의 변수를 지정한다.
{{{perl
{{{#!vim perl
$TemplatePage = "TemplatePage";
}}}
** <nowiki>$TemplatePage</nowiki> 변수의 값이 없을 경우는 이 기능이 동작하지 않는다.

-14,18 +16,18
** [[Diary]] 같이 매번 하위 페이지에 특정한 매크로나 내용을 적어야 하는 곳에서 유용하게 사용할 수 있다.
* 주의사항
** 당연한 얘기지만, 템플릿 페이지의 내용을 작성할 때 mysign 이나 comment 처럼 '저장할 때' 치환되는 매크로를 쓰면 치환되어 버리니 주의할 것
** 당연한 얘기지만, 템플릿 페이지의 내용을 작성할 때 mysign 이나 comment 처럼 '저장할 때' 치환되는 매크로를 쓰면 치환되어 버리니 주의할 것. [[/TemplateMacro]]를 적절히 써서 이런 의도하지 않은 치환을 막을 수 있다.
=== config.pl 수정 ===
다음 항목 추가
{{{perl
{{{#!vim perl
### template page
$TemplatePage = "TemplatePage"; # name of template page for creating new page
}}}
=== wiki.pl 수정 ===
전역 변수인 <nowiki>TemplatePage</nowiki> 추가
{{{perl
{{{#!vim perl
###############
### added by gypark
### 패치를 위해 추가된 환경설정 변수

-39,7 +41,7
}}}
함수 수정
{{{perl
{{{#!vim perl
sub OpenNewText {
    ...
        $Text{'text'} = T('Describe the new page here.') . "\n";

-63,7 +65,7
}}}
다음 함수 통채로 추가
{{{perl
{{{#!vim perl
### template page
sub GetTemplatePageText {
    my ($newpage) = @_;

-105,4 +107,4
소스를 약간 고쳤습니다만, 동작에 차이가 있는 것이 아니니 이미 반영하신 분들은 다시 고칠 필요는 없습니다. <mysign([[Raymundo]],2003-9-17 8:05 am)>
----
[[기타분류]]
[[위키위키분류]]


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])
1162 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기