Esempio n. 1
0
 /**
  * Method return array with all information about document. Array used for method RecoverDocumentFromHistory.
  *
  * @param string $documentId - document id.
  * @return array - document information array.
  */
 public function GetDocumentForHistory($documentId, $historyIndex)
 {
     $documentId = intval($documentId);
     if ($documentId <= 0) {
         throw new CBPArgumentNullException("documentId");
     }
     $result = null;
     $dbDocumentList = CIBlockElement::getList(array(), array("ID" => $documentId, "SHOW_NEW" => "Y", "SHOW_HISTORY" => "Y"));
     if ($objDocument = $dbDocumentList->getNextElement()) {
         $fields = $objDocument->getFields();
         $properties = $objDocument->getProperties();
         $result["NAME"] = $fields["~NAME"];
         $result["FIELDS"] = array();
         foreach ($fields as $fieldKey => $fieldValue) {
             if ($fieldKey == "~PREVIEW_PICTURE" || $fieldKey == "~DETAIL_PICTURE") {
                 $result["FIELDS"][substr($fieldKey, 1)] = CBPDocument::prepareFileForHistory(array("lists", get_called_class(), $documentId), $fieldValue, $historyIndex);
             } elseif (substr($fieldKey, 0, 1) == "~") {
                 $result["FIELDS"][substr($fieldKey, 1)] = $fieldValue;
             }
         }
         $result["PROPERTIES"] = array();
         foreach ($properties as $propertyKey => $propertyValue) {
             if (strlen($propertyValue["USER_TYPE"]) > 0) {
                 $result["PROPERTIES"][$propertyKey] = array("VALUE" => $propertyValue["VALUE"], "DESCRIPTION" => $propertyValue["DESCRIPTION"]);
             } elseif ($propertyValue["PROPERTY_TYPE"] == "L") {
                 $result["PROPERTIES"][$propertyKey] = array("VALUE" => $propertyValue["VALUE_ENUM_ID"], "DESCRIPTION" => $propertyValue["DESCRIPTION"]);
             } elseif ($propertyValue["PROPERTY_TYPE"] == "F") {
                 $result["PROPERTIES"][$propertyKey] = array("VALUE" => CBPDocument::prepareFileForHistory(array("lists", get_called_class(), $documentId), $propertyValue["VALUE"], $historyIndex), "DESCRIPTION" => $propertyValue["DESCRIPTION"]);
             } else {
                 $result["PROPERTIES"][$propertyKey] = array("VALUE" => $propertyValue["VALUE"], "DESCRIPTION" => $propertyValue["DESCRIPTION"]);
             }
         }
     }
     return $result;
 }