} $ID = intval($ID); // Id of the edited record $bCopy = $action == "copy"; $message = null; $bVarsFromForm = false; if ($REQUEST_METHOD == "POST" && ($save != "" || $apply != "") && $POST_RIGHT == "W" && check_bitrix_sessid()) { $profile = new CProfileAdmin(); $profile->SetSettings($IBLOCK_ID); $profile->SetSettings($SECTION_ID); $profile->SetSettings($GOOGLE_CATEGORY); $profile->SetSettings($CONDITION_RULE); $profile->SetSettings($XML_DATA); $arFields = array("NAME" => $NAME, "TYPE_RUN" => $TYPE_RUN, "FEED" => $FEED, "COMPANY" => $COMPANY, "SHOPNAME" => $SHOPNAME, "DESCRIPTION" => $DESCRIPTION, "DOMAIN_NAME" => $DOMAIN_NAME, "NAMESCHEMA" => $NAMESCHEMA, "ACTIVE" => $ACTIVE != "Y" ? "N" : "Y", "ENCODING" => $ENCODING, "IBLOCK_ID" => base64_encode(serialize($IBLOCK_ID)), "SECTION_ID" => base64_encode(serialize($SECTION_ID)), "GOOGLE_CATEGORY" => base64_encode(serialize($GOOGLE_CATEGORY)), "CONDITIONS" => $CONDITIONS, "LID" => $LID, "DETAIL_PAGE_URL" => $DETAIL_PAGE_URL, "USE_SKU" => $USE_SKU != "Y" ? "N" : "Y", "CHECK_INCLUDE" => $CHECK_INCLUDE != "Y" ? "N" : "Y", "FORORDER" => $FORORDER != "Y" ? "N" : "Y", "OTHER" => $OTHER != "Y" ? "N" : "Y", "CONDITION_RULE" => base64_encode(serialize($CONDITION_RULE)), "PRICE" => $PRICE, "XML_DATA" => base64_encode(serialize($XML_DATA)), "DATA_START" => strtotime($DATA_START), "PERIOD" => $PERIOD, "START_LAST_TIME" => $START_LAST_TIME, "USE_XML_FILE" => $USE_XML_FILE != "Y" ? "N" : "Y", "URL_DATA_FILE" => $URL_DATA_FILE, "AGELEVEL" => $AGELEVEL); if ($ID > 0) { $res = $profile->Update($ID, $arFields); } else { $ID = $profile->Add($arFields); $res = $ID > 0; } if ($res) { if ($apply != "") { LocalRedirect("/bitrix/admin/acrit_googlemerchant_edit.php?ID=" . $ID . "&mess=ok&lang=" . LANG . "&tabControl_active_tab=" . $_POST["tabControl_active_tab"]); } else { LocalRedirect("/bitrix/admin/acrit_googlemerchant_list.php?lang=" . LANG); } } else { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("gmprofile_save_error"), $e); } $bVarsFromForm = true;
public function ReturnXMLData($ID) { $l = new CGM($ID); if (!is_object($l)) { ShowMessage(GetMessage("ACRIT_GOOGLEMERCHANT_NOT_PROFILE")); exit; } $MS = CGMExport::ReturnMas(); $arResult = $l->GetElement('gm', $MS); if (strlen($arResult) > 0) { if ($l->USE_XML_FILE) { if (strlen($l->URL_DATA_FILE) <= 0) { ShowMessage(GetMessage('ACRIT_GOOGLEMERCHANT_BAD_FILENAME')); exit; } else { $FILE_PATH = Rel2Abs("/", $l->URL_DATA_FILE); CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $FILE_PATH); if (!($fp = @fopen($_SERVER["DOCUMENT_ROOT"] . $FILE_PATH, "wb"))) { ShowMessage(GetMessage('ACRIT_GOOGLEMERCHANT_BAD_OPENFILE')); exit; } else { $strXMLDATA = ''; $strXMLDATA .= '<?xml version="1.0" encoding="' . $l->ENCODING . '"?>' . PHP_EOL; $strXMLDATA .= '<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">' . PHP_EOL; $strXMLDATA .= '<title>' . $l->FEED . '</title>' . PHP_EOL; $strXMLDATA .= '<link rel="self" href="http://' . $l->DOMAIN_NAME . '"/>' . PHP_EOL; $strXMLDATA .= '<updated>' . date('c') . '</updated>' . PHP_EOL; $strXMLDATA .= '<author><name>' . $l->SHOPNAME . '</name></author>' . PHP_EOL; $strXMLDATA .= $arResult; $strXMLDATA .= "</feed>" . PHP_EOL; fwrite($fp, $strXMLDATA); @fclose($fp); } } } elseif (!$l->USE_XML_FILE) { header("Content-Type: text/xml; charset='" . $l->ENCODING . "'"); header("Pragma: no-cache"); echo '<?xml version="1.0" encoding="' . $l->ENCODING . '"?>' . PHP_EOL; echo '<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">' . PHP_EOL; echo '<title>' . $l->FEED . '</title>' . PHP_EOL; echo '<link rel="self" href="http://' . $l->DOMAIN_NAME . '"/>' . PHP_EOL; echo '<updated>' . date('c') . '</updated> ' . PHP_EOL; echo '<author><name>' . $l->SHOPNAME . '</name></author>' . PHP_EOL; echo $arResult; echo "</feed>" . PHP_EOL; } } else { ShowError(GetMessage("ACRIT_GOOGLEMERCHANT_NOT_ELEMENT")); } if ($l->TYPE_RUN == 'agent') { return "CGM::ReturnXMLData(" . $ID . ");"; } global $DB; $now = time() + CTimeZone::GetOffset(); $data['START_LAST_TIME_X'] = date($DB->DateFormatToPHP(FORMAT_DATETIME), $now); CProfileAdmin::Update($ID, $data); unset($data); unset($arResult); }