예제 #1
0
 public static function convertValue($method, $valueType, $value)
 {
     $result = null;
     $convert = 'no';
     if ($valueType === 'datetime' || $valueType === 'date') {
         $postfix = '';
         switch ($valueType) {
             case 'datetime':
                 $postfix = '_dt';
                 break;
             case 'date':
                 $postfix = '_d';
                 break;
         }
         switch ($method) {
             case 'add':
             case 'update':
                 $convert = 'in' . $postfix;
                 break;
             case 'list':
             case 'get':
                 $convert = 'out' . $postfix;
                 break;
         }
     }
     switch ($convert) {
         case 'no':
             $result = $value;
             break;
         case 'in_dt':
             $result = CRestUtil::unConvertDateTime($value);
             break;
         case 'in_d':
             $result = CRestUtil::unConvertDate($value);
             break;
         case 'out_dt':
             $result = CRestUtil::ConvertDateTime($value);
             break;
         case 'out_d':
             $result = CRestUtil::ConvertDate($value);
             break;
     }
     return $result;
 }
예제 #2
0
파일: rest.php 프로젝트: ASDAFF/bxApiDocs
	public static function getGroup($arFields, $n, $server)
	{
		$arOrder = $arFields['ORDER'];
		if(!is_array($arOrder))
			$arOrder = array("ID" => "DESC");

		$arFilter = self::checkGroupFilter($arFields['FILTER']);
		$arFilter['CHECK_PERMISSIONS'] = 'Y';

		$result = array();
		$dbRes = CSocNetGroup::GetList($arOrder, $arFilter, false, self::getNavData($n));
		while($arRes = $dbRes->Fetch())
		{
			$arRes['DATE_CREATE'] = CRestUtil::ConvertDateTime($arRes['DATE_CREATE']);
			$arRes['DATE_UPDATE'] = CRestUtil::ConvertDateTime($arRes['DATE_UPDATE']);
			$arRes['DATE_ACTIVITY'] = CRestUtil::ConvertDateTime($arRes['DATE_ACTIVITY']);

			if($arRes['IMAGE_ID'] > 0)
			{
				$arRes['IMAGE'] = self::getFile($arRes['IMAGE_ID']);
			}

			unset($arRes['INITIATE_PERMS']);
			unset($arRes['SPAM_PERMS']);
			unset($arRes['IMAGE_ID']);

			$result[] = $arRes;
		}

		return self::setNavData($result, $dbRes);
	}
예제 #3
0
 public static function getGroup($arFields, $n, $server)
 {
     $arOrder = $arFields['ORDER'];
     if (!is_array($arOrder)) {
         $arOrder = array("ID" => "DESC");
     }
     if ($arFields['IS_ADMIN'] == 'Y') {
         if (!CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, false)) {
             unset($arFields['IS_ADMIN']);
         }
     }
     $arFilter = self::checkGroupFilter($arFields['FILTER']);
     if ($arFields['IS_ADMIN'] != 'Y') {
         $arFilter['CHECK_PERMISSIONS'] = $GLOBALS["USER"]->GetID();
     }
     $result = array();
     $dbRes = CSocNetGroup::GetList($arOrder, $arFilter, false, self::getNavData($n));
     while ($arRes = $dbRes->Fetch()) {
         $arRes['DATE_CREATE'] = CRestUtil::ConvertDateTime($arRes['DATE_CREATE']);
         $arRes['DATE_UPDATE'] = CRestUtil::ConvertDateTime($arRes['DATE_UPDATE']);
         $arRes['DATE_ACTIVITY'] = CRestUtil::ConvertDateTime($arRes['DATE_ACTIVITY']);
         if ($arRes['IMAGE_ID'] > 0) {
             $arRes['IMAGE'] = self::getFile($arRes['IMAGE_ID']);
         }
         if (CModule::IncludeModule("extranet") && ($extranet_site_id = CExtranet::GetExtranetSiteID())) {
             $arRes["IS_EXTRANET"] = "N";
             $rsGroupSite = CSocNetGroup::GetSite($arRes["ID"]);
             while ($arGroupSite = $rsGroupSite->Fetch()) {
                 if ($arGroupSite["LID"] == $extranet_site_id) {
                     $arRes["IS_EXTRANET"] = "Y";
                     break;
                 }
             }
         }
         unset($arRes['INITIATE_PERMS']);
         unset($arRes['SPAM_PERMS']);
         unset($arRes['IMAGE_ID']);
         $result[] = $arRes;
     }
     return self::setNavData($result, $dbRes);
 }
예제 #4
0
 public static function onCallEnd($arParams)
 {
     $arParams['CALL_START_DATE'] = CRestUtil::ConvertDateTime($arParams['CALL_START_DATE']);
     return $arParams;
 }
