%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/main/lib/composite/internals/model/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/modules/main/lib/composite/internals/model/page.php

<?
namespace Bitrix\Main\Composite\Internals\Model;

use Bitrix\Main;
use Bitrix\Main\Application;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Type\DateTime;

Loc::loadMessages(__FILE__);

/**
 * Class PageTable
 *
 * Fields:
 * <ul>
 * <li> ID int mandatory
 * <li> CACHE_KEY string(2000) mandatory
 * <li> URI string(2000) mandatory
 * <li> TITLE string(250) optional
 * <li> CREATED datetime mandatory
 * <li> CHANGED datetime mandatory
 * <li> LAST_VIEWED datetime mandatory
 * <li> VIEWS int mandatory
 * <li> REWRITES int mandatory
 * <li> SIZE int mandatory
 * </ul>
 *
 * @package Bitrix\Composite
 **/
class PageTable extends Main\Entity\DataManager
{
	/**
	 * Returns DB table name for entity.
	 *
	 * @return string
	 */
	public static function getTableName()
	{
		return "b_composite_page";
	}

	/**
	 * Returns entity map definition.
	 *
	 * @return array
	 */
	public static function getMap()
	{
		return array(
			"ID" => array(
				"data_type" => "integer",
				"primary" => true,
				"autocomplete" => true,
				"title" => "ID",
			),
			"CACHE_KEY" => array(
				"data_type" => "string",
				"required" => true,
				"validation" => array(__CLASS__, "validateCacheKey"),
				"title" => Loc::getMessage("PAGE_ENTITY_CACHE_KEY_FIELD"),
			),
			"HOST" => array(
				"data_type" => "string",
				"required" => true,
				"validation" => array(__CLASS__, "validateHost"),
				"title" => Loc::getMessage("PAGE_ENTITY_HOST_FIELD"),
			),
			"URI" => array(
				"data_type" => "string",
				"required" => true,
				"validation" => array(__CLASS__, "validateUri"),
				"title" => Loc::getMessage("PAGE_ENTITY_URI_FIELD"),
			),
			"TITLE" => array(
				"data_type" => "string",
				"validation" => array(__CLASS__, "validateTitle"),
				"title" => Loc::getMessage("PAGE_ENTITY_TITLE_FIELD"),
			),
			"CREATED" => array(
				"data_type" => "datetime",
				"required" => true,
				"default_value" => new DateTime(),
				"title" => Loc::getMessage("PAGE_ENTITY_CREATED_FIELD"),
			),
			"CHANGED" => array(
				"data_type" => "datetime",
				"required" => true,
				"default_value" => new DateTime(),
				"title" => Loc::getMessage("PAGE_ENTITY_CHANGED_FIELD"),
			),
			"LAST_VIEWED" => array(
				"data_type" => "datetime",
				"required" => true,
				"default_value" => new DateTime(),
				"title" => Loc::getMessage("PAGE_ENTITY_LAST_VIEWED_FIELD"),
			),
			"VIEWS" => array(
				"data_type" => "integer",
				"required" => true,
				"default_value" => 0,
				"title" => Loc::getMessage("PAGE_ENTITY_VIEWS_FIELD"),
			),
			"REWRITES" => array(
				"data_type" => "integer",
				"required" => true,
				"default_value" => 0,
				"title" => Loc::getMessage("PAGE_ENTITY_REWRITES_FIELD"),
			),
			"SIZE" => array(
				"data_type" => "integer",
				"required" => true,
				"default_value" => 0,
				"title" => Loc::getMessage("PAGE_ENTITY_SIZE_FIELD"),
			),
		);
	}

	/**
	 * Returns validators for CACHE_KEY field.
	 *
	 * @return array
	 */
	public static function validateCacheKey()
	{
		return array(
			new Main\Entity\Validator\Length(null, 2000),
		);
	}

	/**
	 * Returns validators for URI field.
	 *
	 * @return array
	 */
	public static function validateHost()
	{
		return array(
			new Main\Entity\Validator\Length(null, 100),
		);
	}

	/**
	 * Returns validators for URI field.
	 *
	 * @return array
	 */
	public static function validateUri()
	{
		return array(
			new Main\Entity\Validator\Length(null, 2000),
		);
	}

	/**
	 * Returns validators for TITLE field.
	 *
	 * @return array
	 */
	public static function validateTitle()
	{
		return array(
			new Main\Entity\Validator\Length(null, 250),
		);
	}

	public static function deleteAll()
	{
		$tableName = static::getTableName();
		$connection = Application::getConnection();
		$connection->queryExecute("DELETE FROM {$tableName}");
	}

	/**
	 * Deletes rows by filter.
	 * @param array $filter Filter does not look like filter in getList. It depends on current implementation.
	 * @internal
	 * @return void
	 */
	public static function deleteBatch(array $filter)
	{
		$tableName = static::getTableName();
		$connection = Application::getConnection();
		if (isset($filter["ID"]) && is_array($filter["ID"]) && !empty($filter["ID"]))
		{
			$ids = implode(",", array_map("intval", $filter["ID"]));
			$connection->queryExecute("DELETE FROM {$tableName} WHERE ID IN ($ids)");
		}
	}
}

Zerion Mini Shell 1.0