凍結ページでのattachの画面遷移について

メッセージ

凍結したページで添付を行うと

  1. アップロードフォームの表示
  2. アップロードボタンを押下
  3. (ページ名)は編集できません(凍結解除)

と遷移しますが、凍結ページであれば

  1. (ページ名)は編集できません(凍結解除)

を最初に出すべきではないでしょうか?


問題と思われる現象

添付が出来ない旨のメッセージを表示するタイミングが、アップロードフォームで「アップロード」を押下した後のタイミングであること。 凍結ページであれば、凍結解除を行い、再度、アップロードフォームより、ファイルの選択からアップロードボタン押下の操作をしないといけないため、ユーザに優しくない。

現状の動作

  1. 一覧へのリンク、アップロードフォームの表示
    • [添付ファイル一覧] [全ページの添付ファイル一覧] の表示
    • アップロードフォームの表示
  2. ファイル選択、アップロードボタン押下
  3. エラーメッセージ
    • (ページ名)は編集できません
  1. 一覧へのリンク、アップロードフォームの表示
    • [添付ファイル一覧] [全ページの添付ファイル一覧] の表示
    • アップロードフォームの表示
  2. ファイル選択、アップロードボタン押下
  3. エラーメッセージ
    • (ページ名)は編集できません(凍結解除) -- 凍結解除のリンク

修正の方向性

アップロードフォームを出力する時点で、対象ページが凍結ページなのか、$canteditなのか判定ができるため、

提案内容

 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');
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);
		}
	}

コメント



*1 RecentChanges,RecentDeleted

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-25 (水) 02:13:33
Site admin: PukiWiki Development Team

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

SourceForge