static function getList()
{
static $list = null;
if (is_array($list))
{
return $list;
}
$user = UserTable::getList(array(
'select' => array('EMAIL'),
'filter' => array(
'=ID' => array_slice(CGroup::getGroupUser(1), 0, 200),
'=ACTIVE' => 'Y'
),
'limit' => 1
))->fetch();
if ($user && $user['EMAIL'])
{
$email = $user['EMAIL'];
}
else
{
$email = Option::get('main', 'email_from', '');
}
$list = array();
$intl = array(
'ru' => array(
'PHRASES' => array('COMPANY_NAME', 'IP_NAME'),
'FIELDS' => array(
array(
'CODE' => 'COMPANY_NAME',
'TYPE' => 'text',
'TAB' => 'text',
),
array(
'CODE' => 'COMPANY_ADDRESS',
'TYPE' => 'text',
'TAB' => 'text',
),
array(
'CODE' => 'PURPOSES',
'TYPE' => 'text',
'SHOW_BY_CHECKBOX' => true,
'TAB' => 'settings',
),
array(
'CODE' => 'THIRD_PARTIES',
'TYPE' => 'text',
'SHOW_BY_CHECKBOX' => true,
'TAB' => 'settings',
),
array(
'CODE' => 'EMAIL',
'TYPE' => 'string',
'PLACEHOLDER' => $email,
'DEFAULT_VALUE' => $email,
'TAB' => 'settings',
),
),
),
'ua' => array(
'PHRASES' => array(),
'FIELDS' => array(
array(
'CODE' => 'COMPANY_NAME',
'TYPE' => 'text',
'TAB' => 'text',
),
),
),
'kz' => array(
'PHRASES' => array('COMPANY_NAME', 'IP_NAME'),
'FIELDS' => array(
array(
'CODE' => 'COMPANY_NAME',
'TYPE' => 'text',
'TAB' => 'text',
),
array(
'CODE' => 'COMPANY_ADDRESS',
'TYPE' => 'text',
'TAB' => 'text',
),
array(
'CODE' => 'PURPOSES',
'TYPE' => 'text',
'SHOW_BY_CHECKBOX' => true,
'TAB' => 'settings',
),
array(
'CODE' => 'THIRD_PARTIES',
'TYPE' => 'text',
'SHOW_BY_CHECKBOX' => true,
'TAB' => 'settings',
),
array(
'CODE' => 'EMAIL',
'TYPE' => 'string',
'PLACEHOLDER' => $email,
'DEFAULT_VALUE' => $email,
'TAB' => 'settings',
),
),
),
'by' => array(
'PHRASES' => array('COMPANY_NAME', 'IP_NAME'),
'FIELDS' => array(
array(
'CODE' => 'COMPANY_NAME',
'TYPE' => 'text',
'TAB' => 'text',
),
array(
'CODE' => 'COMPANY_ADDRESS',
'TYPE' => 'text',
'TAB' => 'text',
),
array(
'CODE' => 'PURPOSES',
'TYPE' => 'text',
'SHOW_BY_CHECKBOX' => true,
'TAB' => 'settings',
),
array(
'CODE' => 'THIRD_PARTIES',
'TYPE' => 'text',
'SHOW_BY_CHECKBOX' => true,
'TAB' => 'settings',
),
array(
'CODE' => 'EMAIL',
'TYPE' => 'string',
'PLACEHOLDER' => $email,
'DEFAULT_VALUE' => $email,
'TAB' => 'settings',
),
),
)
);
$messageMap = array(
'AGREEMENT_TEXT' => 'MAIN_USER_CONSENT_INTL_TEXT',
'LABEL_TEXT' => 'MAIN_USER_CONSENT_INTL_LABEL',
'FIELDS_HINT' => 'MAIN_USER_CONSENT_INTL_FIELDS_HINT',
'DESCRIPTION' => 'MAIN_USER_CONSENT_INTL_DESCRIPTION',
'NOTIFY_TEXT' => 'MAIN_USER_CONSENT_INTL_NOTIFY_TEXT',
);
$languages = self::getLanguages();
foreach ($languages as $languageId => $languageName)
{
$item = self::getLanguageMessages($languageId, $messageMap);
if (!$item['AGREEMENT_TEXT'])
{
continue;
}
$item['NAME'] = Loc::getMessage('MAIN_USER_CONSENT_INTL_NAME', array('%language_name%' => $languageName));
$item['BASE_LANGUAGE_ID'] = self::$virtualLanguageMap[$languageId] ?? $languageId;
$item['LANGUAGE_ID'] = $languageId;
$item['LANGUAGE_NAME'] = $languageName;
$item['PHRASES'] = array();
if (isset($intl[$languageId]['PHRASES']))
{
$phraseMap = array();
foreach ($intl[$languageId]['PHRASES'] as $phraseCode)
{
$phraseMap[$phraseCode] = "MAIN_USER_CONSENT_INTL_PHRASE_{$phraseCode}";
}
$item['PHRASES'] = self::getLanguageMessages($languageId, $phraseMap);
}
$item['FIELDS'] = array();
if (isset($intl[$languageId]['FIELDS']))
{
foreach ($intl[$languageId]['FIELDS'] as $field)
{
$messageFieldsMap = array(
'CAPTION' => "MAIN_USER_CONSENT_INTL_FIELD_{$field['CODE']}",
'PLACEHOLDER' => "MAIN_USER_CONSENT_INTL_FIELD_{$field['CODE']}_HINT",
'DEFAULT_VALUE' => "MAIN_USER_CONSENT_INTL_FIELD_{$field['CODE']}_DEFAULT",
);
$field = $field + self::getLanguageMessages($languageId, $messageFieldsMap);
if ($field['TYPE'] == 'text' && $field['DEFAULT_VALUE'])
{
$field['PLACEHOLDER'] .= "n" . Loc::getMessage('MAIN_USER_CONSENT_INTL_HINT_FIELD_DEFAULT');
$field['PLACEHOLDER'] .= "n" . $field['DEFAULT_VALUE'];
}
$item['FIELDS'][] = $field;
}
}
$list[] = $item;
}
return $list;
}