Your IP : 3.144.30.86


Current Path : /home/bitrix/ext_www/dev.easy-comfort.com.ua/bitrix/modules/vote/classes/general/
Upload File :
Current File : /home/bitrix/ext_www/dev.easy-comfort.com.ua/bitrix/modules/vote/classes/general/event.php

<?
#############################################
# Bitrix Site Manager Forum					#
# Copyright (c) 2002-2009 Bitrix			#
# http://www.bitrixsoft.com					#
# mailto:admin@bitrixsoft.com				#
#############################################

class CAllVoteEvent
{
	function err_mess()
	{
		$module_id = "vote";
		return "<br>Module: ".$module_id."<br>Class: CAllVoteEvent<br>File: ".__FILE__;
	}

	function GetByID($ID)
	{
		$ID = intval($ID);
		if ($ID<=0) return;
		$res = CVoteEvent::GetList($by, $order, array("ID" => $ID), $is_filtered, "Y");
		return $res;
	}

	function GetAnswer($EVENT_ID, $ANSWER_ID)
	{
		$err_mess = (self::err_mess())."<br>Function: GetAnswer<br>Line: ";
		global $DB;
		$EVENT_ID = intval($EVENT_ID);
		$ANSWER_ID = intval($ANSWER_ID);
		$strSql = "
			SELECT
				A.ANSWER_ID,
				A.MESSAGE
			FROM
				b_vote_event E,
				b_vote_event_answer A,
				b_vote_event_question Q				
			WHERE
				E.ID = '$EVENT_ID'
			and Q.EVENT_ID = E.ID
			and A.EVENT_QUESTION_ID = Q.ID
			and	A.ANSWER_ID = '$ANSWER_ID'
			";
		$z = $DB->Query($strSql, false, $err_mess.__LINE__);
		if ($zr = $z->Fetch())
		{
			if (strlen($zr["MESSAGE"])>0) return $zr["MESSAGE"]; else return $zr["ANSWER_ID"];
		}
		return false;
	}

	public static function Delete($eventId)
	{
		return \Bitrix\Vote\Event::deleteEvent($eventId);
	}

	function SetValid($eventId, $valid)
	{
		return \Bitrix\Vote\Event::setValid($eventId, $valid);
	}

	function GetList(&$by, &$order, $arFilter=Array(), &$is_filtered, $get_user="N")
	{
		$err_mess = (self::err_mess())."<br>Function: GetList<br>Line: ";
		global $DB;
		$arSqlSearch = Array();
		$strSqlSearch = "";
		if (is_array($arFilter))
		{
			$filter_keys = array_keys($arFilter);
			$count = count($filter_keys);
			for ($i=0; $i<$count; $i++)
			{
				$key = $filter_keys[$i];
				$val = $arFilter[$filter_keys[$i]];
				if(is_array($val))
				{
					if(count($val) <= 0)
						continue;
				}
				else
				{
					if( (strlen($val) <= 0) || ($val === "NOT_REF") )
						continue;
				}
				$match_value_set = (in_array($key."_EXACT_MATCH", $filter_keys)) ? true : false;
				$key = strtoupper($key);
				switch($key)
				{
					case "ID":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
						$arSqlSearch[] = GetFilterQuery("E.ID",$val,$match);
						break;
					case "VALID":
						$arSqlSearch[] = ($val=="Y") ? "E.VALID='Y'" : "E.VALID='N'";
						break;
					case "DATE_1":
						$arSqlSearch[] = "E.DATE_VOTE>=".$DB->CharToDateFunction($val, "SHORT");
						break;
					case "DATE_2":
						$arSqlSearch[] = "E.DATE_VOTE<=".$DB->CharToDateFunction($val." 23:59:59", "FULL");
						break;
					case "VOTE_USER":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
						$arSqlSearch[] = GetFilterQuery("E.VOTE_USER_ID",$val,$match);
						break;
					case "USER_ID":
						if ($get_user=="Y")
						{
							$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
							$arSqlSearch[] = GetFilterQuery("U.AUTH_USER_ID",$val,$match);
						}
						break;
					case "SESSION":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("E.STAT_SESSION_ID",$val,$match);
						break;
					case "IP":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("E.IP",$val,$match,array("."));
						break;
					case "VOTE":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
						$arSqlSearch[] = GetFilterQuery("E.VOTE_ID, V.TITLE",$val,$match);
						break;
					case "VOTE_ID":
						$match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
						$arSqlSearch[] = GetFilterQuery("E.VOTE_ID",$val,$match);
						break;
				}
			}
		}

		if ($by == "s_id")					$strSqlOrder = "ORDER BY E.ID";
		elseif ($by == "s_valid")			$strSqlOrder = "ORDER BY E.VALID";
		elseif ($by == "s_date")			$strSqlOrder = "ORDER BY E.DATE_VOTE";
		elseif ($by == "s_session")			$strSqlOrder = "ORDER BY E.STAT_SESSION_ID";
		elseif ($by == "s_vote_user")		$strSqlOrder = "ORDER BY E.VOTE_USER_ID";
		elseif ($by == "s_vote")			$strSqlOrder = "ORDER BY E.VOTE_ID";
		elseif ($by == "s_ip")				$strSqlOrder = "ORDER BY E.IP";
		else 
		{
			$by = "s_id";
			$strSqlOrder = "ORDER BY E.ID";
		}
		if ($order!="asc")
		{
			$strSqlOrder .= " desc ";
			$order="desc";
		}
		if ($get_user=="Y")
		{
			$select = " ,
				U.AUTH_USER_ID, U.STAT_GUEST_ID,
				A.NAME, A.LAST_NAME, A.SECOND_NAME, A.PERSONAL_PHOTO, A.LOGIN, 
				".$DB->Concat("A.LAST_NAME", "' '", "A.NAME")."	AUTH_USER_NAME
			";
			$from = "
			LEFT JOIN b_vote_user U ON (U.ID = E.VOTE_USER_ID)
			LEFT JOIN b_user A ON (A.ID = U.AUTH_USER_ID)
			";

		}

		$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
		$strSql = "
			SELECT 
				E.*,
				".$DB->DateToCharFunction("E.DATE_VOTE")."	DATE_VOTE,
				V.TITLE, V.DESCRIPTION, V.DESCRIPTION_TYPE
				$select
			FROM
				b_vote_event E
			INNER JOIN b_vote V ON (V.ID=E.VOTE_ID)
			$from
			WHERE
			$strSqlSearch
			$strSqlOrder
			";
		$res = $DB->Query($strSql, false, $err_mess.__LINE__);
		$is_filtered = (IsFiltered($strSqlSearch));
		return $res;
	}
}
?>