- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/sharepoint.php
- Класс: CAllIntranetSharepoint
- Вызов: CAllIntranetSharepoint::_SyncGetValueByType
static function _SyncGetValueByType($FIELD, &$arQueue)
{
$fld = $FIELD['FIELD'];
$bProperty = (($prop = self::__prop($fld['FIELD_ID'])) != null);
$value = $FIELD['VALUE'];
switch ($fld['SP_FIELD_TYPE'])
{
case 'DateTime':
$ts = strtotime($value);
if ($ts)
{
$value = ConvertTimeStamp($ts, 'FULL');
}
break;
case 'Counter':
case 'Integer':
$value = intval($value);
break;
case 'Number':
$value = doubleval($value);
break;
case 'User':
$bParseAsUser = false;
if ($bProperty)
{
$dbRes = CIBlockProperty::GetByID($prop, $IBLOCK_ID);
if ($arRes = $dbRes->Fetch())
{
if ($arRes['USER_TYPE'] == 'UserID' || $arRes['USER_TYPE'] == 'employee')
$bParseAsUser = true;
}
}
elseif ($fld['FIELD_ID'] == 'MODIFIED_BY' || $fld['FIELD_ID'] == 'CREATED_BY')
{
$bParseAsUser = true;
}
//var_dump($value);
if ($bParseAsUser)
$value = self::_SyncGetUser($value);
break;
case 'Choice':
if ($bProperty)
{
$dbRes = CIBlockProperty::GetByID($prop, $IBLOCK_ID);
if ($arRes = $dbRes->Fetch())
{
if ($arRes['PROPERTY_TYPE'] == 'L')
{
$dbRes = CIBlockProperty::GetPropertyEnum($prop, array(), array('VALUE' => $value));
if ($arRes = $dbRes->Fetch())
{
$value = $arRes['ID'];
}
}
}
}
break;
case 'Attachments':
$value = intval($value);
if ($value > 0)
{
$arQueue[] = array(
'SP_METHOD' => 'GetAttachmentCollection',
'SP_METHOD_PARAMS' => array(
'SP_ID' => $FIELD['ROW']['ID'],
),
'CALLBACK' => array(
'CIntranetSharepoint',
'SetPropertyValue',
array($FIELD['ROW']['UniqueId'], $fld['FIELD_ID'])
)
);
}
$value = null;
break;
case 'ContentTypeId':
case 'Lookup':
case 'Computed':
case 'Text':
default:
$bParseAsFile = false;
if ($bProperty)
{
$dbRes = CIBlockProperty::GetByID($prop, $IBLOCK_ID);
if ($arRes = $dbRes->Fetch())
{
if ($arRes['PROPERTY_TYPE'] == 'F')
$bParseAsFile = true;
}
}
elseif ($fld['FIELD_ID'] == 'PREVIEW_PICTURE' || $fld['FIELD_ID'] == 'DETAIL_PICTURE')
{
$bParseAsFile = true;
}
if ($bParseAsFile)
{
$arQueue[] = array(
'SP_METHOD' => 'LoadFile',
'SP_METHOD_PARAMS' => array(
'URL' => $value,
),
'CALLBACK' => array(
'CIntranetSharepoint',
'SetPropertyValue',
array($FIELD['ROW']['UniqueId'], $fld['FIELD_ID'])
)
);
$value = null;
}
}
if ($bProperty)
return array(
'VALUE' => $value,
'PROPERTY' => $prop
);
else
return array(
'VALUE' => $value,
'FIELD' => $fld['FIELD_ID']
);
}