今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル 掲示板のメンテナンス2
投稿日: 2020/10/28(水) 01:50
投稿者konno
 番 号 9867       コメント数 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 一括表示へ   -              [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
 掲示板のメンテナンス2 - konno 20/10/28-01:50
  ┗9871.Re: 掲示板のメンテナンス2 - としき 20/10/29-19:29
   ┗9877.Re^2: 掲示板のメンテナンス2 - konno 20/11/03-01:28

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]