Changeset 23427


Ignore:
Timestamp:
2014/05/16 16:15:21 (6 years ago)
Author:
Seasoft
Message:

#2551 (プラグインの処理によりインストール中の PHP エラー画面の表示が阻害される part 2)

Location:
branches/version-2_13-dev/data/class
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/data/class/helper/SC_Helper_HandleError.php

    r23124 r23427  
    3232class SC_Helper_HandleError 
    3333{ 
     34    /** エラー処理中か */ 
     35    static $under_error_handling = false; 
     36 
    3437    /** 
    3538     * 処理の読み込みを行う 
     
    194197    public static function displaySystemError($errstr = null) 
    195198    { 
     199        SC_Helper_HandleError_Ex::$under_error_handling = true; 
     200 
    196201        ob_clean(); 
    197202 
  • branches/version-2_13-dev/data/class/helper/SC_Helper_Plugin.php

    r23124 r23427  
    311311    public static function hook($hook_point, $arrArgs = array(), $plugin_activate_flg = PLUGIN_ACTIVATE_FLAG) 
    312312    { 
     313        // エラー処理中は実行しない 
     314        if (SC_Helper_HandleError_Ex::$under_error_handling) { 
     315            return; 
     316        } 
     317 
    313318        $objPlugin = SC_Helper_Plugin::getSingletonInstance($plugin_activate_flg); 
     319 
     320        // 以前、エラー処理中に (オブジェクトではない) false に対し、doAction をコールする不具合があった。(#1971, #2551) 
     321        // 現在、そういった状況は回避している認識だが、念のため同様の状況が発生した場合、ログを残し、実行しない。 
     322        if (!is_object($objPlugin)) { 
     323            // XXX 致命的エラーの処理中だと、この方法ではログが残らない模様。実質的に問題無いと考えている。 
     324            trigger_error('プラグインの処理で意図しない状況が発生しました。', E_USER_WARNING); 
     325            return; 
     326        } 
     327 
    314328        $objPlugin->doAction($hook_point, $arrArgs); 
    315329    } 
  • branches/version-2_13-dev/data/class/pages/error/LC_Page_Error.php

    r23124 r23427  
    5757    public function init() 
    5858    { 
     59        SC_Helper_HandleError_Ex::$under_error_handling = true; 
     60 
    5961        $this->tpl_mainpage = 'error.tpl'; 
    6062        $this->tpl_title = 'エラー'; 
  • branches/version-2_13-dev/data/class/pages/error/LC_Page_Error_DispError.php

    r23124 r23427  
    4242    public function init() 
    4343    { 
     44        SC_Helper_HandleError_Ex::$under_error_handling = true; 
     45 
    4446        $this->template = LOGIN_FRAME; 
    4547        $this->tpl_mainpage = 'login_error.tpl'; 
Note: See TracChangeset for help on using the changeset viewer.