function __get_export_profiles($strItemID) { // this code is copy CCatalogAdmin::OnBuildSaleExportMenu global $USER; global $adminMenu; if (!isset($USER) || !($USER instanceof CUser && 'CUser' == get_class($USER))) { return array(); } if (empty($strItemID)) { return array(); } $boolRead = $USER->CanDoOperation('catalog_read'); $boolExportEdit = $USER->CanDoOperation('catalog_export_edit'); $boolExportExec = $USER->CanDoOperation('catalog_export_exec'); $arProfileList = array(); if (($boolRead || $boolExportEdit || $boolExportExec) && method_exists($adminMenu, "IsSectionActive")) { if ($adminMenu->IsSectionActive($strItemID)) { $rsProfiles = CCatalogExport::GetList(array("NAME" => "ASC", "ID" => "ASC"), array("IN_MENU" => "Y")); while ($arProfile = $rsProfiles->Fetch()) { $strName = strlen($arProfile["NAME"]) > 0 ? $arProfile["NAME"] : $arProfile["FILE_NAME"]; if ('Y' == $arProfile['DEFAULT_PROFILE']) { $arProfileList[] = array("text" => htmlspecialcharsbx($strName), "url" => "cat_exec_exp.php?lang=" . LANGUAGE_ID . "&ACT_FILE=" . $arProfile["FILE_NAME"] . "&ACTION=EXPORT&PROFILE_ID=" . $arProfile["ID"] . "&" . bitrix_sessid_get(), "title" => GetMessage("CAM_EXPORT_DESCR_EXPORT") . " "" . htmlspecialcharsbx($strName) . """, "readonly" => !$boolExportExec); } else { $arProfileList[] = array("text" => htmlspecialcharsbx($strName), "url" => "cat_export_setup.php?lang=" . LANGUAGE_ID . "&ACT_FILE=" . $arProfile["FILE_NAME"] . "&ACTION=EXPORT_EDIT&PROFILE_ID=" . $arProfile["ID"] . "&" . bitrix_sessid_get(), "title" => GetMessage("CAM_EXPORT_DESCR_EDIT") . " "" . htmlspecialcharsbx($strName) . """, "readonly" => !$boolExportEdit); } } } } return $arProfileList; }
public static function Update($ID, $arFields) { global $DB; $ID = (int) $ID; if ($ID <= 0) { return false; } if (!CCatalogExport::CheckFields("UPDATE", $arFields)) { return false; } $strUpdate = $DB->PrepareUpdate("b_catalog_export", $arFields); if (!empty($strUpdate)) { $strSql = "update b_catalog_export set " . $strUpdate . " where ID = " . $ID . " and IS_EXPORT = 'Y'"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $ID; }
function PreGenerateExport($profile_id) { global $DB; $profile_id = intval($profile_id); if ($profile_id <= 0) { return false; } $ar_profile = CCatalogExport::GetByID($profile_id); if (!$ar_profile || 'Y' == $ar_profile['NEED_EDIT']) { return false; } if ($ar_profile["DEFAULT_PROFILE"] != "Y") { parse_str($ar_profile["SETUP_VARS"]); } CCatalogDiscountSave::Disable(); $strFile = CATALOG_PATH2EXPORTS . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { $strFile = CATALOG_PATH2EXPORTS_DEF . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { return false; } } @(include $_SERVER["DOCUMENT_ROOT"] . $strFile); CCatalogDiscountSave::Enable(); CCatalogExport::Update($profile_id, array("=LAST_USE" => $DB->GetNowFunction())); return "CCatalogExport::PreGenerateExport(" . $profile_id . ");"; }
if (!empty($arSetupVars) && is_array($arSetupVars)) { $intSetupVarsCount = extract($arSetupVars, EXTR_SKIP); } } global $arCatalogAvailProdFields; $arCatalogAvailProdFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_ELEMENT); global $arCatalogAvailPriceFields; $arCatalogAvailPriceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_CATALOG); global $arCatalogAvailValueFields; $arCatalogAvailValueFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE); global $arCatalogAvailQuantityFields; $arCatalogAvailQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT); global $arCatalogAvailGroupFields; $arCatalogAvailGroupFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_SECTION); global $defCatalogAvailProdFields; $defCatalogAvailProdFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_ELEMENT); global $defCatalogAvailPriceFields; $defCatalogAvailPriceFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CATALOG); global $defCatalogAvailValueFields; $defCatalogAvailValueFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE); global $defCatalogAvailQuantityFields; $defCatalogAvailQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT); global $defCatalogAvailGroupFields; $defCatalogAvailGroupFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_SECTION); global $defCatalogAvailCurrencies; $defCatalogAvailCurrencies = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CURRENCY); CCatalogDiscountSave::Disable(); include $_SERVER["DOCUMENT_ROOT"] . $strFile; CCatalogDiscountSave::Enable(); CCatalogExport::Update($profile_id, array("=LAST_USE" => $DB->GetNowFunction())); }
public static function PreGenerateExport($profile_id) { global $DB; $profile_id = (int) $profile_id; if ($profile_id <= 0) { return false; } $ar_profile = CCatalogExport::GetByID($profile_id); if (!$ar_profile || 'Y' == $ar_profile['NEED_EDIT']) { return false; } $strFile = CATALOG_PATH2EXPORTS . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { $strFile = CATALOG_PATH2EXPORTS_DEF . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { return false; } } $arSetupVars = array(); $intSetupVarsCount = 0; if ('Y' != $ar_profile["DEFAULT_PROFILE"]) { parse_str($ar_profile["SETUP_VARS"], $arSetupVars); if (!empty($arSetupVars) && is_array($arSetupVars)) { $intSetupVarsCount = extract($arSetupVars, EXTR_SKIP); } } global $arCatalogAvailProdFields; $arCatalogAvailProdFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_ELEMENT); global $arCatalogAvailPriceFields; $arCatalogAvailPriceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_CATALOG); global $arCatalogAvailValueFields; $arCatalogAvailValueFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE); global $arCatalogAvailQuantityFields; $arCatalogAvailQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT); global $arCatalogAvailGroupFields; $arCatalogAvailGroupFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_SECTION); global $defCatalogAvailProdFields; $defCatalogAvailProdFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_ELEMENT); global $defCatalogAvailPriceFields; $defCatalogAvailPriceFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CATALOG); global $defCatalogAvailValueFields; $defCatalogAvailValueFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE); global $defCatalogAvailQuantityFields; $defCatalogAvailQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT); global $defCatalogAvailGroupFields; $defCatalogAvailGroupFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_SECTION); global $defCatalogAvailCurrencies; $defCatalogAvailCurrencies = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CURRENCY); CCatalogDiscountSave::Disable(); include $_SERVER["DOCUMENT_ROOT"] . $strFile; CCatalogDiscountSave::Enable(); CCatalogExport::Update($profile_id, array("=LAST_USE" => $DB->GetNowFunction())); return "CCatalogExport::PreGenerateExport(" . $profile_id . ");"; }
function DoUninstall() { global $APPLICATION; CAgent::RemoveAgent("ICrmOrderActions::uploadOrdersAgent();", $this->MODULE_ID); CAgent::RemoveAgent("ICrmOrderActions::orderHistoryAgent();", $this->MODULE_ID); CAgent::RemoveAgent("ICrmOrderActions::orderAgent();", $this->MODULE_ID); COption::RemoveOption($this->MODULE_ID, $this->CRM_API_HOST_OPTION); COption::RemoveOption($this->MODULE_ID, $this->CRM_API_KEY_OPTION); COption::RemoveOption($this->MODULE_ID, $this->CRM_DELIVERY_TYPES_ARR); COption::RemoveOption($this->MODULE_ID, $this->CRM_PAYMENT_TYPES); COption::RemoveOption($this->MODULE_ID, $this->CRM_PAYMENT_STATUSES); COption::RemoveOption($this->MODULE_ID, $this->CRM_PAYMENT); COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_LAST_ID); COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_SITES); COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_PROPS); COption::RemoveOption($this->MODULE_ID, $this->CRM_LEGAL_DETAILS); COption::RemoveOption($this->MODULE_ID, $this->CRM_CONTRAGENT_TYPE); COption::RemoveOption($this->MODULE_ID, $this->CRM_CUSTOM_FIELDS); COption::RemoveOption($this->MODULE_ID, $this->CRM_SITES_LIST); COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_DISCHARGE); COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_FAILED_IDS); COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_HISTORY_DATE); COption::RemoveOption($this->MODULE_ID, $this->CRM_CATALOG_BASE_PRICE); COption::RemoveOption($this->MODULE_ID, $this->CRM_CATALOG_IBLOCKS); UnRegisterModuleDependences("sale", "OnSalePayOrder", $this->MODULE_ID, "ICrmOrderEvent", "onSalePayOrder"); UnRegisterModuleDependences("sale", "OnSaleCancelOrder", $this->MODULE_ID, "ICrmOrderEvent", "onSaleCancelOrder"); UnRegisterModuleDependences("sale", "OnOrderNewSendEmail", $this->MODULE_ID, "ICrmOrderEvent", "onSendOrderMail"); UnRegisterModuleDependences("sale", "OnOrderUpdate", $this->MODULE_ID, "ICrmOrderEvent", "onUpdateOrder"); UnRegisterModuleDependences("sale", "OnBeforeOrderAdd", $this->MODULE_ID, "ICrmOrderEvent", "onBeforeOrderAdd"); UnRegisterModuleDependences("sale", "OnBeforeOrderAccountNumberSet", $this->MODULE_ID, "ICrmOrderEvent", "onBeforeOrderAccountNumberSet"); UnRegisterModuleDependences("sale", "OnSaleBeforeReserveOrder", $this->MODULE_ID, "ICrmOrderEvent", "onSaleBeforeReserveOrder"); UnRegisterModuleDependences("sale", "OnSaleReserveOrder", $this->MODULE_ID, "ICrmOrderEvent", "onSaleReserveOrder"); if (CModule::IncludeModule("catalog")) { if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/include/catalog_export/' . $this->INTARO_CRM_EXPORT . '_run.php')) { $dbProfile = CCatalogExport::GetList(array(), array("FILE_NAME" => $this->INTARO_CRM_EXPORT)); while ($arProfile = $dbProfile->Fetch()) { if ($arProfile["DEFAULT_PROFILE"] != "Y") { CAgent::RemoveAgent("CCatalogExport::PreGenerateExport(" . $arProfile['ID'] . ");", "catalog"); CCatalogExport::Delete($arProfile['ID']); } } } } $this->DeleteFiles(); UnRegisterModule($this->MODULE_ID); $APPLICATION->IncludeAdminFile(GetMessage('MODULE_UNINSTALL_TITLE'), $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . $this->MODULE_ID . '/install/unstep1.php'); }
function OnBuildSaleExportMenu($strItemID) { global $adminMenu; if (empty($strItemID)) return array(); $arProfileList = array(); if ((self::$catalogRead || self::$catalogExportEdit || self::$catalogExportExec) && method_exists($adminMenu, "IsSectionActive")) { if ($adminMenu->IsSectionActive($strItemID)) { $rsProfiles = CCatalogExport::GetList(array("NAME"=>"ASC", "ID"=>"ASC"), array("IN_MENU"=>"Y")); while ($arProfile = $rsProfiles->Fetch()) { $arProfile['NAME'] = (string)$arProfile['NAME']; $strName = ($arProfile["NAME"] != '' ? $arProfile["NAME"] : $arProfile["FILE_NAME"]); if ($arProfile['DEFAULT_PROFILE'] == 'Y') { $arProfileList[] = array( "text" => htmlspecialcharsbx($strName), "url" => "cat_exec_exp.php?lang=".LANGUAGE_ID."&ACT_FILE=".$arProfile["FILE_NAME"]."&ACTION=EXPORT&PROFILE_ID=".$arProfile["ID"]."&".bitrix_sessid_get(), "title" => Loc::getMessage("CAM_EXPORT_DESCR_EXPORT")." "".htmlspecialcharsbx($strName).""", "readonly" => !self::$catalogExportExec, ); } else { $arProfileList[] = array( "text" => htmlspecialcharsbx($strName), "url" => "cat_export_setup.php?lang=".LANGUAGE_ID."&ACT_FILE=".$arProfile["FILE_NAME"]."&ACTION=EXPORT_EDIT&PROFILE_ID=".$arProfile["ID"]."&".bitrix_sessid_get(), "title"=>Loc::getMessage("CAM_EXPORT_DESCR_EDIT")." "".htmlspecialcharsbx($strName).""", "readonly" => !self::$catalogExportEdit, ); } } } } return $arProfileList; }
$arActions[] = array("DEFAULT" => true, "TEXT" => GetMessage("CES_RUN_EXPORT"), "TITLE" => GetMessage("CES_RUN_EXPORT_DESCR"), "ACTION" => $lAdmin->ActionRedirect($APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . urlencode($strReportFile) . "&" . bitrix_sessid_get() . "&ACTION=EXPORT&PROFILE_ID=0")); $arActions[] = array("TEXT" => GetMessage('CES_ADD_PROFILE'), "TITLE" => GetMessage('CES_ADD_PROFILE_DESCR'), "ACTION" => $lAdmin->ActionRedirect($APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . urlencode($strReportFile) . "&ACTION=EXPORT_SETUP" . "&" . bitrix_sessid_get())); } if (!empty($arActions)) { $arActions[] = array("SEPARATOR" => true); } if ($bCanEdit) { $arActions[] = array("TEXT" => GetMessage("CES_TO_LEFT_MENU"), "TITLE" => GetMessage("CES_TO_LEFT_MENU_DESCR"), "ACTION" => $lAdmin->ActionRedirect($APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . urlencode($strReportFile) . "&" . bitrix_sessid_get() . "&ACTION=MENU&PROFILE_ID=0")); } if (empty($arReportParams["FILE_SETUP"]) && $USER->CanDoOperation('edit_php')) { $arActions[] = array("TEXT" => GetMessage("CES_TO_AGENT"), "TITLE" => GetMessage("CES_TO_AGENT_DESCR"), "ACTION" => "ShowAgentForm('" . $APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . $strReportFile . "&" . bitrix_sessid_get() . "&ACTION=AGENT&PROFILE_ID=0');"); $arActions[] = array("DISABLED" => $bWindowsHosting, "TEXT" => GetMessage("CES_TO_CRON"), "TITLE" => GetMessage("CES_TO_CRON_DESCR"), "ACTION" => $bWindowsHosting ? '' : "ShowCronForm('" . $APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . $strReportFile . "&" . bitrix_sessid_get() . "&ACTION=CRON&PROFILE_ID=0', true);"); } $row->AddActions($arActions); } $rsProfiles = CCatalogExport::GetList(array("LAST_USE" => "DESC", "NAME" => "ASC"), array("FILE_NAME" => $strReportFile, '!DEFAULT_PROFILE' => 'Y')); while ($arProfile = $rsProfiles->Fetch()) { $arProfile['USED'] = $arProfile['LAST_USE_FORMAT']; $boolNeedEdit = isset($arProfile['NEED_EDIT']) && 'Y' == $arProfile['NEED_EDIT']; $row =& $lAdmin->AddRow($arProfile['ID'], $arProfile); $row->AddViewField("NAME", htmlspecialcharsbx($arReportParams["TITLE"])); $row->AddViewField("FILE", $strReportFile); $strProfileLink = ''; if ($bCanExec) { if ($boolNeedEdit) { $strProfileLink = '<a href="' . $APPLICATION->GetCurPage() . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . urlencode($strReportFile) . "&ACTION=EXPORT_EDIT&PROFILE_ID=" . $arProfile["ID"] . "&" . bitrix_sessid_get() . '" title="' . GetMessage("CES_EDIT_PROPFILE_DESCR") . '">' . htmlspecialcharsbx($arProfile["NAME"]) . '</a>' . '<br /><i>(' . GetMessage('CES_NEED_EDIT') . ')</i>'; } else { $strProfileLink = '<a href="' . ('Y' == $arProfile["IN_MENU"] ? "/bitrix/admin/cat_exec_exp.php" : $APPLICATION->GetCurPage()) . "?lang=" . LANGUAGE_ID . "&ACT_FILE=" . urlencode($strReportFile) . "&ACTION=EXPORT&PROFILE_ID=" . $arProfile["ID"] . "&" . bitrix_sessid_get() . '" title="' . GetMessage("export_setup_begin") . '">' . htmlspecialcharsbx($arProfile["NAME"]) . '</a>'; } } else { $strProfileLink = htmlspecialcharsbx($arProfile["NAME"]);
function Update($ID, $arFields) { global $DB; global $USER; $ID = intval($ID); $boolNoUpdate = false; $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { if ('=LAST_USE' == $key) { if ($value == $DB->GetNowFunction()) { $arFields1['LAST_USE'] = $DB->GetNowFunction(); $boolNoUpdate = true; } } unset($arFields[$key]); } } if (array_key_exists('CREATED_BY', $arFields)) { unset($arFields['CREATED_BY']); } if (array_key_exists('DATE_CREATE', $arFields)) { unset($arFields['DATE_CREATE']); } if (array_key_exists('TIMESTAMP_X', $arFields)) { unset($arFields['TIMESTAMP_X']); } if (!$boolNoUpdate) { if (isset($USER) && $USER instanceof CUser && 'CUser' == get_class($USER)) { if (!array_key_exists('MODIFIED_BY', $arFields) || intval($arFields["MODIFIED_BY"]) <= 0) { $arFields["MODIFIED_BY"] = intval($USER->GetID()); } } $arFields1['TIMESTAMP_X'] = $DB->GetNowFunction(); } else { if (array_key_exists('MODIFIED_BY', $arFields)) { unset($arFields['MODIFIED_BY']); } } $arFields["IS_EXPORT"] = "Y"; if (!CCatalogExport::CheckFields("UPDATE", $arFields)) { return false; } $strUpdate = $DB->PrepareUpdate("b_catalog_export", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } $strSql = "UPDATE b_catalog_export SET " . $strUpdate . " WHERE ID = " . $ID . " AND IS_EXPORT = 'Y'"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $ID; }
/** * <p>Метод выполняет профиль <i>profile_id</i> на агенте.</p> * * * * * @param int $profile_id Код выполняемого профиля. * * * * @return mixed <p>В случае успешного выполнения профиля экспорта метод * возвращает строку для следующего вызова агента. В противном * случае метод вернет <i>false</i>.</p><br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/catalog/classes/ccatalogexport/pregenerateexport.php * @author Bitrix */ public static function PreGenerateExport($profile_id) { global $DB; $profile_id = intval($profile_id); if ($profile_id<=0) return false; $ar_profile = CCatalogExport::GetByID($profile_id); if ((!$ar_profile) || ('Y' == $ar_profile['NEED_EDIT'])) return false; $strFile = CATALOG_PATH2EXPORTS.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { $strFile = CATALOG_PATH2EXPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { return false; } } $arSetupVars = array(); $intSetupVarsCount = 0; if ('Y' != $ar_profile["DEFAULT_PROFILE"]) { parse_str($ar_profile["SETUP_VARS"], $arSetupVars); if (!empty($arSetupVars) && is_array($arSetupVars)) { $intSetupVarsCount = extract($arSetupVars, EXTR_SKIP); } } CCatalogDiscountSave::Disable(); include($_SERVER["DOCUMENT_ROOT"].$strFile); CCatalogDiscountSave::Enable(); CCatalogExport::Update($profile_id, array( "=LAST_USE" => $DB->GetNowFunction() ) ); return "CCatalogExport::PreGenerateExport(".$profile_id.");"; }