- Модуль: 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);
}