• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/ilearngraphnode.php
  • Класс: CLearnGraphNode
  • Вызов: CLearnGraphNode::GetByID
static function GetByID($id)
{
	global $DB;

	static $cacheFieldsToSelect = null;

	if ( ! (is_numeric ($id) && is_int ($id + 0)) )
		throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_GN_GETBYID);

	// Prepare list of DB fields to be selected
	if ($cacheFieldsToSelect === null)
	{
		$arReversedFieldsMap = self::_GetReversedFieldsMap();

		$arFieldsToSelect = array();
		foreach ($arReversedFieldsMap as $fieldNameInDB => $value)
		{
			if ($value['access'] & self::SQL_SELECT)
			{
				if ( ($fieldNameInDB === 'TIMESTAMP_X') || ($fieldNameInDB === 'DATE_CREATE') )
					$arFieldsToSelect[] = $DB->DateToCharFunction($fieldNameInDB) . ' AS ' . $fieldNameInDB;
				else
					$arFieldsToSelect[] = $fieldNameInDB;
			}
		}

		$cacheFieldsToSelect = implode (',', $arFieldsToSelect);

		if ( ! ($cacheFieldsToSelect <> '') )
			$cacheFieldsToSelect = false;
	}

	if ($cacheFieldsToSelect === false)
		throw new LearnException ('EA_ACCESS_DENIED', LearnException::EXC_ERR_GN_GETBYID);

	// Get graph node data
	$rc = $DB->Query (
		"SELECT " . $cacheFieldsToSelect . "
		FROM b_learn_lesson
		WHERE ID='" . (int) ($id + 0) . "'",
		true	// ignore errors
		);

	if ($rc === false)
		throw new LearnException ('EA_SQLERROR', LearnException::EXC_ERR_GN_GETBYID);

	if ( ! (($arData = $rc->Fetch()) && is_array($arData)) )
		throw new LearnException ('EA_NOT_EXISTS', LearnException::EXC_ERR_GN_GETBYID);

	return ($arData);
}