예제 #5
0
 protected function externalizeFields(&$fields, &$fieldsInfo)
 {
     if (!is_array($fields)) {
         return;
     }
     //Multi fields processing
     if (isset($fields['FM'])) {
         foreach ($fields['FM'] as $fmTypeID => &$fmItems) {
             foreach ($fmItems as &$fmItem) {
                 $fmItem['TYPE_ID'] = $fmTypeID;
                 unset($fmItem['ENTITY_ID'], $fmItem['ELEMENT_ID']);
             }
             unset($fmItem);
             $fields[$fmTypeID] = $fmItems;
         }
         unset($fmItems);
         unset($fields['FM']);
     }
     foreach ($fields as $k => $v) {
         $info = isset($fieldsInfo[$k]) ? $fieldsInfo[$k] : null;
         if (!$info) {
             unset($fields[$k]);
             continue;
         }
         $attrs = isset($info['ATTRIBUTES']) ? $info['ATTRIBUTES'] : array();
         $isMultiple = in_array(CCrmFieldInfoAttr::Multiple, $attrs, true);
         $isHidden = in_array(CCrmFieldInfoAttr::Hidden, $attrs, true);
         $isDynamic = in_array(CCrmFieldInfoAttr::Dynamic, $attrs, true);
         if ($isHidden) {
             unset($fields[$k]);
             continue;
         }
         $fieldType = isset($info['TYPE']) ? $info['TYPE'] : '';
         if ($fieldType === 'datetime') {
             if (!is_array($v)) {
                 $fields[$k] = CRestUtil::ConvertDateTime($v);
             } else {
                 $fields[$k] = array();
                 foreach ($v as &$value) {
                     $fields[$k][] = CRestUtil::ConvertDateTime($value);
                 }
                 unset($value);
             }
         } elseif ($fieldType === 'file') {
             $this->tryExternalizeFileField($fields, $k, $isMultiple, $isDynamic);
         } elseif ($fieldType === 'webdav') {
             $this->tryExternalizeWebDavElementField($fields, $k, $isMultiple);
         } elseif ($fieldType === 'diskfile') {
             $this->tryExternalizeDiskFileField($fields, $k, $isMultiple);
         }
     }
 }
예제 #6
0
 protected function tryExternalizeProductPropertyField(&$fields, &$fieldsInfo, $fieldName)
 {
     if (!is_array($fields) || !isset($fields[$fieldName])) {
         return;
     }
     $info = isset($fieldsInfo[$fieldName]) ? $fieldsInfo[$fieldName] : null;
     $value = isset($fields[$fieldName]) ? $fields[$fieldName] : null;
     if (!$info) {
         unset($fields[$fieldName]);
         return;
     }
     $attrs = isset($info['ATTRIBUTES']) ? $info['ATTRIBUTES'] : array();
     $isMultiple = in_array(CCrmFieldInfoAttr::Multiple, $attrs, true);
     $isDynamic = in_array(CCrmFieldInfoAttr::Dynamic, $attrs, true);
     $fieldType = isset($info['TYPE']) ? $info['TYPE'] : '';
     $propertyType = isset($info['PROPERTY_TYPE']) ? $info['PROPERTY_TYPE'] : '';
     $userType = isset($info['USER_TYPE']) ? $info['USER_TYPE'] : '';
     if ($fieldType === 'product_property' && $propertyType === 'S' && $userType === 'Date') {
         if (self::isIndexedArray($value)) {
             $fields[$fieldName] = array();
             CTimeZone::Disable();
             foreach ($value as $valueElement) {
                 if (isset($valueElement['VALUE_ID']) && isset($valueElement['VALUE'])) {
                     $fields[$fieldName][] = array('valueId' => $valueElement['VALUE_ID'], 'value' => CRestUtil::ConvertDate($valueElement['VALUE']));
                 }
             }
             CTimeZone::Enable();
         } else {
             if (isset($value['VALUE_ID']) && isset($value['VALUE'])) {
                 CTimeZone::Disable();
                 $fields[$fieldName] = array('valueId' => $value['VALUE_ID'], 'value' => CRestUtil::ConvertDate($value['VALUE']));
                 CTimeZone::Enable();
             } else {
                 $fields[$fieldName] = null;
             }
         }
     } elseif ($fieldType === 'product_property' && $propertyType === 'S' && $userType === 'DateTime') {
         if (self::isIndexedArray($value)) {
             $fields[$fieldName] = array();
             foreach ($value as $valueElement) {
                 if (isset($valueElement['VALUE_ID']) && isset($valueElement['VALUE'])) {
                     $fields[$fieldName][] = array('valueId' => $valueElement['VALUE_ID'], 'value' => CRestUtil::ConvertDateTime($valueElement['VALUE']));
                 }
             }
         } else {
             if (isset($value['VALUE_ID']) && isset($value['VALUE'])) {
                 $fields[$fieldName] = array('valueId' => $value['VALUE_ID'], 'value' => CRestUtil::ConvertDateTime($value['VALUE']));
             } else {
                 $fields[$fieldName] = null;
             }
         }
     } elseif ($fieldType === 'product_property' && $propertyType === 'F' && empty($userType)) {
         $this->tryExternalizeProductFileField($fields, $fieldName, $isMultiple, $isDynamic);
     } else {
         if (self::isIndexedArray($value)) {
             $fields[$fieldName] = array();
             foreach ($value as $valueElement) {
                 if (isset($valueElement['VALUE_ID']) && isset($valueElement['VALUE'])) {
                     $fields[$fieldName][] = array('valueId' => $valueElement['VALUE_ID'], 'value' => $valueElement['VALUE']);
                 }
             }
         } else {
             if (isset($value['VALUE_ID']) && isset($value['VALUE'])) {
                 $fields[$fieldName] = array('valueId' => $value['VALUE_ID'], 'value' => $value['VALUE']);
             } else {
                 $fields[$fieldName] = null;
             }
         }
     }
 }