差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行はこのように表示します。
[[IndexPage]]をツリー表示させます。
[[外部参考リンク http://www2u.biglobe.ne.jp/~fsasaki/WikiFan/wiki.cgi?WalWiki%a5%ab%a5%b9%a5%bf%a5%de%a5%a4%a5%ba%2f%a5%da%a1%bc%a5%b8%b0%ec%cd%f7%a4%f2%a5%c4%a5%ea%a1%bc%c9%bd%bc%a8%b2%bd%a4%b9%a4%eb]]
*do_index()内の変更
--2003-06-11 (Wed) 21:34:11 wal.4.3対応に差し替え&微妙に修正
sub do_index {
&print_header($IndexPage);
print qq(<ul>);
my $level = 0; # yakty add [tree index]
my $prev; # yakty add [tree index]
my @pages = ($sort_case_sense) ? (sort keys(%database)) : sort {lc($a) cmp lc($b)} keys(%database); # Walrus add [sort case sense]
foreach my $page (@pages) { # Walrus add [sort case sense]
# foreach my $page (sort keys %database) { # Walrus del [sort case sense]
if (&is_editable($page)) {
# yakty add [tree index] start
my @category = $page =~ /(.*?)\//g;
my $cnt = $#category + 1;
my $parent = $category[0];
if($prev eq $category[0]){
for(my $i=$level; $i>$cnt; $i--){
print qq(</ul>);
}
} else {
for(my $i=$level; $i>0; $i--){
print qq(</ul>);
}
$level = 0;
}
for(my $i=$level; $i<$cnt; $i++){
for(my $j=1; $j<=$i; $j++){
$parent .= "/" . $category[$j];
}
if(not exists $database{$parent}){
print qq(<li>@{[&make_link($parent)]}</li>);
}
print qq(<ul>);
}
$level = $cnt;
$prev = $category[0];
my $linkname = &escape($page);
$linkname =~ s/^$parent\///;
print qq(<li><a href="$url_cgi?@{[&encode($page)]}" title="@{[&escape($page)]}">$linkname</a>@{[&get_subjectline($page)]}</li>);
# yakty add [tree index] end
# print qq(<li><a href="$url_cgi?@{[&encode($page)]}">@{[&escape($page)]}</a>@{[&escape(&get_subjectline($page))]}</li>); # yakty dell [tree index]
# print qq(<li>@{[&get_info($page, $info_IsFrozen)]}</li>);
# print qq(<li>@{[0 + &is_frozen($page)]}</li>);
}
}
# yakty add [tree index] start
if($level > 0){
for(my $i=$level; $i>0; $i--){
print qq(</ul>);
}
}
# yakty add [tree index] end
print qq(</ul>);
&print_footer($IndexPage);
# The following code is for debugging...
# print "<h1>FOR DEBUG</h1>";
# print "<pre>";
# foreach my $page (sort keys %database) {
# print qq(<a href="$url_cgi?@{[&encode($page)]}">$page</a>\n);
# }
# print "</pre>";
}
*バグ修正(?)版
sub do_index {
&print_header($IndexPage);
print qq(<ul>);
my $level = 0; # yakty add [tree index]
# my $prev; # yakty add [tree index] #bugfix del
my @prev; # yakty add [tree index] #bugfix add
my @pages = ($sort_case_sense) ? (sort keys(%database)) : sort {lc($a) cmp lc($b)} keys(%database); # Walrus add [sort case sense]
foreach my $page (@pages) { # Walrus add [sort case sense]
# foreach my $page (sort keys %database) { # Walrus del [sort case sense]
if (&is_editable($page)) {
# yakty add [tree index] start
my @category = $page =~ /(.*?)\//g;
my $cnt = $#category + 1;
my $parent = $category[0];
my $common_level; #bugfix add
#bugfix add start
for(my $i=0; $i <= (($level<$cnt) ? $level : $cnt); $i++){
if(@prev[$i] ne @category[$i]){
$common_level=$i;
last;
}
}
if(defined($common_level)){
for (my $i=$level; $i>$common_level; $i--){
print qq(</ul>\n);
}
}
#bugfix add end
#bugfix del start
# if($prev eq $category[0]){
# for(my $i=$level; $i>$cnt; $i--){
# print qq(</ul>);
# }
# } else {
# for(my $i=$level; $i>0; $i--){
# print qq(</ul>);
# }
# $level = 0;
# }
#bugfix del end
if(defined($common_level)){ #bugfix add
# for(my $i=$level; $i<$cnt; $i++){ #bugfix del
for(my $i=$common_level; $i<$cnt; $i++){ #bugfix add
for(my $j=1; $j<=$i; $j++){
$parent .= "/" . $category[$j];
}
if(not exists $database{$parent}){
# print qq(<li>@{[&make_link($temp)]}</li>\n); #bugfix del
print qq(<li>@{[&make_link(&armor_name($temp . " " . $parent))]}</li>\n); #bugfix del
}
print qq(<ul>);
}
} #bugfix add
$level = $cnt;
$prev = $category[0]; #bugfix del
@prev = @category; #bugfix add
my $linkname = &escape($page);
$linkname =~ s/^$parent\///;
print qq(<li><a href="$url_cgi?@{[&encode($page)]}" title="@{[&escape($page)]}">$linkname</a>@{[&get_subjectline($page)]}</li>);
# yakty add [tree index] end
# print qq(<li><a href="$url_cgi?@{[&encode($page)]}">@{[&escape($page)]}</a>@{[&escape(&get_subjectline($page))]}</li>); # yakty dell [tree index]
# print qq(<li>@{[&get_info($page, $info_IsFrozen)]}</li>);
# print qq(<li>@{[0 + &is_frozen($page)]}</li>);
}
}
# yakty add [tree index] start
if($level > 0){
for(my $i=$level; $i>0; $i--){
print qq(</ul>);
}
}
# yakty add [tree index] end
print qq(</ul>);
&print_footer($IndexPage);
# The following code is for debugging...
# print "<h1>FOR DEBUG</h1>";
# print "<pre>";
# foreach my $page (sort keys %database) {
# print qq(<a href="$url_cgi?@{[&encode($page)]}">$page</a>\n);
# }
# print "</pre>";
}
**修正内容
-a?
--a1
--a2
-b?
--b1
---b1A
--b2?
---b2A
---b2B
--b3
---1
-c
というようなページ構成でも、正しく表示します。
また、未作成のカテゴリのリンク先が正しくなかったのを修正。
03283