../

plugin/paint.inc.php

PukiWiki 1.4.5 以降に同梱されている、r1.18 基準に書いてあります

  • 編集が制限されているページへの投稿を禁止したい場合
    • 編集を制限していない凍結ページへの投稿は、これまで通り認める場合
      • 75行目のあたり
         		if (!exist_plugin('attach') or !function_exists('attach_upload'))
         		{
         			return array('msg'=>'attach.inc.php not found or not correct version.');
         		}
         
        +		edit_auth($vars['refer'], true, true);
        +
         		$retval = attach_upload($file,$vars['refer'],TRUE);
         		if ($retval['result'] == TRUE)
         		{
         			$retval = paint_insert_ref($file['name']);
         		}
         	}
         	else
    • 凍結しているページへの投稿受付も禁止したい場合
      • 75行目のあたり
         		if (!exist_plugin('attach') or !function_exists('attach_upload'))
         		{
         			return array('msg'=>'attach.inc.php not found or not correct version.');
         		}
         
        +		check_editable($vars['refer'], true, true);
        +
         		$retval = attach_upload($file,$vars['refer'],TRUE);
         		if ($retval['result'] == TRUE)
         		{
         			$retval = paint_insert_ref($file['name']);
         		}
         	}
         	else
      • 160行目のあたり(凍結しているページは、投稿フォームも表示しない)
        	global $_paint_messages;
        	static $numbers = array();
        
        -	if (PKWK_READONLY) return ''; // Show nothing
        +	if (PKWK_READONLY || is_freeze($vars['page'])) return ''; // Show nothing
        
        	if (!array_key_exists($vars['page'],$numbers))
        	{
  • attach プラグインが見つからないときに、チェックなしで本文が自動でロードされるのを防止*1
    • 75行目のあたり
       		$file['name'] = $attachname;
       
       		if (!exist_plugin('attach') or !function_exists('attach_upload'))
       		{
      -			return array('msg'=>'attach.inc.php not found or not correct version.');
      +			return array(
      +				'msg' =>'attach.inc.php not found or not correct version.',
      +				'body'=>'attach.inc.php not found or not correct version.'
      +			);
       		}
       
       		$retval = attach_upload($file,$vars['refer'],TRUE);
  • エラーメッセージを残しつつ、チェックなしで本文が自動でロードされるのを防止*2
    • 75行目のあたり
       		$retval = attach_upload($file,$vars['refer'],TRUE);
       		if ($retval['result'] == TRUE)
       		{
       			$retval = paint_insert_ref($file['name']);
       		}
      +		else if (isset($retval['msg']))
      +		{
      +			$retval['body'] = str_replace('$1',
      +					 htmlspecialchars(strip_bracket($vars['refer'])), $retval['msg']);
      +		}
      +
      +		if (! isset($retval['body']) || $retval['body'] == '')
      +		{
      +			check_readable($vars['refer'], true, false);
      +		}
       	}
       	else
  • ウインドウモード時に、閲覧制限を確認してから本文をロードする
    • 100行目のあたり
       		//ウインドウモード :)
       		if ($w < 50 and $h < 50)
       		{
       			$w = $h = 0;
       			$retval['msg'] = '';
       			$vars['page'] = $vars['refer'];
       			$vars['cmd'] = 'read';
      -			$retval['body'] = convert_html(get_source($vars['refer']));
      +			if (check_readable($vars['refer'], true, false))
      +			{
      +				$retval['body'] = convert_html(get_source($vars['refer']));
      +			}
       			$link = '';
       		}

*1 エラーメッセージが、「attach プラグインが見つからない~」から、「閲覧できない~」に変わってもかまわないなら、check_readable を使う方法もあり
*2 attach プラグイン からのエラーメッセージが消えてもいいなら、else if の部分は追加しなくてよい

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-07-14 (火) 20:01:24
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.271 sec.

OSDN