UseModWiki소스수정/Template 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/Template 는 읽기 전용 페이지입니다.
== Template Page 기능 추가 == See also [[다른페이지의내용을포함하여출력하기]] * 새로운 페이지를 만들 때, 편집창에 미리 지정해 둔 내용을 채워넣어 쉽게 만들 수 있게 하는 기능 * Jof:UseModWiki소스수정/빈페이지기본내용 의 아이디어를 얻음 * 사용법 ** config 화일에 다음의 변수를 지정한다. {{{#!vim perl $TemplatePage = "TemplatePage"; }}} **
$TemplatePage
변수의 값이 없을 경우는 이 기능이 동작하지 않는다. ** 예를 들어, 이 변수의 값이 "템플릿"이라 하면, 새로운 페이지를 만들 때 다음과 같이 동작한다. *** 새로운 페이지를 만들 때, "템플릿"페이지가 있다면, 그 페이지의 내용을 그대로 복사해서 편집창에 표시한다. "템플릿" 페이지가 없다면 예전처럼 기본값 문자열이 표시된다. *** 새로운 [[하위페이지]]를 만들 때, "상위페이지/템플릿" 페이지가 있다면, 그 페이지의 내용을 복사해서 표시한다. 없다면, "템플릿" 페이지를 찾아 그 내용을 복사한다. 역시 없다면, 기본값 문자열을 표시한다. ** [[Diary]] 같이 매번 하위 페이지에 특정한 매크로나 내용을 적어야 하는 곳에서 유용하게 사용할 수 있다. * 주의사항 ** 당연한 얘기지만, 템플릿 페이지의 내용을 작성할 때 mysign 이나 comment 처럼 '저장할 때' 치환되는 매크로를 쓰면 치환되어 버리니 주의할 것. [[/TemplateMacro]]를 적절히 써서 이런 의도하지 않은 치환을 막을 수 있다. === config.pl 수정 === 다음 항목 추가 {{{#!vim perl ### template page $TemplatePage = "TemplatePage"; # name of template page for creating new page }}} === wiki.pl 수정 === 전역 변수인
TemplatePage
추가 {{{#!vim perl ############### ### added by gypark ### 패치를 위해 추가된 환경설정 변수 use vars qw( $UserGotoBar $UserGotoBar2 $UserGotoBar3 $UserGotoBar4 ... $HiddenPageFile $TemplatePage ); ### ############### }}} 함수 수정 {{{#!vim perl 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"); ... } }}} 다음 함수 통채로 추가 {{{#!vim perl ### 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 === 소스를 약간 고쳤습니다만, 동작에 차이가 있는 것이 아니니 이미 반영하신 분들은 다시 고칠 필요는 없습니다.
---- [[위키위키분류]]
UseModWiki소스수정/Template
페이지로 돌아가기 |
다른 수정본 보기