- Модуль: vote
- Путь к файлу: ~/bitrix/modules/vote/lib/uf/voteusertype.php
- Класс: BitrixVoteUfVoteUserType
- Вызов: VoteUserType::checkSettings
static function checkSettings(&$params)
{
$settings = (is_array($params["SETTINGS"]) ? $params["SETTINGS"] : @unserialize($params["SETTINGS"], ["allowed_classes" => false]));
$settings = is_array($settings) ? $settings : array($settings);
if (array_key_exists("CHANNEL_ID", $settings))
{
$settings["CHANNEL_ID"] = intval($settings["CHANNEL_ID"]);
if ($settings["CHANNEL_ID"] <= 0 && BitrixMainLoader::includeModule("vote"))
{
$dbRes = CVoteChannel::GetList('', '',
array("SYMBOLIC_NAME" => $settings["CHANNEL_SYMBOLIC_NAME"], "SYMBOLIC_NAME_EXACT_MATCH" => "Y"));
if (!($dbRes && ($channel = $dbRes->fetch()) && !!$channel))
{
$res = array(
"TITLE" => $settings["CHANNEL_TITLE"],
"SYMBOLIC_NAME" => $settings["CHANNEL_SYMBOLIC_NAME"],
"ACTIVE" => "Y",
"HIDDEN" => "Y",
"C_SORT" => 100,
"VOTE_SINGLE" => "N",
"USE_CAPTCHA" => $settings["CHANNEL_USE_CAPTCHA"],
"SITE" => array(),
"GROUP_ID" => array()
);
$dbRes = CSite::GetList();
while ($site = $dbRes->getNext())
$res["SITE"][] = $site["ID"];
$dbRes = CGroup::GetList("sort", "asc", Array("ADMIN" => "N"));
while ($group = $dbRes->getNext())
$res["GROUP_ID"][$group["ID"]] = ($group["ID"] == 2 ? 1 : 4);
$res["GROUP_ID"] = (is_array($settings["GROUP_ID"]) ? array_intersect_key($settings["GROUP_ID"], $res["GROUP_ID"]) : $res["GROUP_ID"]);
$channelId = CVoteChannel::Add($res);
}
else
{
$channelId = $channel["ID"];
}
$settings["CHANNEL_ID"] = $channelId;
unset($settings["CHANNEL_TITLE"]);
unset($settings["CHANNEL_SYMBOLIC_NAME"]);
unset($settings["CHANNEL_USE_CAPTCHA"]);
if (!$settings["CHANNEL_ID"])
return false;
}
$uniqType = $settings["UNIQUE"];
if (is_array($settings["UNIQUE"]))
{
foreach ( $settings["UNIQUE"] as $res)
$uniqType |= $res;
}
$settings["UNIQUE"] = $uniqType;
$settings["UNIQUE_IP_DELAY"] = is_array($settings["UNIQUE_IP_DELAY"]) ?
$settings["UNIQUE_IP_DELAY"] : array("DELAY" => "10", "DELAY_TYPE" => "D");
$params["SETTINGS"] = serialize($settings);
$params["MULTIPLE"] = "N";
$params["MANDATORY"] = "N";
$params["SHOW_FILTER"] = "N";
$params["IS_SEARCHABLE"] = "N";
}
return true;
}