#author("2017-10-25T02:12:47+09:00","","") #author("2017-10-25T02:13:33+09:00","","") * 凍結ページでのattachの画面遷移について [#a92a6fe5] - ページ: [[BugTrack2]] - 投稿者: [[g@kko]] - 優先順位: 普通 - 状態: 完了 - カテゴリー: プラグイン - 投稿日: 2007-07-21 (土) 08:19:24 - バージョン: attach.inc.php,v 1.82 - リリース予定バージョン: 1.5.2 #contents ** メッセージ [#bf5e53be] 凍結したページで添付を行うと +アップロードフォームの表示 +アップロードボタンを押下 +(ページ名)は編集できません(凍結解除) と遷移しますが、凍結ページであれば +(ページ名)は編集できません(凍結解除) を最初に出すべきではないでしょうか? -------- ***問題と思われる現象 [#h029dbfb] 添付が出来ない旨のメッセージを表示するタイミングが、アップロードフォームで「アップロード」を押下した後のタイミングであること。 凍結ページであれば、凍結解除を行い、再度、アップロードフォームより、ファイルの選択からアップロードボタン押下の操作をしないといけないため、ユーザに優しくない。 現状の動作 -$cantedit対象ページ((RecentChanges,RecentDeleted))での動作 --関連: [[BugTrack2/255]] $cantedit 関係のまとめ +一覧へのリンク、アップロードフォームの表示 --[添付ファイル一覧] [全ページの添付ファイル一覧] の表示 --アップロードフォームの表示 +ファイル選択、アップロードボタン押下 +エラーメッセージ --(ページ名)は編集できません -凍結ページでの動作 +一覧へのリンク、アップロードフォームの表示 --[添付ファイル一覧] [全ページの添付ファイル一覧] の表示 --アップロードフォームの表示 +ファイル選択、アップロードボタン押下 +エラーメッセージ --(ページ名)は編集できません(凍結解除) -- 凍結解除のリンク ***修正の方向性 [#u9c169f5] アップロードフォームを出力する時点で、対象ページが凍結ページなのか、$canteditなのか判定ができるため、 -凍結ページでは、「凍結解除のリンク」,「添付ファイル一覧へのリンク」,「全ページの添付ファイル一覧」へのリンクを表示する。 -$canteditページでは、編集できない旨のメッセージと「全ページの添付ファイル一覧」を表示する。 ***提案内容 [#y1152004] -凍結ページの対応 --「添付ファイル一覧」,「全ページの添付ファイル一覧」のリンクと、凍結解除のリンクを表示 ---lib/html.phpにmake_unfreezelinkを新規に作って、lib/auth.phpのcheck_editable等と共通化しても良いかも。 function attach_form($page) { - global $script, $vars, $_attach_messages; + global $script, $vars, $_attach_messages, $_title_cannotedit, $_msg_unfreeze; $r_page = rawurlencode($page); $s_page = htmlspecialchars($page); $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; if (! ini_get('file_uploads')) return '#attach(): file_uploads disabled<br />' . $navi; if (! is_page($page)) return '#attach(): No such page<br />' . $navi; + if (is_freeze($page)) return $navi .'<p>'.str_replace('$1', make_search($page), $_title_cannotedit). + '(<a href="' . $script . '?cmd=unfreeze&page=' . + rawurlencode($page) . '">' . $_msg_unfreeze . '</a>)</p>'; $maxsize = PLUGIN_ATTACH_MAX_FILESIZE; $msg_maxsize = sprintf($_attach_messages['msg_maxsize'], number_format($maxsize/1024) . 'KB'); -$canteditの対応 --「全ページの添付ファイル一覧」だけを表示するには、attach_form内の$naviを分割する必要があるため、手入れが大きくなる。 --だったら、$canteditの場合は、「全ページの添付ファイル一覧」を表示してしまおう。と、いう対応になっています。 line 79- function plugin_attach_action() { global $vars, $_attach_messages; // Backward compatible if (isset($vars['openfile'])) { $vars['file'] = $vars['openfile']; $vars['pcmd'] = 'open'; } if (isset($vars['delfile'])) { $vars['file'] = $vars['delfile']; $vars['pcmd'] = 'delete'; } $pcmd = isset($vars['pcmd']) ? $vars['pcmd'] : ''; $refer = isset($vars['refer']) ? $vars['refer'] : ''; $pass = isset($vars['pass']) ? $vars['pass'] : NULL; $page = isset($vars['page']) ? $vars['page'] : ''; + + if ($page !='' && is_cantedit($page)) $pcmd = 'list'; if ($refer != '' && is_pagename($refer)) { if(in_array($pcmd, array('info', 'open', 'list'))) { check_readable($refer); } else { check_editable($refer); } } ---- **コメント [#rcaa293d] - 対応しました。アップロードフォームを表示せず「編集できません」のメッセージを表示します。 commit:1176de8e9a -- [[umorigu]] &new{2017-10-25 (水) 02:13:33}; #comment