wiki.pl 을 파라메터 없이 불렀을 때 로고페이지를 embed 형식으로 출력
- 말 그대로... URL을 "http....wiki.pl" 까지만 주었을 때, 지정한 페이지를 상단의 메뉴와 하단의 편집 가이드를 제외하여 embed 형식으로 출력한다. 이 로고 페이지 역시 위키위키의 페이지 중 하나일 뿐이므로, 쉽게 편집할 수 있다.
- UseModWiki소스수정/인자없을때특정페이지embed로나오게하기 를 수정하여 사용
- 필수 요구 사항: 없음
- 추가 요구 사항: 없음
- 사용법
- config.pl 화일에서 $LogoPago 변수를 설정해 준다.
-
$LogoPage = "대문"; # 자기가 로고 페이지로 사용할 페이지 이름.
- 이 때, 페이지 이름에 빈 칸이 포함되어 있을 경우는 빈 칸 대신에 underscore "_" 를 사용할 것
- $LogoPage 가 지정되어 있다면, wiki.pl 을 파라메터 없이 불렀을 때 이 로고 페이지를 표시한다. 이 때 상단의 메뉴바와 하단의 편집 가이드를 제외하고 페이지 본문만 표시한다.
- $LogoPage 가 지정되어 있지 않다면, 파라메터 없이 불렸을 때는 기존과 같이 $HomePage 로 지정된 페이지를 표시한다.
- 부작용: 설마...
- UseCache 옵션을 1 로 하여 운영하는 사이트의 경우는, 페이지들을 html 로 만들어 보관하기 때문에 embed 되지 말아야 할 곳에서 embed 된 형태로 출력된다던가 그 반대의 경우가 발생한다. 그래서 DoCacheBrowse 함수도 같이 수정하여, LogoPage 의 경우는 캐쉬를 사용하지 않게 하였다. 큰 문제는 없을 것으로 짐작함.
-
...
use vars qw(
$UserGotoBar $UserGotoBar2 $UserGotoBar3 $UserGotoBar4
$ConfigFile $SOURCEHIGHLIGHT %SRCHIGHLANG $LinkFirstChar
$EditGuideInExtern $SizeTopFrame $SizeBottomFrame
$LogoPage # 요거
);
...
-
sub DoCacheBrowse {
my ($query, $idFile, $text);
return 0 if (!$UseCache);
$query = $ENV{'QUERY_STRING'};
if (($query eq "") && ($ENV{'REQUEST_METHOD'} eq "GET")) {
if ($LogoPage eq "") {
$query = $HomePage;
} else {
$query = $LogoPage;
}
}
return 0 if ($query eq $LogoPage);
if (!($query =~ /^$LinkPattern$/)) {
if (!($FreeLinks && ($query =~ /^$FreeLinkPattern$/))) {
...
}
-
sub DoBrowseRequest {
my ($id, $action, $text);
if (!$q->param) {
if ($LogoPage eq "") {
&BrowsePage($HomePage);
} else {
$EmbedWiki = 1;
&BrowsePage($LogoPage);
}
return 1;
}
$id = &GetParam('keywords', '');
...
}
- 별도로, 홈페이지 상단에 있는 로고 이미지를 클릭했을때, HomePage 가 아니라 로고 화면이 뜨도록 하고 싶으면 아래의 라인도 수정해 준다.
-
sub GetHeader {
...
$header = "<a accesskey=\"w\" href=\"$ScriptName\"><$logoImage></a>";
...
}
Notes
마지막 로고화면에 대한 부분은 수정된 내용이 없는 것 같은데요.
- 앗, 그렇군요. 바로잡았습니다. :-)
위키위키분류