36 $constants = (new \ReflectionClass(__CLASS__))->getConstants();
37 foreach ($constants as $key)
40 $filename = str_replace(
"_",
"", mb_strtolower($key)).
"type.php";
41 if (file_exists(__DIR__.
"/".$filename))
43 $className = str_replace(
'_',
' ', mb_strtolower($key));
44 $className = str_replace(
' ',
'', ucwords($className));
45 $list[$key] = __NAMESPACE__.
"\\".$className.
"Type";
48 $event =
new Event(self::class,
'onGetList', $constants);
50 if($event->getResults())
52 foreach($event->getResults() as $evenResult)
54 if($evenResult->getType() == EventResult::SUCCESS)
56 $result = $evenResult->getParameters();
57 if (is_array($result) &&
58 array_key_exists(
"CODE_NAME", $result) && !empty($result[
"CODE_NAME"]) &&
59 array_key_exists(
"CLASS", $result) && !empty($result[
"CLASS"])
62 $list[$result[
"CODE_NAME"]] = $result[
"CLASS"];
107 $types = self::getInstance()->getTypesList();
110 foreach ($sourceFields as $sourceFieldKey => $sourceField)
112 $filter = array_merge(
113 FieldAdapter::adapt($sourceField),
115 "STRICT" => isset($sourceField[
"strict"]) && $sourceField[
"strict"] ===
true
121 if (array_key_exists($filter[
"TYPE"], $types) &&
122 class_exists($types[$filter[
"TYPE"]]) &&
123 is_callable(array($types[$filter[
"TYPE"]],
"getLogicFilter")))
125 $res = call_user_func_array(array($types[$filter[
"TYPE"]],
"getLogicFilter"), array($data, $filter));
129 else if (array_key_exists($filter[
"NAME"], $data) && $data[$filter[
"NAME"]] <>
'')
131 $result[$filter[
"NAME"]] = $data[$filter[
"NAME"]];