...Человеческий поиск в разработке...
- Модуль: 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"))), ); }