[Svn-src-all:3897] [version-2_13-dev 22811] #2241 (プラグイン機構の自殺を阻止)
Seasoft
admin @ mail.ec-cube.net
2013年 5月 11日 (土) 10:32:41 JST
Subversion committed to /home/svn/open 22811
http://svn.ec-cube.net/open_trac/changeset/22811
┌────────────────────────────┐
│更新者 : Seasoft │
│更新日時: 2013-05-11 10:32:41 +0900 (土, 11 5月 2013)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#2241 (プラグイン機構の自殺を阻止)
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_13-dev/data/class/SC_Response.php
U branches/version-2_13-dev/data/class/SC_View.php
U branches/version-2_13-dev/data/class/pages/error/LC_Page_Error.php
変更: branches/version-2_13-dev/data/class/SC_Response.php
===================================================================
--- branches/version-2_13-dev/data/class/SC_Response.php 2013-05-11 01:31:46 UTC (rev 22810)
+++ branches/version-2_13-dev/data/class/SC_Response.php 2013-05-11 01:32:41 UTC (rev 22811)
@@ -94,13 +94,16 @@
{
// ローカルフックポイント処理
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
- $arrBacktrace = debug_backtrace();
- if (is_object($arrBacktrace[0]['object'])) {
- $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
- $objPlugin->doAction($parent_class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
- $class_name = get_class($arrBacktrace[0]['object']);
- if ($class_name != $parent_class_name) {
- $objPlugin->doAction($class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
+
+ if (is_object($objPlugin)) {
+ $arrBacktrace = debug_backtrace();
+ if (is_object($arrBacktrace[0]['object'])) {
+ $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
+ $objPlugin->doAction($parent_class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
+ $class_name = get_class($arrBacktrace[0]['object']);
+ if ($class_name != $parent_class_name) {
+ $objPlugin->doAction($class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
+ }
}
}
@@ -124,33 +127,33 @@
*/
function sendRedirect($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null)
{
-
// ローカルフックポイント処理
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
- $arrBacktrace = debug_backtrace();
- if (is_object($arrBacktrace[0]['object']) && method_exists($arrBacktrace[0]['object'], 'getMode')) {
- $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
- $objPlugin->doAction($parent_class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
- $class_name = get_class($arrBacktrace[0]['object']);
- if ($class_name != $parent_class_name) {
- $objPlugin->doAction($class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($this));
+ if (is_object($objPlugin)) {
+ $arrBacktrace = debug_backtrace();
+ if (is_object($arrBacktrace[0]['object']) && method_exists($arrBacktrace[0]['object'], 'getMode')) {
+ $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
+ $objPlugin->doAction($parent_class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
+ $class_name = get_class($arrBacktrace[0]['object']);
+ if ($class_name != $parent_class_name) {
+ $objPlugin->doAction($class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($this));
+ }
+ } elseif (is_object($arrBacktrace[0]['object'])) {
+ $pattern = '/^[a-zA-Z0-9_]+$/';
+ $mode = null;
+ if (isset($_GET['mode']) && preg_match($pattern, $_GET['mode'])) {
+ $mode = $_GET['mode'];
+ } elseif (isset($_POST['mode']) && preg_match($pattern, $_POST['mode'])) {
+ $mode = $_POST['mode'];
+ }
+ $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
+ $objPlugin->doAction($parent_class_name . '_action_' . $mode, array($arrBacktrace[0]['object']));
+ $class_name = get_class($arrBacktrace[0]['object']);
+ if ($class_name != $parent_class_name) {
+ $objPlugin->doAction($class_name . '_action_' . $mode, array($this));
+ }
}
- } elseif (is_object($arrBacktrace[0]['object'])) {
- $pattern = '/^[a-zA-Z0-9_]+$/';
- $mode = null;
- if (isset($_GET['mode']) && preg_match($pattern, $_GET['mode'])) {
- $mode = $_GET['mode'];
- } elseif (isset($_POST['mode']) && preg_match($pattern, $_POST['mode'])) {
- $mode = $_POST['mode'];
- }
- $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
- $objPlugin->doAction($parent_class_name . '_action_' . $mode, array($arrBacktrace[0]['object']));
- $class_name = get_class($arrBacktrace[0]['object']);
- if ($class_name != $parent_class_name) {
- $objPlugin->doAction($class_name . '_action_' . $mode, array($this));
- }
-
}
// url-path → URL 変換
変更: branches/version-2_13-dev/data/class/SC_View.php
===================================================================
--- branches/version-2_13-dev/data/class/SC_View.php 2013-05-11 01:31:46 UTC (rev 22810)
+++ branches/version-2_13-dev/data/class/SC_View.php 2013-05-11 01:32:41 UTC (rev 22811)
@@ -143,7 +143,9 @@
if (!is_null($this->objPage)) {
// フックポイントを実行.
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->objPage->plugin_activate_flg);
- $objPlugin->doAction('prefilterTransform', array(&$source, $this->objPage, $smarty->_current_file));
+ if (is_object($objPlugin)) {
+ $objPlugin->doAction('prefilterTransform', array(&$source, $this->objPage, $smarty->_current_file));
+ }
}
return $source;
}
@@ -159,7 +161,9 @@
if (!is_null($this->objPage)) {
// フックポイントを実行.
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->objPage->plugin_activate_flg);
- $objPlugin->doAction('outputfilterTransform', array(&$source, $this->objPage, $smarty->_current_file));
+ if (is_object($objPlugin)) {
+ $objPlugin->doAction('outputfilterTransform', array(&$source, $this->objPage, $smarty->_current_file));
+ }
}
return $source;
}
変更: branches/version-2_13-dev/data/class/pages/error/LC_Page_Error.php
===================================================================
--- branches/version-2_13-dev/data/class/pages/error/LC_Page_Error.php 2013-05-11 01:31:46 UTC (rev 22810)
+++ branches/version-2_13-dev/data/class/pages/error/LC_Page_Error.php 2013-05-11 01:32:41 UTC (rev 22811)
@@ -68,9 +68,11 @@
// ディスプレイクラス生成
$this->objDisplay = new SC_Display_Ex();
- // transformでフックしているばあいに, 再度エラーが発生するため, コールバックを無効化.
$objHelperPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
- $objHelperPlugin->arrRegistedPluginActions = array();
+ if (is_object($objHelperPlugin)) {
+ // transformでフックしている場合に, 再度エラーが発生するため, コールバックを無効化.
+ $objHelperPlugin->arrRegistedPluginActions = array();
+ }
// キャッシュから店舗情報取得(DBへの接続は行わない)
$this->arrSiteInfo = SC_Helper_DB_Ex::sfGetBasisDataCache(false);
Svn-src-all メーリングリストの案内