UseModWiki소스수정/PDA용클립 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/PDA용클립 는 읽기 전용 페이지입니다.
== PDA 에서 보기 좋은 형태의 클립 페이지 출력 == * 제목 그대로.. [[최근변경내역]] 페이지에서 자잘한 링크들을 제외하고, 각 페이지에서 상단 메뉴바와 하단 편집 가이드 등을 제외하여 출력한다. [[PDA]] 용 오프라인 웹브라우저로 긁어서 읽기 편한 형태로 출력한다. * Jof:UseModWiki소스수정/ForPalm 를 참조하여 이 곳 소스에 맞게 작업. (진작에 했으면 그대로 베끼는 선에서 되었을지 모르는데.. 그 사이에 소스가 워낙 바뀐게 많아져서 결국 거의 대부분 새로 해야 했다.. ㅠ,.ㅠ) * 사용법: ** wiki.pl?action=rc&pda=1[&days=숫자] 로 URL 을 지정하면 된다. (예: 이 홈페이지의 경우 http://gypark.pe.kr/cgi-bin/wiki/wiki.pl?action=rc&pda=1 ) *** 최근변경내역이 간단한 형태로 출력된다. *** days 값은 최근 몇일 동안의 변경 내역을 출력할 지를 지정한다. 생략하면 기본값은 7이다. 매일 긁어올 경우는 값을 1로 주면 될 것이다. *** 오프라인 브라우저로 긁어올 때 깊이를 1 로 주면 된다. ** 아무 페이지라도 뒤에 pda=1 인자를 주면 마찬가지로 출력된다. (하지만 wiki.pl?페이지이름&pda=1 으로는 안 된다. wiki.pl?action=browse&id=페이지이름&pda=1 의 형식으로 해야 된다. 좀 불편하다) * 부작용: ** 매우 지저분한 패치.. -_-; 원래의 UseModWiki 소스였다면 오히려 수월하게 수정했을 것을, 그동안 쌓인 이런저런 패치들 때문에 오히려 예전 소스의 코드들의 일부를 되살리는 형식의 패치가 되었다. === wiki.pl 수정 === IsPDA 변수 추가 {{{#!vim perl ... ### 패치를 위해 추가된 내부 전역 변수 use vars qw(%RevisionTs $FS_lt $FS_gt $StartTime $Sec_Revision $Sec_Ts $ViewCount $AnchoredFreeLinkPattern %UserInterest %HiddenPage $pageid $IsPDA); ### ... }}} 아래의 소스들은 예전에 다른 패치 때문에 수정되었던 부분들을 다시 수정하는 부분이 많으니 주의. {{{#!vim perl sub DoBrowseRequest { ... $id = &GetParam('keywords', ''); ############### ### pda clip by gypark $IsPDA = &GetParam("pda", ""); $EmbedWiki = 1 if ($IsPDA); ### ############### if ($id) { # Just script?PageName ... } elsif ($action eq 'rc') { ############### ### pda clip by gypark # &BrowsePage(T($RCName)); if ($IsPDA) { my $temp_id = T("$RCName"); print &GetHeader($temp_id, &QuoteHtml($temp_id), ""); &DoRc(); print $q->end_html; } else { &BrowsePage(T($RCName)); } ### ############### return 1; } elsif ($action eq 'random') { ... } }}} {{{#!vim perl sub DoRc { ... my $showbar = 0; ############### ### pda clip by gypark if ($IsPDA) { $daysago = &GetParam("days", 0); $daysago = 7 if ($daysago == 0); $starttime = $Now - ((24*60*60)*$daysago); print "
$SiteName : " . Ts('Updates in the last %s day' . (($daysago != 1)?"s":""), $daysago) . "
\n"; } else { ### ############### if (&GetParam("sincelastvisit", 0)) { ... # Translation of above line is identical to previous version } ############### ### pda clip by gypark } ### ############### # Read rclog data (and oldrclog data if needed) ($status, $fileData) = &ReadFile($RcFile); ... print '
(' . Ts('for %s only', &ScriptLink($idOnly, $idOnly)) . ')
'; } ############### ### pda clip by gypark if (!($IsPDA)) { ### ############### foreach $i (@RcDays) { print " | " if $showbar; ... Ts('currently set to %s', &TimeToText($bookmark)). ")
\n"; } ### ############### ############### ### pda clip by gypark } ### ############### # Later consider a binary search? $i = 0; ... } }}} {{{#!vim perl sub GetRcHtml { ... $inlist = 0; ############### ### replaced by gypark ### 최근 변경 내역을 테이블로 출력 ### from Jof4002's patch ### pda clip 기능 추가 # $html = ""; if ($IsPDA) { $html = ""; } else { $html = "
"; } ### ############### $all = &GetParam("rcall", 0); ... if ($inlist) { ############### ### commented by gypark ### 최근 변경 내역을 테이블로 출력 ### from Jof4002's patch ### pda clip 기능 추가 # $html .= "\n"; $html .= "\n" if ($IsPDA); ### ############### $inlist = 0; ... ############### ### replaced by gypark ### 최근변경내역에 북마크 기능 도입 ### 최근 변경 내역을 테이블로 출력 패치도 같이 적용 ### pda clip 기능 추가 # $html .= "
" . $date . "
\n"; if ($IsPDA) { $html .= "
" . $date . "
\n"; } else { $html .= "
". "
". "
" . $date . "
"; if ($bookmarkuser eq "") { $html .= "
\n"; } else { $html .= " [" .&ScriptLink("action=bookmark&time=$ts",T('set bookmark')) ."]" . "\n"; } } ### ############### } if (!$inlist) { ############### ### commented by gypark ### 최근 변경 내역을 테이블로 출력 ### from Jof4002's patch ### pda clip 기능 추가 # $html .= "
\n"; $html .= "
\n" if ($IsPDA); ### ############### $inlist = 1; } $host = &QuoteHtml($host); if (defined($extra{'name'}) && defined($extra{'id'})) { ############### ### pda clip by gypark # $author = &GetAuthorLink($host, $extra{'name'}, $extra{'id'}); if ($IsPDA) { $author = &GetPageLink($extra{'name'}); } else { $author = &GetAuthorLink($host, $extra{'name'}, $extra{'id'}); } ### ############### } else { $author = &GetAuthorLink($host, "", 0); } ... } ############### ### replaced by gypark ### 최근 변경 내역을 테이블로 출력 ### from Jof4002's patch ### pda clip 기능 추가 # $link .= &GetPageLink($pagename); # $html .= "
$link "; # # Later do new-RC looping here. # $html .= &CalcTime($ts) . " $count$edit" . " $sum"; # $html .= ". . . . . $author\n"; # Make dots optional? # } # $html .= "
\n" if ($inlist); if (!($IsPDA)) { $html .= "
" . "
" ### 관심 페이지 . ((defined ($UserInterest{$pagename}))?"$rcinterest":" ") . "
" . "
$link
" . "
" . &GetPageOrEditLink($pagename) . "
" . "
" . &CalcTime($ts) . "
" . "
$count$edit
" . "
$author
\n"; if ($sum ne "") { $html .= "
" . "
$sum
\n"; } } else { $link = &GetPageLink($pagename); $html .= "
$link ... "; # Later do new-RC looping here. $html .= &CalcTime($ts) . " - $author $sum\n"; } } if ($IsPDA) { $html .= "
\n"; } else { $html .= "
"; } ### ############### return $html; } }}} {{{#!vim perl sub GetPageLink { my ($id) = @_; ... $name =~ s/_/ /g; } ############### ### pda clip by gypark if ($IsPDA) { return &ScriptLink("action=browse&pda=1&id=$id", $name); } ### ############### return &ScriptLink($id, $name); } }}} {{{#!vim perl sub GetPageLinkText { my ($id, $name) = @_; ... } ############### ### pda clip by gypark if ($IsPDA) { return &ScriptLink("action=browse&pda=1&id=$id", $name); } ### ############### return &ScriptLink($id, $name); } }}} {{{#!vim perl sub GetHeader { ... $result .= &GetHtmlHeader("$SiteName: $title", $title); ############### ### pda clip by gypark if ($IsPDA) { $result .= "
$title
\n
"; } ### ############### return $result if ($embed); ... } }}} === Notes === ext1.50a - URL 에 days 인자를 주어 변경내역에서 출력할 날의 범위를 지정할 수 있게 함
---- [[위키위키분류]]
UseModWiki소스수정/PDA용클립
페이지로 돌아가기 |
다른 수정본 보기