function __get_import_profiles($strItemID) { 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'); $boolImportEdit = $USER->CanDoOperation('catalog_import_edit'); $boolImportExec = $USER->CanDoOperation('catalog_import_exec'); $arProfileList = array(); if (($boolRead || $boolImportEdit || $boolImportExec) && method_exists($adminMenu, "IsSectionActive")) { if ($adminMenu->IsSectionActive($strItemID)) { $rsProfiles = CCatalogImport::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_imp.php?lang=" . LANGUAGE_ID . "&ACT_FILE=" . $arProfile["FILE_NAME"] . "&ACTION=IMPORT&PROFILE_ID=" . $arProfile["ID"] . "&" . bitrix_sessid_get(), "title" => GetMessage("CAM_IMPORT_DESCR_IMPORT") . " "" . htmlspecialcharsbx($strName) . """, "readonly" => !$boolImportExec); } else { $arProfileList[] = array("text" => htmlspecialcharsbx($strName), "url" => "cat_import_setup.php?lang=" . LANGUAGE_ID . "&ACT_FILE=" . $arProfile["FILE_NAME"] . "&ACTION=IMPORT_EDIT&PROFILE_ID=" . $arProfile["ID"] . "&" . bitrix_sessid_get(), "title" => GetMessage("CAM_IMPORT_DESCR_EDIT") . " "" . htmlspecialcharsbx($strName) . """, "readonly" => !$boolImportEdit); } } } } return $arProfileList; }
public static function Update($ID, $arFields) { global $DB; $ID = (int) $ID; if ($ID <= 0) { return false; } if (!CCatalogImport::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 = 'N'"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $ID; }
public static function PreGenerateImport($profile_id) { global $DB; $profile_id = (int) $profile_id; if ($profile_id <= 0) { return false; } $ar_profile = CCatalogImport::GetByID($profile_id); if (!$ar_profile || 'Y' == $ar_profile['NEED_EDIT']) { return false; } $strFile = CATALOG_PATH2IMPORTS . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { $strFile = CATALOG_PATH2IMPORTS_DEF . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { CCatalogDiscountSave::Enable(); return false; } } $bFirstLoadStep = true; if (!defined("CATALOG_LOAD_NO_STEP")) { define("CATALOG_LOAD_NO_STEP", true); } $strImportErrorMessage = ""; $strImportOKMessage = ""; $bAllDataLoaded = true; $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(); CCatalogImport::Update($profile_id, array("=LAST_USE" => $DB->GetNowFunction())); return "CCatalogImport::PreGenerateImport(" . $profile_id . ");"; }
"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 = CCatalogImport::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('ID', $arProfile['ID']); $row->AddViewField("NAME", htmlspecialcharsbx($arReportParams["TITLE"])); $row->AddViewField("FILE", $strReportFile); $strProfileLink = ''; if ($bCanExec)
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; $profile_id = $argv[1]; require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; if (!defined("CATALOG_LOAD_NO_STEP")) { define("CATALOG_LOAD_NO_STEP", true); } if (CModule::IncludeModule("catalog")) { $profile_id = IntVal($profile_id); if ($profile_id <= 0) { die; } $ar_profile = CCatalogImport::GetByID($profile_id); if (!$ar_profile) { die; } if ($ar_profile["DEFAULT_PROFILE"] != "Y") { parse_str($ar_profile["SETUP_VARS"]); } $strFile = CATALOG_PATH2IMPORTS . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { $strFile = CATALOG_PATH2IMPORTS_DEF . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { die; } } $bFirstLoadStep = True; CCatalogDiscountSave::Disable(); @(include $_SERVER["DOCUMENT_ROOT"] . $strFile); CCatalogDiscountSave::Enable(); CCatalogImport::Update($profile_id, array("=LAST_USE" => $DB->GetNowFunction())); }
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"] = "N"; if (!CCatalogImport::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 = 'N'"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $ID; }
function OnBuildSaleImportMenu($strItemID) { global $adminMenu; if (empty($strItemID)) return array(); $arProfileList = array(); if ((self::$catalogRead || self::$catalogImportEdit || self::$catalogImportExec) && method_exists($adminMenu, "IsSectionActive")) { if ($adminMenu->IsSectionActive($strItemID)) { $rsProfiles = CCatalogImport::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_imp.php?lang=".LANGUAGE_ID."&ACT_FILE=".$arProfile["FILE_NAME"]."&ACTION=IMPORT&PROFILE_ID=".$arProfile["ID"]."&".bitrix_sessid_get(), "title" => Loc::getMessage("CAM_IMPORT_DESCR_IMPORT")." "".htmlspecialcharsbx($strName).""", "readonly" => !self::$catalogImportExec, ); } else { $arProfileList[] = array( "text" => htmlspecialcharsbx($strName), "url" => "cat_import_setup.php?lang=".LANGUAGE_ID."&ACT_FILE=".$arProfile["FILE_NAME"]."&ACTION=IMPORT_EDIT&PROFILE_ID=".$arProfile["ID"]."&".bitrix_sessid_get(), "title" => Loc::getMessage("CAM_IMPORT_DESCR_EDIT")." "".htmlspecialcharsbx($strName).""", "readonly" => !self::$catalogImportEdit, ); } } } } return $arProfileList; }
/** * <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/ccatalogimport/pregenerateimport.php * @author Bitrix */ public static function PreGenerateImport($profile_id) { global $DB; $profile_id = intval($profile_id); if ($profile_id <= 0) return false; $ar_profile = CCatalogImport::GetByID($profile_id); if ((!$ar_profile) || ('Y' == $ar_profile['NEED_EDIT'])) return false; $strFile = CATALOG_PATH2IMPORTS.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { $strFile = CATALOG_PATH2IMPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile)) { CCatalogDiscountSave::Enable(); return false; } } $bFirstLoadStep = true; if (!defined("CATALOG_LOAD_NO_STEP")) // define("CATALOG_LOAD_NO_STEP", true); $strImportErrorMessage = ""; $strImportOKMessage = ""; $bAllDataLoaded = true; $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(); CCatalogImport::Update($profile_id, array( "=LAST_USE" => $DB->GetNowFunction() ) ); return "CCatalogImport::PreGenerateImport(".$profile_id.");"; }
function PreGenerateImport($profile_id) { global $DB; $profile_id = IntVal($profile_id); if ($profile_id <= 0) { return false; } $ar_profile = CCatalogImport::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"]); } $bFirstLoadStep = True; if (!defined("CATALOG_LOAD_NO_STEP")) { define("CATALOG_LOAD_NO_STEP", true); } CCatalogDiscountSave::Disable(); $strFile = CATALOG_PATH2IMPORTS . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { $strFile = CATALOG_PATH2IMPORTS_DEF . $ar_profile["FILE_NAME"] . "_run.php"; if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $strFile)) { CCatalogDiscountSave::Enable(); return false; } } $strImportErrorMessage = ""; $strImportOKMessage = ""; $bAllDataLoaded = True; @(include $_SERVER["DOCUMENT_ROOT"] . $strFile); CCatalogDiscountSave::Enable(); CCatalogImport::Update($profile_id, array("=LAST_USE" => $DB->GetNowFunction())); return "CCatalogImport::PreGenerateImport(" . $profile_id . ");"; }