Ejemplo n.º 1
0
 /**
  * @param array $parameterDocumentType
  * @return array
  */
 public function getTypesMap(array $parameterDocumentType)
 {
     $k = implode('@', $parameterDocumentType);
     if (isset($this->typesMapCache[$k])) {
         return $this->typesMapCache[$k];
     }
     $result = FieldType::getBaseTypesMap();
     $documentFieldTypes = $this->GetDocumentFieldTypes($parameterDocumentType);
     foreach ($documentFieldTypes as $name => $field) {
         if (isset($field['typeClass'])) {
             $result[strtolower($name)] = $field['typeClass'];
         }
     }
     $this->typesMapCache[$k] = $result;
     return $result;
 }
Ejemplo n.º 2
0
 public function GetDocumentFieldTypes($documentType)
 {
     $v = substr($documentType, strlen("type_"));
     if (intval($v) . "!" != $v . "!") {
         throw new CBPArgumentOutOfRangeException("documentType", $documentType);
     }
     $iblockId = intval($v);
     $typesMap = FieldType::getBaseTypesMap();
     $arResult = array("S" => array("Name" => GetMessage("BPVDX_STRING"), "BaseType" => "string", 'typeClass' => $typesMap[FieldType::STRING]), "T" => array("Name" => GetMessage("BPVDX_TEXT"), "BaseType" => "text", 'typeClass' => $typesMap[FieldType::TEXT]), "N" => array("Name" => GetMessage("BPVDX_NUM"), "BaseType" => "double", 'typeClass' => $typesMap[FieldType::DOUBLE]), "L" => array("Name" => GetMessage("BPVDX_LIST"), "BaseType" => "select", "Complex" => true, 'typeClass' => $typesMap[FieldType::SELECT]), "F" => array("Name" => GetMessage("BPVDX_FILE"), "BaseType" => "file", 'typeClass' => $typesMap[FieldType::FILE]), "B" => array("Name" => GetMessage("BPVDX_YN"), "BaseType" => "bool", 'typeClass' => $typesMap[FieldType::BOOL]));
     foreach (CIBlockProperty::GetUserType() as $ar) {
         $t = $ar["PROPERTY_TYPE"] . ":" . $ar["USER_TYPE"];
         if (COption::GetOptionString("bizproc", "SkipNonPublicCustomTypes", "N") == "Y" && !array_key_exists("GetPublicEditHTML", $ar) && $t != "S:UserID" && $t != "S:DateTime") {
             continue;
         }
         $arResult[$t] = array("Name" => $ar["DESCRIPTION"], "BaseType" => "string", 'typeClass' => '\\Bitrix\\Iblock\\BizprocType\\UserTypeProperty');
         if ($t == "S:UserID") {
             $arResult[$t]["BaseType"] = "user";
             $arResult[$t]['typeClass'] = $typesMap[FieldType::USER];
         } elseif ($t == "S:employee" && COption::GetOptionString("bizproc", "employee_compatible_mode", "N") != "Y") {
             $arResult[$t]["BaseType"] = "user";
             $arResult[$t]['typeClass'] = '\\Bitrix\\Iblock\\BizprocType\\UserTypePropertyEmployee';
         } elseif ($t == "S:DateTime") {
             $arResult[$t]["BaseType"] = "datetime";
             $arResult[$t]["typeClass"] = $typesMap[FieldType::DATETIME];
         } elseif ($t == "S:Date") {
             $arResult[$t]["BaseType"] = "date";
             $arResult[$t]["typeClass"] = $typesMap[FieldType::DATE];
         } elseif ($t == "E:EList") {
             $arResult[$t]["BaseType"] = "string";
             $arResult[$t]["Complex"] = true;
             $arResult[$t]['typeClass'] = '\\Bitrix\\Iblock\\BizprocType\\UserTypePropertyElist';
         } elseif ($t == 'S:HTML') {
             $arResult[$t]['typeClass'] = '\\Bitrix\\Iblock\\BizprocType\\UserTypePropertyHtml';
         } elseif ($t == 'S:DiskFile') {
             $arResult[$t]["BaseType"] = "int";
             $arResult[$t]['typeClass'] = '\\Bitrix\\Iblock\\BizprocType\\UserTypePropertyDiskFile';
         }
     }
     return $arResult;
 }