• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/database/tree.php
  • Класс: BitrixTasksInternalsDataBaseto
  • Вызов: to::getMap
static function getMap()
{
	// to avoid warnings in php7
	$entityName = '';
	if(func_num_args() > 0)
	{
		$entityName = func_get_arg(0);
	}

	$directColumnName = 	static::getDIRECTColumnName();

	return array(

		new EntityBooleanField($directColumnName, array(
		)),

		// parent node
		'PARENT_NODE' => array(
			'data_type' => $entityName,
			'reference' => array(
				'=ref.'.$directColumnName => array('?', '1'),
				'=this.'.static::getIDColumnName() => 'ref.'.static::getIDColumnName(),
			),
			'join_type' => 'inner'
		),

		// all parent nodes (path to root node)
		'PARENT_NODES' => array(
			'data_type' => $entityName,
			'reference' => array(
				'=this.'.static::getIDColumnName() => 'ref.'.static::getIDColumnName()
			),
			'join_type' => 'inner'
		),

		// all subtree
		'CHILD_NODES' => array(
			'data_type' => $entityName,
			'reference' => array(
				'=this.'.static::getIDColumnName() => 'ref.'.static::getPARENTIDColumnName()
			),
			'join_type' => 'inner'
		),

		// only direct ancestors
		'CHILD_NODES_DIRECT' => array(
			'data_type' => $entityName,
			'reference' => array(
				'=ref.'.$directColumnName => array('?', '1'),
				'=this.'.static::getIDColumnName() => 'ref.'.static::getPARENTIDColumnName(),
			),
			'join_type' => 'inner'
		),
	);
}