Minahito
minah****@users*****
2006年 11月 27日 (月) 15:55:01 JST
Index: xoops2jp/html/core/XCube_Controller.class.php diff -u xoops2jp/html/core/XCube_Controller.class.php:1.1.2.6 xoops2jp/html/core/XCube_Controller.class.php:1.1.2.7 --- xoops2jp/html/core/XCube_Controller.class.php:1.1.2.6 Wed Oct 25 19:38:59 2006 +++ xoops2jp/html/core/XCube_Controller.class.php Mon Nov 27 15:55:01 2006 @@ -1,7 +1,7 @@ <?php /** * @package XCube - * @version $Id: XCube_Controller.class.php,v 1.1.2.6 2006/10/25 10:38:59 minahito Exp $ + * @version $Id: XCube_Controller.class.php,v 1.1.2.7 2006/11/27 06:55:01 minahito Exp $ */ if (!defined('XOOPS_ROOT_PATH')) exit(); @@ -62,10 +62,19 @@ * Array of XCube_ActionFilter class object. * * @var Array + * @protected */ var $_mFilterChain = array(); /** + * This is Map-Array to keep names of action filter classes which are + * applied as filters. + * + * @protected + */ + var $_mLoadedFilterNames = array(); + + /** * The database object which is abstract layer for the database. * * @var object @@ -108,6 +117,7 @@ { $this->_mBlockChain = array(); $this->_mFilterChain = array(); + $this->_mLoadedFilterNames = array(); $this->mSetupUser =& new XCube_Delegate(); $this->mExecute =& new XCube_Delegate(); @@ -385,7 +395,8 @@ require_once $path . $file; $className = $matches[1]; - if (class_exists($className)) { + if (class_exists($className) && !isset($this->_mLoadedFilterNames[$className])) { + $this->_mLoadedFilterNames[$className] = true; $instance =& new $className($this); $this->addActionFilter($instance); }