CGI サポートフォーラム

コメント返信ツリー表示一括表示リスト表示検索

質問をする前に、過去ログに同じ質問がないか検索してください。

←次の話題 前の話題→

■-リスト表示の順番を変えるには? - マー (01/13 20:13)
 └Re:リスト表示の順番を変えるには? - masaya (01/15 01:40)
  └Re[2]:リスト表示の順番を変えるには? - マー (01/15 17:05)
   └Re[3]:リスト表示の順番を変えるには? - masaya (01/16 00:14)
    └Re[4]:リスト表示の順番を変えるには? - マー (01/16 17:38)

■ リスト表示の順番を変えるには?
投稿者:マー さん  ( uid 27927, posts:1, since 2004/01/13 )
投稿日: 2004/01/13 (火) 20:13 No.371 | 編集 | 削除

はじめまして。EXIT改造版を利用させていただいてます。
表示も軽めでカテゴリ編集も楽で、とても気に入っています。
元制作者様が配布を停止されたようですが、改造版として配布を継続していただけて、本当に嬉しく思っております。お二方に感謝してます。

リスト表示について質問なのですが、
リストの順番を、できればメニューの表示の順番どおり、
Aカテゴリ-1サブカテゴリ
Aカテゴリ-2サブカテゴリー
Bカテゴリ-1サブカテゴリー
Bカテゴリ-2サブカテゴリー
Bカテゴリ-3サブカテゴリー…
というふうに表示させたいのですが、どうしたらいいでしょうか。
私のでは、カテゴリの順番が登録順でもないですし、カテゴリのNO順でもないのですが、何か規則性があるのでしょうか。

リンクページのレイアウトを多少変更する(右寄せにして、テーブル幅を変更。バナーとコメントの表示を逆に)際に、ファイルをいじりましたので、何かの加減でおかしくなっている可能性もあります。その場合は、あきらめます…。
ちなみに、リスト表示も右寄せにしようと、exit.cgiのLIST表示部分の8行目にあるtableタグの前に、多分ココだろう!と<div align="right">を入れてみたのですが、エラーが出て慌てて直しました。
これは何か方法がありますでしょうか。

質問攻めで恐縮です。
ご回答いただけたら幸いです。

[ この記事にコメントを返信する ] [ 原文引用 ]

Re:リスト表示の順番を変えるには?
投稿者:masaya さん  ( uid 21158, posts:5, since 2004/01/06 )
投稿日: 2004/01/15 (木) 01:40 No.374 | 編集 | 削除

記事No.371 へのコメントです。

>元制作者様が配布を停止されたようですが、改造版として配布を継続していただけて、本当に嬉しく思っております。お二方に感謝してます。

