#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&amp;pcmd=list&amp;refer=$r_page">{$_attach_messages['msg_list']}</a>]
    [<a href="$script?plugin=attach&amp;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&amp;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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.076 sec.

SourceForge