ls2プラグインでのリスト出力の階層調整を… †
- ページ: BugTrack
- 投稿者: reimy
- 優先順位: 普通
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2003-03-12 (水) 01:16:24
- バージョン:
メッセージ †
<h1>から始まらないページの場合、左マージンが大きくなりすぎる。
ls2プラグインのリスト出力も#contentsのように、<h1>から始まらない場合の階層の左マージンの調整をしてほしい。
- (例)
- れいみぃ:FrontPageニュース一覧
各記事のタイトルの左マージンが大きくなり過ぎ。
- これが
***3
*1
***3
**2
***3
こんな風になればいいということですか? -- ぱんだ 2003-03-29 (土) 11:18:25
・test/1
・3
・1
・3
・2
・3
- 悪評高い :) $_list_pad_strを空にすれば、とりあえず上記の動作になります。 -- ぱんだ 2003-03-29 (土) 14:33:35
- 極端な例で言えばそうなりますが。#contentsと同じように。 -- reimy 2003-03-29 (土) 14:33:40
- こんな感じでしょうか。 -- ぱんだ 2003-03-29 (土) 14:53:33
function ls2_list_push(&$params,$level)
{
- global $_ul_left_margin, $_ul_margin, $_list_pad_str;
+ global $_ul_left_margin, $_ul_margin;
+ $_list_pad_str = ' class="list%d"';
- #contentsでは以下のようになります。なんでだろ。 -- ぱんだ 2003-03-29 (土) 14:39:17
・3
・1
・3 <- ??
・2
・3
- 上のパッチを当ててみましたが、パッチを当てる前とまったく変化がありません。れいみぃ:FrontPageニュース一覧 -- reimy 2003-03-29 (土) 17:22:29
- default.cssでulのmargin-left:32px;padding-left:32pxが効いてしまっているからかと。 -- ぱんだ 2003-03-29 (土) 20:55:20
- <ul class="list1">の次の階層を<ul class="list4">と出力してるのがまずいです。これって常にlist4になるのかな? -- reimy 2003-03-29 (土) 21:36:26
- えーと。1+'見出しの*の数'になります。 -- ぱんだ 2003-03-29 (土) 22:15:25
- ls2_list_push()を
function ls2_list_push(&$params,$level)
{
- global $_ul_left_margin, $_ul_margin;
- $_list_pad_str = ' class="list%d"';
+ global $_ul_left_margin, $_ul_margin, $_list_pad_str;
- $margin = $level - count($saved);
+ $margin = 1;
- while (count($saved) < ($level - 1)) {
- array_unshift($saved, ''); //count($saved)を増やすためのdummy
- }
- $str = sprintf($_list_pad_str, $level, $left, $left);
+ $str = sprintf($_list_pad_str, count($saved), $left, $left);
としてみてください。 -- ぱんだ 2003-03-29 (土) 22:26:03
- それだと同レベルの階層が1→2→3になってしまいます。 -- reimy 2003-03-29 (土) 22:37:06
正しくは
・FrontPageニュース/2003-03
* NTT西日本のトラブルに伴う更新作業の遅延
* 受信メールサーバー緊急メンテナンスのお知らせ
* 恒例・春の高校野球トトカルチョ実施中
* 20日昼過ぎから一時的に接続障害が発生
のものが
・FrontPageニュース/2003-03
* NTT西日本のトラブルに伴う更新作業の遅延
o 受信メールサーバー緊急メンテナンスのお知らせ
+ 恒例・春の高校野球トトカルチョ実施中
+ 20日昼過ぎから一時的に接続障害が発生
になります。
- あ…そうですね。 -- ぱんだ 2003-03-29 (土) 23:16:38
- 上の修正を取り消して、
if (count($saved) < $level)
{
$cont = FALSE;
array_unshift($saved, $close);
+ // 修正レベル
+ $_level = $level - $margin + 1;
+ // マージンを固定
+ $margin = 1;
$left = $margin * $_ul_margin;
if ($level == $margin)
{
$left += $_ul_left_margin;
}
- $str = sprintf($_list_pad_str, $level, $left, $left);
+ $str = sprintf($_list_pad_str, $_level, $left, $left);
ではどうでしょうか。 -- ぱんだ 2003-03-29 (土) 23:29:59
- バッチリです(heart) -- reimy 2003-03-29 (土) 23:53:10
- cvsに投入しました。cvs:plugin/ls2.inc.php(v1.4:r1.10) -- ぱんだ 2003-03-31 (月) 00:20:51
- LS2_LIST_COMPACT定数およびcompactパラメータを追加しました。デフォルトでレベル調整を行う場合はLS2_LIST_COMPACTをTRUEに、その場その場で切り替える場合は調整を行う場合にcompactを指定するようにしてください。 -- ぱんだ 2003-03-31 (月) 00:27:44