function OnBeforeSave($arUserField, $value) { $arVote = $GLOBALS[__CLASS__.$arUserField["ENTITY_VALUE_ID"]]["VOTE"]; $arVoteParams = $GLOBALS[__CLASS__.$arUserField["ENTITY_VALUE_ID"]]["PARAMS"]; unset($GLOBALS[__CLASS__.$arUserField["ENTITY_VALUE_ID"]]); $res = VoteVoteEditFromArray($arUserField["SETTINGS"]["CHANNEL_ID"], $value, $arVote, $arVoteParams); if ($res === true) return 0; return $res; }
} } if (!empty($arVote["QUESTIONS"])) { $uniqType = 0; foreach ($arParams['VOTE_UNIQUE'] as $k => $v) { $uniqType |= intval($v); } $uniqType += 5; list($uniqDelay, $uniqDelayType) = explode(" ", $arParams['VOTE_UNIQUE_IP_DELAY']); $uniqDelay = intVal(trim($uniqDelay)); $uniqDelayType = trim($uniqDelayType); if (!in_array($uniqDelayType, array("S", "M", "H", "D"))) { $uniqDelayType = "D"; } $arVoteParams = array("UNIQUE_TYPE" => $uniqType, "DELAY" => $uniqDelay, "DELAY_TYPE" => $uniqDelayType); $VOTE_ID = VoteVoteEditFromArray($arParams["VOTE_CHANNEL_ID"], $VOTE_ID > 0 ? $VOTE_ID : false, $arVote, $arVoteParams); if (intVal($VOTE_ID) > 0) { $arFieldsG["PARAM1"] = "VT"; $arFieldsG["PARAM2"] = $VOTE_ID; } else { $e = $GLOBALS['APPLICATION']->GetException(); if ($e) { $err = reset($e->messages); if ($err["id"] == "questions") { CVote::Delete($VOTE_ID); $arFieldsG["PARAM1"] = ""; $arFieldsG["PARAM2"] = false; } else { $strErrorMessage .= $e->GetString(); } }