diff --git a/lib/browse/columnregistry.inc.php b/lib/browse/columnregistry.inc.php index 310909c..074b2df 100644 --- a/lib/browse/columnregistry.inc.php +++ b/lib/browse/columnregistry.inc.php @@ -7,7 +7,7 @@ * License Version 1.1.2 ("License"); You may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.knowledgetree.com/KPL - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. * See the License for the specific language governing rights and @@ -18,9 +18,9 @@ * (ii) the KnowledgeTree copyright notice * in the same form as they appear in the distribution. See the License for * requirements. - * + * * The Original Code is: KnowledgeTree Open Source - * + * * The Initial Developer of the Original Code is The Jam Warehouse Software * (Pty) Ltd, trading as KnowledgeTree. * Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright @@ -36,11 +36,13 @@ class KTColumnRegistry { var $columns = array(); var $views = array(); // should be in here // {{{ getSingleton - function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTColumnRegistry')) { - $GLOBALS['_KT_PLUGIN']['oKTColumnRegistry'] =& new KTColumnRegistry; - } - return $GLOBALS['_KT_PLUGIN']['oKTColumnRegistry']; + static function &getSingleton () { + static $singleton = null; + if (is_null($singleton)) + { + $singleton = new KTColumnRegistry; + } + return $singleton; } // }}} @@ -49,55 +51,55 @@ class KTColumnRegistry { 'name' => $sName, 'namespace' => $sNamespace, 'class' => $sClass, - 'file' => $sFile + 'file' => $sFile ); } - + function getViewName($sNamespace) { return KTUtil::arrayGet($this->views, $sNamespace); } function getViews() { return $this->views; } function getColumns() { return $this->columns; } function registerView($sName, $sNamespace) { $this->views[$sNamespace] = $sName; } - + function getColumnInfo($sNamespace) { return KTUtil::arrayGet($this->columns, $sNamespace, null); - } - + } + function getColumn($sNamespace) { $aInfo = $this->getColumnInfo($sNamespace); if (empty($aInfo)) { return PEAR::raiseError(sprintf(_kt("No such column: %s"), $sNamespace)); - } - + } + require_once($aInfo['file']); return new $aInfo['class']; } - + function getColumnsForView($sViewNamespace) { $view_entry = KTUtil::arrayGet($this->views, $sViewNamespace); if (is_null($view_entry)) { return PEAR::raiseError(sprintf(_kt("No such view: %s"), $sViewNamespace)); - } - + } + $view_column_entries = KTColumnEntry::getByView($sViewNamespace); - if (PEAR::isError($view_column_entries)) { - return $view_column_entries; + if (PEAR::isError($view_column_entries)) { + return $view_column_entries; } - + $view_columns = array(); foreach ($view_column_entries as $oEntry) { $res = $this->getColumn($oEntry->getColumnNamespace()); if (PEAR::isError($res)) { return $res; } - + $aOptions = $oEntry->getConfigArray(); - $aOptions['column_id'] = $oEntry->getId(); - $aOptions['required_in_view'] = $oEntry->getRequired(); + $aOptions['column_id'] = $oEntry->getId(); + $aOptions['required_in_view'] = $oEntry->getRequired(); $res->setOptions($aOptions); - + $view_columns[] = $res; } - - return $view_columns; + + return $view_columns; } } diff --git a/lib/browse/criteriaregistry.php b/lib/browse/criteriaregistry.php index 8a15f89..8f53b44 100644 --- a/lib/browse/criteriaregistry.php +++ b/lib/browse/criteriaregistry.php @@ -33,14 +33,16 @@ class KTCriteriaRegistry { var $_aCriteriaDetails = array(); var $_bGenericRegistered = false; - function &getSingleton() { - if (!KTUtil::arrayGet($GLOBALS['_KT_CRITERIA'], 'oKTCriteriaRegistry')) { - $GLOBALS['_KT_CRITERIA']['oKTCriteriaRegistry'] = new KTCriteriaRegistry; - // $GLOBALS['_KT_CRITERIA']['oKTCriteriaRegistry']->_buildGenericCriteria(); - } - return $GLOBALS['_KT_CRITERIA']['oKTCriteriaRegistry']; + static function &getSingleton () { + static $singleton=null; + if (is_null($singleton)) + { + $singleton = new KTCriteriaRegistry(); + } + return $singleton; } + function _buildGenericCriteria() { $aFields =& DocumentField::getList(); foreach($aFields as $oField) { @@ -81,7 +83,7 @@ class KTCriteriaRegistry { require_once($sFilename); } $sClassName = $aDetails[0]; - $oCriterion =& new $sClassName(); + $oCriterion =new $sClassName(); if(is_array($aDetails[3])) {