もともと、EXITの登録機能が使いにくかったので、自分用に改造したものを配布していただけなので、急にユーザが増えてびっくりするやらうれしいやらです。(^^;
# Cubixさんが、サイトを縮小したのも知らなかったし・・・。


>リスト表示について質問なのですが、
>リストの順番を、できればメニューの表示の順番どおり、
>Aカテゴリ-1サブカテゴリ
>Aカテゴリ-2サブカテゴリー
>Bカテゴリ-1サブカテゴリー
>Bカテゴリ-2サブカテゴリー
>Bカテゴリ-3サブカテゴリー…
>というふうに表示させたいのですが、どうしたらいいでしょうか。

LIST表示ルーチンを以下のように改造すると、ご希望の動作になります。
ただ、全カテゴリ・サブカテゴリ・データに対して、並び換え処理をするので処理が遅くなってしまいます。
登録件数・サーバのキャパによっては、使うか決めてください。

exit.cgi 439行目以降

##-->LIST表示

sub list {
my ($tmp_catid, $tmp_subid, $catdata, $subdata, $linkdata, $tmp, $time);
my (@tmp_sub);

&LoadCategory;
&LoadSubCategory;
&LoadLink;

&head;
$html .= "<br><table width=400 border=0 cellspacing=0 cellpadding=0>\n<tr><td>\n";

foreach $tmp_catid (keys %category) {
$catdata = &GetCategory ($tmp_catid);
$tmp_list{$catdata->{'group'}."_".$catdata->{'catname'}."_".$tmp_catid} = $tmp_catid;
}

foreach (sort keys %tmp_list) {
$catdata = &GetCategory ($tmp_list{$_});
$html .= &PageHeader ($catdata->{'catname'});

foreach $tmp_subid (keys %subcategory) {
$subdata = &GetSubCategory ($tmp_subid);
$tmp_sublist{$subdata->{'group'}."_".$subdata->{'subname'}."_".$tmp_subid} = $tmp_subid;
}

foreach (sort keys %tmp_sublist) {
$subdata = &GetSubCategory ($tmp_sublist{$_});
if ($subdata->{'catid'} eq $catdata->{'catid'}) {
# $html .= "<a href=\"$script?mode=text&\" class=\"menu\"><img src=\"$imgdir/$dot_open\" border=0> $subdata->{'subname'}</a><br>\n";
$html .= "<img src=\"$imgdir/$dot_open\" border=0 class=\"menu\" class=\"menu\"> $subdata->{'subname'}<br>\n";

foreach $tmp_id (sort {$a <=> $b} keys %link) {
$linkdata = &GetLink($tmp_id);
@tmp_sub = split (":", $linkdata->{'subid'});
foreach $tmp (@tmp_sub) {
if ($tmp eq $subdata->{'subid'}) {
$html .= " <a href=\"$linkdata->{'url'}\" $target class=\"listhost\"><img src=\"$imgdir/$dot_image\" border=0> $linkdata->{'sitename'}</a>";
if ($linkdata->{'master'}) { $html .= ": <span class=\"listmaster\">MASTER:$linkdata->{'master'} $keisho</span>";}
$html .= "<a href=\"$script?mode=vew&id=$linkdata->{'id'}\"><img src=\"$imgdir/data.$ext\" width=30 height=9 border=0></a>";
$time=time();
if ($time <= $linkdata->{'time'}+(60*60*24*$newd)) { $html .= "<img src=\"$imgdir/new.$ext\" width=25 height=9>"; }
$html .= "<br>\n";
}
}
}
$html .= "<img src=\"$imgdir/line2.$ext\" width=400 height=5><br>\n";
}
}
}
$html .= "<br>\n<div><img src=\"$imgdir/line.$ext\" width=400 height=5></div>\n<span class=\"ss\">□タイトルをクリックするとサイトのURLにジャンプします.<br>□<img src=\"$imgdir/data.$ext\" width=30 height=9 border=0 align=middle>をクリックするとそのサイトの詳細が見られます.</span>\n</td></tr>\n</table>\n";
&foot;
}

リンクデータの表示順番が逆なら、
foreach $tmp_id (sort {$a <=> $b} keys %link) {
の部分を
foreach $tmp_id (sort {$b <=> $a} keys %link) {
と変えてくださいね。


>私のでは、カテゴリの順番が登録順でもないですし、カテゴリのNO順でもないのですが、何か規則性があるのでしょうか。

サブカテゴリの名前順になっています。
LIST表示って、あまりつかわないので、もとのままあんまりいじってないんですよ。


>ちなみに、リスト表示も右寄せにしようと、exit.cgiのLIST表示部分の8行目にあるtableタグの前に、多分ココだろう!と<div align="right">を入れてみたのですが、エラーが出て慌てて直しました。
>これは何か方法がありますでしょうか。

そこでOKですよ。
<div align="right">ではなくて、<div align=\"right\">と入れてみてください。

[ この記事にコメントを返信する ] [ 原文引用 ]

Re[2]:リスト表示の順番を変えるには?
投稿者:マー さん  ( uid 27927, posts:1, since 2004/01/15 )
投稿日: 2004/01/15 (木) 17:05 No.379 | 編集 | 削除

記事No.374 へのコメントです。

ご回答ありがとうございました。
早速LIST表示以下の部分を消して、ご指定のタグをコピペして試してみましたところ、カテゴリの並び順が希望どおりになりました!
私のリンクデータは70くらいなので、表示はそんなにストレスにならない程度でした。

ただ、表示なんですが、
ページの冒頭に何故か< /tr>が表示されてしまうのです。
気になるので今は元に戻しておりますが、これはどうしたら消せますか?
ブラウザからソースを見たら、どうも</tr>が1つ抜けているようなのですが、CGIのどこにタグを付け加えたらいいのか、私には判断できなくて…。

それから、テーブル全体が左寄せなのは、まだ<div align=\"right\">を入れてないので当然なのですが、
中のリンクデータ部分だけが右寄せに変わっていたのです。
(バナーありの表示を左寄せにするために、mylib.plをいじったのがコチラにも影響しているのでしょうか。)
これは左寄せにできますか?

質問は、「冒頭の</tr>の消去」と「リンクデータを左寄せに戻す」の2点です。

CGIの勉強をしていない者がレイアウトをいじろうとしたのが祟ってしましまったようです。自力解決できないのが申し訳ないです。

[ この記事にコメントを返信する ] [ 原文引用 ]

Re[3]:リスト表示の順番を変えるには?
投稿者:masaya さん  ( uid 21158, posts:10, since 2004/01/06 )
投稿日: 2004/01/16 (金) 00:14 No.384 | 編集 | 削除

記事No.379 へのコメントです。

>ただ、表示なんですが、
>ページの冒頭に何故か< /tr>が表示されてしまうのです。
>気になるので今は元に戻しておりますが、これはどうしたら消せますか?

私のほうでは、出ていないのですよ。
実際に見てみないとなんともいえません。設置先おしえてもらえますか?

>それから、テーブル全体が左寄せなのは、まだ<div align=\"right\">を入れてないので当然なのですが、
>中のリンクデータ部分だけが右寄せに変わっていたのです。
>(バナーありの表示を左寄せにするために、mylib.plをいじったのがコチラにも影響しているのでしょうか。)
>これは左寄せにできますか?

ん〜と。。
変更したところを元に戻してとしか・・・。(^^;

ただ、LIST表示は exit.cgi のリスト表示ルーチンで全体をひとつのテーブルに入れていますので、そのテーブルタグに align="right" など指定していないですか?


>CGIの勉強をしていない者がレイアウトをいじろうとしたのが祟ってしましまったようです。自力解決できないのが申し訳ないです。

いえいえ。「とりあえず、自分でやってみる」のは大切だと思います。
ただ、少しずつ変更して、最後にうまくいったファイルは残すようにしておくと、失敗したときのリカバリーが楽ですよ。

[ この記事にコメントを返信する ] [ 原文引用 ]

Re[4]:リスト表示の順番を変えるには?
投稿者:マー さん  ( uid 27927, posts:3, since 2004/01/13 )
投稿日: 2004/01/16 (金) 17:38 No.385 | 編集 | 削除

記事No.384 へのコメントです。

ご面倒おかけしております。
>私のほうでは、出ていないのですよ。
それを伺って、テストで別フォルダにアップし直してみたら(上URL)、今度は大丈夫でした。
1回コピペを失敗して、その後、一応何度もやり直して試したんですけど、もしかしたらブラウザの更新が上手くできなかったのかなあと…。
成功した方のテストファイルを元の方に上書きしたところ、今きれいに表示されています。
本当にすみません。ありがとうございました。

>LIST表示は exit.cgi のリスト表示ルーチンで全体をひとつのテーブルに入れていますので、そのテーブルタグに align="right" など指定していないですか?
mylib.plの表示の、フッターの下のところにある、

sub PageHeader {
my ($title) = @_ ;
return <<_HTML_;
<br>
※ココ※
<table width="400" cellpadding=0 cellspacing=0 border=0>

にdivタグでいれてました。
前に使っていたCGIが右寄せだったので、ついそのままの見た目に拘ってしまったのですが、いざリンクデータ登録した状態で左寄せで見たら、見やすいのでこれでイイではないか!という結論に。
過去に拘ってしまったせいでお騒がせして申し訳ありません…。

サポートしていただいてありがとうございました。
末永く愛用させていただきます!

[ この記事にコメントを返信する ] [ 原文引用 ]

←次の話題 前の話題→

- TOP -

管理者:webmaster
NICOLE's - WWWForum 3.7c  Modified by masaya
Catch: Sat May 18 15:56:36 2024
[jcode.pl:679:warn] defined(%hash) is deprecated at lib/jcode.pl line 679.
[jcode.pl:679:warn] (Maybe you should just omit the defined()?)
[jcode.pl:688:warn] defined(%hash) is deprecated at lib/jcode.pl line 688.
[jcode.pl:688:warn] (Maybe you should just omit the defined()?)

/wwwforum/wwwforum.cgi?id=11&az=thread&number=371 with Perl 5.016003 for freebsd