-
- 1. goto 매크로 문제 해결
-
-
- 1.1. wiki.pl 수정
-
- 1.2. macros/goto.pl 수정
-
- 1.3. 추가 업데이트 내역
-
- 1.4. 의견란
-
1. goto 매크로 문제 해결
- goto 매크로를 사용할 때, 텍스트 필드를 빈 칸으로 두었을 때 에러가 난다. 또한 Go 버튼을 누르지 않고 엔터를 입력할 경우 제대로 동작하지 않는다
- Bab2님의 패치를 수정, 적용
- 빈 칸을 입력하거나, 존재하지 않는 페이지를 입력했을 경우는, $NotFoundPg 환경변수에 지정되어 있는 페이지를 찾아가고, 그 변수가 지정되지 않았다면, $HomePage, 즉 첫화면으로 가게 된다.
1.1. wiki.pl 수정
-
sub DoBrowseRequest {
...
if ($action eq 'browse') {
if ($FreeLinks && (!-f &GetPageFile($id))) {
$id = &FreeToNormal($id);
}
if (($NotFoundPg ne '') && (!-f &GetPageFile($id))) {
$id = $NotFoundPg;
}
if ($id eq '') {
$id = $HomePage;
}
&BrowsePage($id) if &ValidIdOrDie($id);
return 1;
...
}
sub MacroGoto {
my ($string) = @_;
$string = &RemoveLink($string);
return
"<form name=goto><input type=\"hidden\" name=\"action\" value=\"browse\" id=\"hidden-box\">".
"<input name='id' type\text size=10 value='$string'>" . " " .
"<input type=submit value=\"". T('Go') . "\">".
"</form>";
}
1.2. macros/goto.pl 수정
sub goto {
my ($txt) = @_;
$txt =~ s/\&__LT__;goto\((.*?)\)\&__GT__;/&MacroGoto($1)/gei;
return $txt;
}
sub MacroGoto {
my ($string) = @_;
$string = &RemoveLink($string);
return &GetGotoForm($string);
}
1;
1.3. 추가 업데이트 내역
goto 매크로를 쓸 때 인자로 들어가는 스트링이 위키네임일 경우 문제가 됩니다. 위의 sub MacroGoto 안에
$string = &RemoveLink($string);
을 추가해 주면 됩니다.
ext1.90
ext2.3
- /GotoBar개선을 위해 추가된 GetGotoForm()함수를 사용하도록 수정함
- 자바스크립트를 사용해서 "wiki.pl/페이지이름" 형태로 URL을 띄우도록 함
i tried a link (a la CWIK) as:
sub GetPrinterFriendlyLink {
my ($id) = @_;
my $action;
$action = lc(&GetParam('action', ''));
if ($action) {
return &ScriptLink("action=$action&id=$id&embed=1", T('Printer'));
} else {
return &ScriptLink("action=browse&id=$id&embed=1", T('Printer'));
}
}
but GetGotoForm of UsemodKr seems "to capture" the action. I have commented in sub GetGotoForm
#. &GetHiddenValue("action", "browse")
and, for the time being, I don't see drawbacks.
Regards. --
JustSameJuanmaMP
2009-8-25 6:18 am
위키위키분류