[HOME]  [全部表示 会議室風]  [全部表示 保存用]  [HOME]  [リストへもどる] [リストへもどる]

一括表示


  掲示板のメンテナンス2 - konno 20/10/28-01:50 No.9867
 ┗ Re: 掲示板のメンテナンス2 - としき 20/10/29-19:29 No.9871
  ┗ Re^2: 掲示板のメンテナンス2 - konno 20/11/03-01:28 No.9877

(9867) 9867掲示板のメンテナンス2  投稿者:konno   2020/10/28(水) 01:50
   コメント数 1

掲示板のメンテナンスのツリーが長くなったので、別スレにします。

うちの場合、検索結果からリンク先番号をクリックすると、そのツリーの頭に飛びます。
普通はそうなるようですが、飛んだ後に、該当番号がどこだったか忘れて探してしまうので
直接そのツリーの該当番号に飛ばしたいと思って改造しました。

# 検索実行 #
sub search {

のルーチンの、以下の部分です。

if ($in{'pastlog'}) {
print "($oya) ";
# print " <a href=\"$script?mode=allread&no=$oya&pastlog=$in{'pastlog'}&act=past\">$no</a>: \n";
# print " <a href=\"$script?mode=allread&no=$oya#$no&pastlog=$in{'pastlog'}&act=past\">$no</a>: \n";
print " <a href=\"$script?mode=allread&pastlog=$in{'pastlog'}&act=past&no=$oya#$no\">$no</a>: \n";
} else {
print "($oya) ";
# print " <a href=\"$script?mode=allread&no=$oya\">$no</a>: \n";
print " <a href=\"$script?mode=allread&no=$oya#$no\">$no</a>: \n";
}

#でコメントにしてある行が変更前です。

&no=$oya の所を &no=$oya#$no

と変更することで、該当番号にジャンプできました。
ところが、何故か過去ログではツリーの頭にジャンプしてしまいます。

色々試行錯誤した結果、&no=$oya#$no を最後に持っていったらうまくいきました。
こういうこともあるんですね。


次の問題は、過去ログの一括表示から、「リストへもどる」リンクをクリックすると
過去ログの最終のログのツリー表示になるのが標準の動作だと思います。

私は、今見ていたログのツリーに戻ってほしいと思いました。
読んだ過去記事の前後でどんな話題をしていたか気になるからです。

# 一括表示 #
sub allread {

のルーチンの、最初と最後に、「リストへもどる」と言うリンクがありますが
この2か所を下記のように変更しました。

# [<a href="$script?page=$page&fsize=$fsize&mode=$in{'act'}">リストへもどる</a>]
if ($in{'pastlog'}) {
print "[<a href=\"$script?list=tree&mode=past&fsize=$fsize&pastlog=$in{'pastlog'}\">リストへもどる</a>]\n";
} else {
print "[<a href=\"$script?page=$page&fsize=$fsize&mode=$in{'act'}\">リストへもどる</a>]\n";
}

ところが、ジャンプ先で過去ログがオープンエラーと表示されます。そこで

# 過去ログ表示 #
sub past_view {
$fsize=$in{'fsize'};
# 追加--------
if ($in{'pastlog'}) {
$pastno = sprintf("%04d", $in{'pastlog'});
$in{'pastlog'} = $pastno;
}
# ここまで----
open(IN,"$nofile") || &error("Open Error: $nofile");

こう追加したら無事に今見ているログのツリー表示になりました。
が、この修正のせいか、現在ログツリー表示から過去ログリンクに飛ぶとエラーになります。

# リスト表示 #
sub list_view {

の中を

# print "[<a href=\"$script?mode=past&fsize=$fsize\">過去ログ</a>]\n" if ($pastkey);
print "[<a href=\"$script?mode=past&fsize=$fsize&pastlog=\">過去ログ</a>]\n" if ($pastkey);

こう変更したら直ったみたいです。

修正箇所を直ぐに忘れてしまうので、備忘録です。(^^;
ぶっつけ本番で修正したためエラー表示に遭遇した方ごめんなさい。m(__)m

      - No.9867 -    このTreeへ           [リストへもどる] pre

(9867) 9871Re: 掲示板のメンテナンス2  投稿者:としき   2020/10/29(木) 19:29
参照先:http://toshiki.la.coocan.jp/
    9867 番 konno さんへのコメント    コメント数 1

まさかkonnoさんがこの辺のことを知らなかったとは思っていませんでした。

> 色々試行錯誤した結果、&no=$oya#$no を最後に持っていったらうまくいきました。
> こういうこともあるんですね。

こういうこともある、ではなく、こういうことにしかならない、はず。
ブラウザがサーバに要求するURLって、#マークよりも左側だけなんです。
そして、#マークよりも右側だけを使って、ブラウザがジャンプの処理を行います。
つまり、URLの中に#マークが出てくると、そこから前と後ろですっぱり分かれて
しまうのですよ。
このあたりのURLの構造は、少なくともHTML3.0の時代にはすでに定まっていました。
つまり、HTMLの定義のようなものですから、それを知らない人がURLを出力する
スクリプトをいじるなんて、それこそ未定義のエラーになりそうな所業、かも。
にゃまさんのHTM_MAKE.DEFを使ってHTMLを書いていると、このあたりが経験的に
身についたりします。


ところで、過去ログがらみでもう一つお願いしたいこと。

> ところが、ジャンプ先で過去ログがオープンエラーと表示されます。そこで

おそらく、これと同様な方法で解決可能だと思うのですがね。
何かというと、フォントのサイズ。
一番最初の現行ログの画面で [-] とか[+] のリンクをクリックしてフォントの
サイズを変更しても、過去ログのリンクをクリックすると強制的に元に戻されて
しまいます。
このユーザーインターフェースの悪さ、何とかしていただけないでしょうか。
もちろん、かねて私が主張しているように、スクリプトの側でフォントサイズを
変更する機能をすべて除去する、という方法を採用していただいてもかまいません。
      - No.9871 -    このTreeへ    コメント元:9867 へ [リストへもどる] soft

(9867) 9877Re^2: 掲示板のメンテナンス2  投稿者:konno   2020/11/03(火) 01:28
    9871 番 としき さんへのコメント

> まさかkonnoさんがこの辺のことを知らなかったとは思っていませんでした。

はい、私はこういうことも知らない素人なんです。(^^;

> ブラウザがサーバに要求するURLって、#マークよりも左側だけなんです。
> そして、#マークよりも右側だけを使って、ブラウザがジャンプの処理を行います。
> つまり、URLの中に#マークが出てくると、そこから前と後ろですっぱり分かれて
> しまうのですよ。
> このあたりのURLの構造は、少なくともHTML3.0の時代にはすでに定まっていました。

なるほど、勉強になりました。m(__)m

> つまり、HTMLの定義のようなものですから、それを知らない人がURLを出力する
> スクリプトをいじるなんて、それこそ未定義のエラーになりそうな所業、かも。
> にゃまさんのHTM_MAKE.DEFを使ってHTMLを書いていると、このあたりが経験的に
> 身についたりします。

にゃまさんのHTM_MAKE.DEFは使っていませんでした。
今更ですが勉強してみたいです。

> 一番最初の現行ログの画面で [-] とか[+] のリンクをクリックしてフォントの
> サイズを変更しても、過去ログのリンクをクリックすると強制的に元に戻されて
> しまいます。
> このユーザーインターフェースの悪さ、何とかしていただけないでしょうか。
> もちろん、かねて私が主張しているように、スクリプトの側でフォントサイズを
> 変更する機能をすべて除去する、という方法を採用していただいてもかまいません。

うう、これを入れた当時はブラウザで手軽に変更しにくかったもので。
今となっては中途半端すぎる、黒歴史ですね。(^^;

今はブラウザで自由に変更できるので、そのうち削除します。(^^;


      - No.9877 -    このTreeへ    コメント元:9871 へ [リストへもどる] soft