Commit c55582dbd8edb01c6afaae2b42fae457a5c55b7b

Authored by kevin_fourie
1 parent cdbdaa62

KTS-1911

"CLONE -Call to a member function on a non-object in /opt/ktdms/knowledgeTree/plugins/ktcore/admin/conditions.php on line 124 (SUP-204)"
Added better null object handling. However, the root of this error lies in an upgrade database issue I think. We need to sort out the database constrints on upgrade!

Reviewed By: Conrad



git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@6546 c91229c3-7414-0410-bfa2-8a42b809f60b
plugins/ktcore/admin/conditions.php
@@ -119,7 +119,10 @@ class KTConditionDispatcher extends KTAdminDispatcher { @@ -119,7 +119,10 @@ class KTConditionDispatcher extends KTAdminDispatcher {
119 if(count($aSubgroup['values'])) { 119 if(count($aSubgroup['values'])) {
120 foreach ($aSubgroup['values'] as $iv => $t) { 120 foreach ($aSubgroup['values'] as $iv => $t) {
121 $datavars =& $aSubgroup['values'][$iv]; 121 $datavars =& $aSubgroup['values'][$iv];
122 - $oCriterion = $oCriteriaRegistry->getCriterion($datavars['type']); 122 + $oCriterion = $oCriteriaRegistry->getCriterion($datavars['type']);
  123 + if($oCriterion == null || $oCriterion == "" || PEAR:isError($oCriterion)) {
  124 + $this->errorRedirectToMain('Criterion error');
  125 + }
123 $datavars['typename'] = $oCriterion->sDisplay; 126 $datavars['typename'] = $oCriterion->sDisplay;
124 $datavars['widgetval'] = $oCriterion->searchWidget(null, $datavars['data']); 127 $datavars['widgetval'] = $oCriterion->searchWidget(null, $datavars['data']);
125 } 128 }
search/booleanSearch.php
@@ -276,6 +276,9 @@ class BooleanSearchDispatcher extends KTStandardDispatcher { @@ -276,6 +276,9 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
276 if(!empty($subgroup['values'])) { 276 if(!empty($subgroup['values'])) {
277 foreach($subgroup['values'] as $value) { 277 foreach($subgroup['values'] as $value) {
278 $oCriterion =& $oCriteriaRegistry->getCriterion($value['type']); 278 $oCriterion =& $oCriteriaRegistry->getCriterion($value['type']);
  279 + if($oCriterion == null || $oCriterion == "" || PEAR:isError($oCriterion)) {
  280 + $this->errorRedirectToMain('Criterion error');
  281 + }
279 $aGroup[] = $oCriterion->parameterDisplay($value['data']); 282 $aGroup[] = $oCriterion->parameterDisplay($value['data']);
280 } 283 }
281 } 284 }