public static function getMeta($UserID, $Key, $Prefix = '', $Default = '')
{
$Sql = Gdn::sql()->select('*')->from('UserMeta u');
if (is_array($UserID)) {
$Sql->whereIn('u.UserID', $UserID);
} else {
$Sql->where('u.UserID', $UserID);
}
if (strpos($Key, '%') !== false) {
$Sql->like('u.Name', $Key, 'none');
} else {
$Sql->where('u.Name', $Key);
}
$Data = $Sql->get()->resultArray();
if (is_array($UserID)) {
$Result = array_fill_keys($UserID, []);
} else {
if (strpos($Key, '%') === false) {
$Result = [stringBeginsWith($Key, $Prefix, false, true) => $Default];
} else {
$Result = [];
}
}
foreach ($Data as $Row) {
$Name = stringBeginsWith($Row['Name'], $Prefix, false, true);
if (is_array($UserID)) {
$Result[$Row['UserID']][$Name] = $Row['Value'];
} else {
$Result[$Name] = $Row['Value'];
}
}
return $Result;
}