• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/favorite.php
  • Класс: BitrixTasksInternalsTaskFavoriteTable
  • Вызов: FavoriteTable::delete
static function delete($primary, $behaviour = array('AFFECT_CHILDREN' => false))
{
	if (!is_array($behaviour))
		$behaviour = array();
	if (!isset($behaviour['AFFECT_CHILDREN']))
		$behaviour['AFFECT_CHILDREN'] = false;

	$primary = static::processPrimary($primary);
	$result = parent::delete($primary);

	if ($result->isSuccess() && $behaviour['AFFECT_CHILDREN'])
	{
		// add also all children...
		$res = TaskTable::getChildrenTasksData($primary['TASK_ID'], array(
			'runtime' => TaskTable::getRuntimeFieldMixins(array('IN_FAVORITE'), array('USER_ID' => $primary['USER_ID'])),
			'select' => array('IN_FAVORITE'),
		));
		while ($item = $res->fetch())
		{
			if ($item['IN_FAVORITE'])
			{
				// our client
				static::delete(array(
					'TASK_ID' => $item['ID']
				), array(
					'AFFECT_CHILDREN' => false
				));
			}
		}
	}

	return $result;
}