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

  • ページ: BugTrack2
  • 投稿者: g@kko
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2007-07-21 (土) 08:19:24
  • バージョン: attach.inc.php,v 1.82
  • リリース予定バージョン: 1.5.2

メッセージ

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

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

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

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

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


問題と思われる現象

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

現状の動作

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

修正の方向性

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

  • 凍結ページでは、「凍結解除のリンク」,「添付ファイル一覧へのリンク」,「全ページの添付ファイル一覧」へのリンクを表示する。
  • $canteditページでは、編集できない旨のメッセージと「全ページの添付ファイル一覧」を表示する。

提案内容

  • 凍結ページの対応
    • 「添付ファイル一覧」,「全ページの添付ファイル一覧」のリンクと、凍結解除のリンクを表示
      • 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);
		}
	}

コメント

  • 対応しました。アップロードフォームを表示せず「編集できません」のメッセージを表示します。 commit:1176de8e9a -- umorigu 2017-10-25 (水) 02:13:33


*1 RecentChanges,RecentDeleted

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

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.172 sec.

OSDN