Vote::getMap

  1. Bitrix24 API (v. 23.675.0)
  2. vote
  3. Vote
  4. getMap
  • Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/lib/vote.php
  • Класс: BitrixVoteVote
  • Вызов: Vote::getMap
static function getMap()
{
	$now = Application::getInstance()->getConnection()->getSqlHelper()->getCurrentDateTimeFunction();
	return array(
		(new IntegerField("ID", ["primary" => true, "autocomplete" => true])),
		(new IntegerField("CHANNEL_ID", ["required" => true])),
		(new IntegerField("C_SORT", ["default_value" => 100])),
		(new BooleanField("ACTIVE", ["values" => ["N", "Y"], "default_value" => "Y"])),
		(new IntegerField("ANONYMITY", ["default_value" => Anonymity::PUBLICLY])),
		(new EnumField("NOTIFY", ["values" => ["N", "Y", "I"], "default_value" => "N"])),
		(new IntegerField("AUTHOR_ID")),
		(new Reference("AUTHOR", BitrixMainUserTable::class, Join::on("this.AUTHOR_ID", "ref.ID"))),
		(new DatetimeField("TIMESTAMP_X", ["default_value" => function(){return new DateTime();}])),
		(new DatetimeField("DATE_START", ["default_value" => function(){return new DateTime();}, "required" => true, "validation" => function() {
			return [
				new DateValidator,
				[__CLASS__, "validateActivityDate"]
			];
		}])),
		(new DatetimeField("DATE_END", ["default_value" => function(){
			$time = new DateTime();
			$time->add("1D");
			return $time;
		}, "required" => true, "validation" => function() {
			return [
				new DateValidator,
				[__CLASS__, "validateActivityDate"]
			];
		}])),
		(new StringField("URL", ["size" => 255])),
		(new IntegerField("COUNTER")),
		(new StringField("TITLE", ["size" => 255])),
		(new TextField("DESCRIPTION")),
		(new EnumField("DESCRIPTION_TYPE", ["values" => ["text", "html"], "default_value" => "text"])),
		(new IntegerField("IMAGE_ID")),
		(new Reference("IMAGE", FileTable::class, Join::on("this.IMAGE_ID", "ref.ID"))),
		(new StringField("EVENT1", ["size" => 255])),
		(new StringField("EVENT2", ["size" => 255])),
		(new StringField("EVENT3", ["size" => 255])),
		(new IntegerField("UNIQUE_TYPE", ["default_value" => EventLimits::BY_IP|EventLimits::BY_USER_ID])),
		(new IntegerField("KEEP_IP_SEC", ["default_value" => 604800])), // one week
		(new IntegerField("OPTIONS", ["default_value" => Option::ALLOW_REVOTE])),
		(new ExpressionField("LAMP",
			"CASE ".
				"WHEN (%s='Y' AND %s='Y' AND %s <= {$now} AND {$now} <= %s AND %s='Y') THEN 'yellow' ".
				"WHEN (%s='Y' AND %s='Y' AND %s <= {$now} AND {$now} <= %s AND %s!='Y') THEN 'green' ".
				"ELSE 'red' ".
			"END",
			["CHANNEL.ACTIVE", "ACTIVE", "DATE_START", "DATE_END", "CHANNEL.VOTE_SINGLE",
			"CHANNEL.ACTIVE", "ACTIVE", "DATE_START", "DATE_END", "CHANNEL.VOTE_SINGLE"])),
		(new Reference("CHANNEL", ChannelTable::class, Join::on("this.CHANNEL_ID", "ref.ID"))),
		(new Reference("QUESTION", QuestionTable::class, Join::on("this.ID", "ref.VOTE_ID"))),
		(new Reference("USER", BitrixMainUserTable::class, Join::on("this.AUTHOR_ID", "ref.ID"))),
	);
}

Добавить комментарий