Your IP : 3.135.213.119


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/mail/lib/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/mail/lib/blacklist.php

<?php

namespace Bitrix\Mail;

use Bitrix\Main\Entity;
use Bitrix\Main\Localization;

Localization\Loc::loadMessages(__FILE__);

class BlacklistTable extends Entity\DataManager
{

	public static function getFilePath()
	{
		return __FILE__;
	}

	public static function getTableName()
	{
		return 'b_mail_blacklist';
	}

	public static function replace($siteId, $mailboxId, array $list)
	{
		global $DB;

		if ($mailboxId > 0)
			$DB->query(sprintf("DELETE FROM b_mail_blacklist WHERE MAILBOX_ID = %u", $mailboxId));
		else
			$DB->query(sprintf("DELETE FROM b_mail_blacklist WHERE SITE_ID = '%s' AND MAILBOX_ID = 0", $DB->forSql($siteId)));

		if (!empty($list))
		{
			foreach ($list as $item)
			{
				static::add(array(
					'SITE_ID'    => $siteId,
					'MAILBOX_ID' => $mailboxId,
					'ITEM_TYPE'  => Blacklist\ItemType::resolveByValue($item),
					'ITEM_VALUE' => $item,
				));
			}
		}
	}

	public static function getMap()
	{
		return array(
			'ID' => array(
				'data_type'    => 'integer',
				'primary'      => true,
				'autocomplete' => true,
			),
			'SITE_ID' => array(
				'data_type' => 'string',
				'required'  => true,
			),
			'MAILBOX_ID' => array(
				'data_type' => 'integer',
			),
			'ITEM_TYPE' => array(
				'data_type' => 'integer',
				'required'  => true,
			),
			'ITEM_VALUE' => array(
				'data_type' => 'string',
				'required'  => true,
				'fetch_data_modification' => function()
				{
					return array(
						function ($value, $query, $data)
						{
							if (Blacklist\ItemType::DOMAIN == $data['ITEM_TYPE'])
								$value = sprintf('@%s', $value);

							return $value;
						}
					);
				}
			),
		);
	}

}