From c083ae580048fa2c9f6db4207286185daf287ae9 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 9 Dec 2020 12:26:47 -0800 Subject: [PATCH] user_extended_class.php code optimization. --- e107_handlers/user_extended_class.php | 57 +++++++++++++++++++-------- 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/e107_handlers/user_extended_class.php b/e107_handlers/user_extended_class.php index 41891d45c..99133769f 100644 --- a/e107_handlers/user_extended_class.php +++ b/e107_handlers/user_extended_class.php @@ -517,6 +517,36 @@ class e107_user_extended { return $this->user_extended_get_fieldList($cat, $indexField); } + + private function getFieldTypeClass($listRoot) + { + + $filename = e_CORE . 'sql/extended_' . $listRoot . '.php'; + + if(!is_readable($filename)) + { + return false; + } + + require_once($filename); + $className = 'extended_' . $listRoot; + + if(!class_exists($className)) + { + return false; + } + + /** @var extended_timezones $temp */ + $temp = new $className(); + + if(!method_exists($className, 'getValue')) + { + return false; + } + + + return $temp; + } /** @@ -1005,14 +1035,12 @@ class e107_user_extended case EUF_PREDEFINED : // predefined list, shown in dropdown $listRoot = trim($struct['user_extended_struct_values']); // Base list name - $filename = e_CORE.'sql/extended_'.$listRoot.'.php'; - if (!is_readable($filename)) return 'No file: '.$filename; - require_once($filename); - $className = 'extended_'.$listRoot; - if (!class_exists($className)) return '?????'; - /** @var extended_timezones $temp */ - $temp = new $className(); - if (!method_exists($className, 'getValue')) return '???-???'; + + if(!$temp = $this->getFieldTypeClass($listRoot)) + { + return "Missing Extended Class"; + } + $temp->pointerReset(); $ret = "