• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/ilearngraphrelation.php
  • Класс: CLearnGraphRelation
  • Вызов: CLearnGraphRelation::GetProperty
static function GetProperty ($parentNodeId, $childNodeId, $propertyName)
{
	global $DB;

	$args_check = ($parentNodeId > 0) && ($childNodeId > 0)
		&& ( in_array ($propertyName, array('SORT'), true) );

	if ( ! $args_check )
		throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_GR_GET_PROPERTY);

	$parentNodeId += 0;
	$childNodeId  += 0;

	// Prepare DB field name
	switch ($propertyName)
	{
		case 'SORT':
			$field = 'SORT';
		break;

		default:
			throw new LearnException ('EA_PARAMS: unknown property name: '
				. $propertyName, LearnException::EXC_ERR_GR_GET_PROPERTY);
		break;
	}

	// Get graph edge
	$rc = $DB->Query (
		"SELECT " . $field . "
		FROM b_learn_lesson_edges
		WHERE SOURCE_NODE='" . $parentNodeId . "'
			AND TARGET_NODE='" . $childNodeId . "'",
		$ignore_errors = true);

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

	if ( ! (($arData = $rc->Fetch()) && isset($arData[$field])) )
		throw new LearnException ('EA_NOT_EXISTS', LearnException::EXC_ERR_GR_GET_PROPERTY);

	// Postprocessing of result
	switch ($propertyName)
	{
		case 'SORT':
			$rc = (int) $arData[$field];
		break;

		default:
			throw new LearnException ('EA_PARAMS: unknown property name: '
				. $propertyName, LearnException::EXC_ERR_GR_GET_PROPERTY);
		break;
	}

	return ($rc);
}