public function UpdateListItems($listName, $arChanges) { $arMethodParams = array('listName' => $listName); $updates = CXMLCreator::createTagAttributed('Batch OnError="Continue" DateInUtc="TRUE" Properties="TRUE"'); $i = 0; foreach ($arChanges as $row) { $obRow = CXMLCreator::createTagAttributed('Method ID="' . $i++ . '"'); if ($ID = intval($row['ID'])) { $obRow->setAttribute('Cmd', 'Update'); } else { $obRow->setAttribute('Cmd', 'New'); unset($row['ID']); $obRow->addChild(CXMLCreator::createTagAttributed('Field Name="ID"', 'New')); $obRow->addChild(CXMLCreator::createTagAttributed('Field Name="MetaInfo" Property="ReplicationID"', $row['ReplicationID'])); unset($row['ReplicationID']); } foreach ($row as $fld => $value) { if (substr($fld, 0, 9) == 'MetaInfo_') { $obRow->addChild(CXMLCreator::createTagAttributed('Field Name="MetaInfo" Property="' . CXMLCreator::xmlspecialchars(substr($fld, 9)) . '"', $value)); } else { if ($fld) { $obRow->addChild(CXMLCreator::createTagAttributed('Field Name="' . CXMLCreator::xmlspecialchars($fld) . '"', $value)); } } } $updates->addChild($obRow); } $arMethodParams['updates'] = $updates; $RESULT = false; if ($this->__initialize() && $this->Call('UpdateListItems', $arMethodParams) && ($DOM = $this->RESPONSE->DOMDocument)) { $RESULT = array(); $arResults = $DOM->elementsByName('Result'); foreach ($arResults as $resultNode) { $arRes = array('ErrorCode' => $resultNode->children[0]->textContent(), 'Row' => $this->ConvertRows($resultNode)); if ($arRes['Row']) { $arRes['Row'] = $arRes['Row'][0]; } $RESULT[] = $arRes; } } $fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/sp_client5.log', 'a'); fwrite($fp, $this->getRawRequest()); fwrite($fp, $this->getRawResponse()); fwrite($fp, "\n==========================================\n\n"); fclose($fp); return $RESULT; }