public static function getScriptingBuiltinVariables() { foreach (self::$SCRIPT_BUILTIN_VARIABLES as $k => $v) { self::$SCRIPT_BUILTIN_VARIABLES["event_{$k}"] = $v; } if (!self::$SCRIPT_BUILTIN_VARIABLES_LOADED) { $ReflectEVENT_TYPE = new ReflectionClass("EVENT_TYPE"); $event_types = $ReflectEVENT_TYPE->getConstants(); foreach ($event_types as $event_type) { if (class_exists("{$event_type}Event")) { $ReflectClass = new ReflectionClass("{$event_type}Event"); $retval = $ReflectClass->getMethod("GetScriptingVars")->invoke(null); if (!empty($retval)) { foreach ($retval as $k => $v) { if (!CONFIG::$SCRIPT_BUILTIN_VARIABLES[$k]) { CONFIG::$SCRIPT_BUILTIN_VARIABLES[$k] = array("PropName" => $v, "EventName" => "{$event_type}"); } else { if (!is_array(CONFIG::$SCRIPT_BUILTIN_VARIABLES[$k]['EventName'])) { $events = array(CONFIG::$SCRIPT_BUILTIN_VARIABLES[$k]['EventName']); } else { $events = CONFIG::$SCRIPT_BUILTIN_VARIABLES[$k]['EventName']; } $events[] = $event_type; CONFIG::$SCRIPT_BUILTIN_VARIABLES[$k] = array("PropName" => $v, "EventName" => $events); } } } } } CONFIG::$SCRIPT_BUILTIN_VARIABLES_LOADED = true; } return CONFIG::$SCRIPT_BUILTIN_VARIABLES; }