Exemple #1
0
	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();
             }
         }