- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_settings.php
- Класс: CIMSettings
- Вызов: CIMSettings::CheckValues
static function CheckValues($type, $value)
{
$checkedValues = [];
$defaultSettings = self::GetDefaultSettings($type);
if ($type === self::SETTINGS)
{
foreach($defaultSettings as $key => $default)
{
if ($key === 'status')
{
$checkedValues[$key] = in_array($value[$key], ['online', 'dnd', 'away'])? $value[$key]: $default;
}
else if ($key === 'panelPositionHorizontal')
{
$checkedValues[$key] = in_array($value[$key], ['left', 'center', 'right'])? $value[$key]: $default;
}
else if ($key === 'panelPositionVertical')
{
$checkedValues[$key] = in_array($value[$key], ['top', 'bottom'])? $value[$key]: $default;
}
else if ($key === 'notifyScheme')
{
$checkedValues[$key] = in_array($value[$key], ['simple', 'expert'])? $value[$key]: $default;
}
else if ($key === 'enableDarkTheme')
{
$checkedValues[$key] = in_array($value[$key], ['auto', 'light', 'dark']) ? $value[$key] : $default;
}
else if (in_array($key, ['privacyMessage', 'privacyChat', 'privacyCall', 'privacySearch']))
{
$checkedValues[$key] =
in_array($value[$key], [self::PRIVACY_RESULT_ALL, self::PRIVACY_RESULT_CONTACT])
? $value[$key]
: $default
;
}
else if ($key === 'privacyProfile')
{
$checkedValues[$key] =
in_array($value[$key], [
self::PRIVACY_RESULT_ALL,
self::PRIVACY_RESULT_CONTACT,
self::PRIVACY_RESULT_NOBODY
],
true)
? $value[$key]
: $default
;
}
else if ($key === 'sendByEnter' && $value[$key] === 'Y') // for legacy
{
$checkedValues[$key] = true;
}
else if ($key === 'enableSound' && $value[$key] === 'N') // for legacy
{
$checkedValues[$key] = false;
}
else if ($key === 'backgroundImage')
{
$checkedValues[$key] = $value[$key];
}
else if ($key === 'notifySchemeLevel')
{
$checkedValues[$key] = in_array($value[$key], ['normal', 'important'])? $value[$key]: $default;
}
else if ($key === 'trackStatus')
{
$value[$key] = explode(',', $value[$key]);
foreach ($value[$key] as $k => $v)
{
if ($v !== 'all')
{
$value[$key][$k] = intval($v);
if ($value[$key][$k] == 0)
{
unset($value[$key][$k]);
}
}
}
$checkedValues[$key] = implode(',', $value[$key]);
}
else if ($key === 'callAcceptIncomingVideo')
{
$checkedValues[$key] = in_array($value[$key], VideoStrategyType::getList())? $value[$key]: $default;
}
else if (array_key_exists($key, $value))
{
$checkedValues[$key] = is_bool($value[$key])? $value[$key]: $default;
}
else
{
$checkedValues[$key] = $default;
}
}
}
else if ($type === self::NOTIFY)
{
foreach($defaultSettings as $key => $default)
{
if (array_key_exists($key, $value))
{
$checkedValues[$key] = is_bool($value[$key]) ? $value[$key] : $default;
}
else
{
$checkedValues[$key] = $default;
}
}
}
return $checkedValues;
}