トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/287

ページの作成や編集にはユーザ登録が必要です。

子Wiki一覧の表示における出力HTML

  • 投稿者: A_M
  • カテゴリ: 本体
  • 優先度: 普通
  • 状態: リリース済
  • 日時: 2006年07月30日 20時10分56秒

 内容

ul,li要素のネストが正しくマークアップされていないようでしたので修正するパッチを作成してみました。

  • li(List Item)として、ul(Unordered List)を持つのが正しい。
  • HTMLParserでは正しく表示するが、WikiListでは正しく表示していなかった。

 パッチ

--- WikiList_origin.pm	Sun Jul 30 19:54:22 2006
+++ WikiList.pm	Mon Jul 10 09:35:33 2006
@@ -52,20 +52,23 @@
 	
 	my $buf = "<ul>\n";
 	foreach my $item (@$list){
+		unless($config->{'hide_template'}==1 && $item eq "template"){
+		$buf .= "<li>";
+		}
 		if(ref($item) eq "ARRAY"){
+			$buf =~ s/(<\/li>\n<li>)$//g;
 			$buf .= $self->make_tree($farm,$item,"$path/$parent",$can_remove,$config);
 		} else {
 			if($config->{'hide_template'}==1 && $item eq "template"){
 				next;
 			}
-			$buf .= "<li><a href=\"".$farm->config('script_name')."$path/$item\">$item</a>";
+			$buf .= "<a href=\"".$farm->config('script_name')."$path/$item\">$item</a>";
 			if($can_remove){
-				$buf .= " [<a href=\"".$farm->config('script_name')."?action=REMOVE_WIKI&amp;path=".
-				        &Util::url_encode("$path/$item")."\">削除</a>]";
+				$buf .= " [<a href=\"".$farm->create_url({ action=>"REMOVE_WIKI",path=>"$path/$item" })."\">削除</a>]";
 			}
-			$buf .= "</li>\n";
-			$parent = $item;
 		}
+		$buf .= "</li>\n";
+		$parent = $item;
 	}
 	return $buf."</ul>\n";
 }

ディストリの出力

<ul>
<li>子Wiki1</li>
<li>子Wiki2</li>
  <ul>
  <li>孫Wiki2_1</li>
  <li>孫Wiki2_2</li>
  </ul>
<li>子Wiki3</li>
<li>子Wiki4</li>
</ul>

パッチ適用後の出力

<ul>
<li>子Wiki1</li>
<li>子Wiki2
  <ul>
  <li>孫Wiki2_1</li>
  <li>孫Wiki2_2</li>
  </ul>
  </li>
<li>子Wiki3</li>
<li>子Wiki4</li>
</ul>

この修正で、深い階層のFarm一覧でも、CSSによるデザインが正しく適用できるようになります。

 コメント

  • ちなみに、BugTrack-wiki/246で、却下になった内容と同じ報告です。解決策としてパッチの適用を提案させていただきますが、ソースは少々汚くなるかもしれません。 - A_M (2006年07月30日 20時23分07秒)
  • パッチの内容とは異なる修正ですが、WikiList.pmでのHTML出力を修正したものをCVSにコミットしました。 - たけぞう (2006年08月01日 01時30分52秒)
  • 3.6.3dev2でリリースしました。 - たけぞう (2007年09月22日 17時06分50秒)
お名前: コメント:
WikiList3_6_2.diff

最終更新時間:2007年09月22日 17時06分50秒