#author("2022-12-29T23:04:05+09:00","","") * attach.inc.php: 添付>[添付ファイル一覧] ページでタイトルがtopicpathにならない [#j51f84f8] - ページ: [[BugTrack]] - 投稿者: [[ぬぺぺ]] - 優先順位: 低 - 状態: 提案 - カテゴリー: 本体バグ - 投稿日: 2022-12-29 (木) 20:40:21 - バージョン: 1.5.4 ** メッセージ [#b893088d] 添付>[添付ファイル一覧] ページでタイトルのリンクがtopicpathにならず、普通のリンクになります。 参考:ここの該当ページ~ https://pukiwiki.osdn.jp/dev/?plugin=attach&pcmd=list&refer=BugTrack%2F2593 ***原因 [#rd836b13] 簡単にまとめると、 + plugin_attach_action()で返されたページタイトル($retvar['msg'])が"$1"を含んでいると、pukiwiki.php中で"$1"はBacklinkページへのリンクに変換される (1) + ページ受信後、DOMに .page-name なエレメントが存在しないとmain.jsによるBacklinkへの変換がされない (2) + GETで page=** が渡されるとその値がそのまま input.page-name に設定される (3) の前提条件の上で、 +$_attach_messages['msg_listpage'] がページタイトルに"$1"を含んでいる (4) +添付ファイル一覧ページへのリンクのURLが''page=**を含んでいない'' (5-1, 5-2) のが原因っぽい感じです。 ***該当コード [#d5bedf4d] (1) pukiwiki.php L86らへん $title = htmlsc(strip_bracket($base)); $page = make_search($base); if (isset($retvars['msg']) && $retvars['msg'] != '') { $title = str_replace('$1', $title, $retvars['msg']); $page = str_replace('$1', $page, $retvars['msg']); } (2) main.js L571らへん function makeTopicpathTitle () { // : // 略 // : var pageNameE = sitePropE.querySelector('.page-name') if (!pageNameE || !pageNameE.value) return (3) html.php L261 // Page name $h_page_name = htmlsc($page); $page_name_data = <<<EOS <input type="hidden" class="page-name" value="$h_page_name" /> EOS; (4) ja.lng.php L155 $_attach_messages = array( // : // 略 // : 'msg_upload' => '$1 への添付', // : ); ***修正案 [#n27fc88c] (5-1) attach.inc.php > attach_form(): 修正前 $navi = <<<EOD <span class="small"> [<a href="$script?plugin=attach&pcmd=list&refer=$r_page">{$_attach_messages['msg_list']}</a>] [<a href="$script?plugin=attach&pcmd=list">{$_attach_messages['msg_listall']}</a>] </span><br /> EOD; (5-1) 修正後(GETでpageも渡すように) $navi = <<<EOD <span class="small"> [<a href="$script?plugin=attach&pcmd=list&refer=$r_page&page=$r_page">{$_attach_messages['msg_list']}</a>] [<a href="$script?plugin=attach&pcmd=list">{$_attach_messages['msg_listall']}</a>] </span><br /> EOD; ---- (5-2) attach.inc.php > AttachFile::info(): 修正前 $retval['body'] = <<< EOD <p class="small"> [<a href="$script?plugin=attach&pcmd=list&refer=$r_page">{$_attach_messages['msg_list']}</a>] [<a href="$script?plugin=attach&pcmd=list">{$_attach_messages['msg_listall']}</a>] </p> (5-2) 修正後(同上) $retval['body'] = <<< EOD <p class="small"> [<a href="$script?plugin=attach&pcmd=list&refer=$r_page&page=$r_page">{$_attach_messages['msg_list']}</a>] [<a href="$script?plugin=attach&pcmd=list">{$_attach_messages['msg_listall']}</a>] </p> ---- URLでpageを指定することでちゃんとtopicpathになることを確認しました。~ https://pukiwiki.osdn.jp/dev/?plugin=attach&pcmd=list&refer=BugTrack%2F2593&page=BugTrack%2F2593 page=**の追加によって編集や差分等のリンクも増えますが、特に問題ないと思います。 長いページ名のときに長さが倍になりますが、人間の目に触れやすいだったりURLをコピーされるようなページでもないですし、QUERY_STRING_MAXほどは行かないのでそっちも問題ないんじゃないでしょうか。 referも外しちゃって [<a href="$script?plugin=attach&pcmd=list&page=$r_page">{$_attach_messages['msg_list']}</a>] とやりたいですが、その場合はソースコードの修正箇所が増えます。 -------- - というか、pageとreferの違いが全然わかりません…。 -- [[ぬぺぺ]] &new{2022-12-29 (木) 21:16:23}; - pcommentのpageとreferはわかるのですが、attachやrefでpageではなくreferになっている意味がナゾです。どこかに書いてあったりするんでしょうか。 -- [[ぬぺぺ]] &new{2022-12-29 (木) 23:04:05}; #comment