/** @global CUser $USER */ use Bitrix\Main; use Bitrix\Currency; if ($USER->CanDoOperation('catalog_read') || $USER->CanDoOperation('catalog_price') || $USER->CanDoOperation('catalog_view')) { IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/catalog/templates/product_edit.php'); $currencyList = array(); foreach (Currency\CurrencyManager::getCurrencyList() as $currency => $currencyName) { $currencyList[$currency] = array('CURRENCY' => $currency, 'FULL_NAME' => htmlspecialcharsex($currencyName), 'FULL_NAME_JS' => CUtil::JSEscape(htmlspecialcharsbx($currencyName))); } unset($currency, $currencyName); $IBLOCK_ID = (int) $IBLOCK_ID; if ($IBLOCK_ID <= 0) { return; } $MENU_SECTION_ID = (int) $MENU_SECTION_ID; $PRODUCT_ID = $ID > 0 ? CIBlockElement::GetRealElement($ID) : 0; $arBaseProduct = false; $periodTimeTypes = array(); if ($arMainCatalog['SUBSCRIPTION'] == 'Y') { $arDefProduct = array('QUANTITY' => '', 'QUANTITY_RESERVED' => '', 'VAT_ID' => 0, 'VAT_INCLUDED' => 'N', 'QUANTITY_TRACE_ORIG' => 'D', 'CAN_BUY_ZERO_ORIG' => 'D', 'PRICE_TYPE' => '', 'RECUR_SCHEME_TYPE' => '', 'RECUR_SCHEME_LENGTH' => '', 'TRIAL_PRICE_ID' => '', 'WITHOUT_ORDER' => '', 'PURCHASING_PRICE' => '', 'PURCHASING_CURRENCY' => '', 'BARCODE_MULTI' => '', 'SUBSCRIBE_ORIG' => 'D'); $periodTimeTypes = CCatalogProduct::GetTimePeriodTypes(true); } else { $arDefProduct = array('QUANTITY' => '', 'QUANTITY_RESERVED' => '', 'WEIGHT' => '', 'WIDTH' => '', 'LENGTH' => '', 'HEIGHT' => '', 'MEASURE' => '', 'VAT_ID' => 0, 'VAT_INCLUDED' => 'N', 'QUANTITY_TRACE_ORIG' => 'D', 'CAN_BUY_ZERO_ORIG' => 'D', 'PURCHASING_PRICE' => '', 'PURCHASING_CURRENCY' => '', 'BARCODE_MULTI' => '', 'SUBSCRIBE_ORIG' => 'D'); } if ($PRODUCT_ID > 0) { $bReadOnly = !($USER->CanDoOperation('catalog_price') && CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $PRODUCT_ID, "element_edit_price")); if ($arMainCatalog['SUBSCRIPTION'] == 'Y') { $arProductSelect = array('ID', 'QUANTITY', 'QUANTITY_RESERVED', 'QUANTITY_TRACE_ORIG', 'VAT_ID', 'VAT_INCLUDED', 'CAN_BUY_ZERO_ORIG', 'PRICE_TYPE', 'RECUR_SCHEME_TYPE', 'RECUR_SCHEME_LENGTH', 'TRIAL_PRICE_ID', 'WITHOUT_ORDER', 'PURCHASING_PRICE', 'PURCHASING_CURRENCY', 'BARCODE_MULTI', 'SUBSCRIBE_ORIG', 'TYPE'); } else { $arProductSelect = array('ID', 'QUANTITY', 'QUANTITY_RESERVED', 'QUANTITY_TRACE_ORIG', 'WEIGHT', 'WIDTH', 'LENGTH', 'HEIGHT', 'MEASURE', 'VAT_ID', 'VAT_INCLUDED', 'CAN_BUY_ZERO_ORIG', 'PURCHASING_PRICE', 'PURCHASING_CURRENCY', 'BARCODE_MULTI', 'SUBSCRIBE_ORIG', 'TYPE'); }
<?php /** @global CUser $USER */ /** @var string $strWarning */ /** @var int $IBLOCK_ID */ /** @var int $ID */ if ($USER->CanDoOperation('catalog_price')) { $IBLOCK_ID = (int) $IBLOCK_ID; $ID = (int) $ID; $userId = (int) $USER->GetID(); if (0 < $IBLOCK_ID && 0 < $ID) { $PRODUCT_ID = CIBlockElement::GetRealElement($ID); $bUseStoreControl = COption::GetOptionString('catalog', 'default_use_store_control', 'N') == "Y"; $bEnableReservation = 'N' != COption::GetOptionString('catalog', 'enable_reservation'); if (CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $PRODUCT_ID, "element_edit_price")) { IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/catalog/templates/product_edit_action.php'); if ('' == $strWarning) { $bUseExtForm = isset($_POST['price_useextform']) && 'Y' == $_POST['price_useextform']; $arCatalog = CCatalog::GetByID($IBLOCK_ID); $arCatalogPrice_tmp = array(); $intBasePriceCount = count($arCatalogBasePrices); $dbCatGroups = CCatalogGroup::GetList(array(), array("!BASE" => "Y")); while ($arCatGroups = $dbCatGroups->Fetch()) { unset($arCatalogPrice_tmp); $arCatalogPrice_tmp = array(); for ($i = 0; $i < $intBasePriceCount; $i++) { ${"CAT_PRICE_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]} = str_replace(",", ".", ${"CAT_PRICE_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}); $arCatalogPrice_tmp[$i] = array("ID" => IntVal(${"CAT_ID_" . $arCatGroups["ID"]}[$arCatalogBasePrices[$i]["IND"]]), "EXTRA_ID" => ${"CAT_EXTRA_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]} ? IntVal(${"CAT_EXTRA_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}) : 0, "PRICE" => ${"CAT_PRICE_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}, "CURRENCY" => Trim(${"CAT_CURRENCY_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}), "QUANTITY_FROM" => $arCatalogBasePrices[$i]["QUANTITY_FROM"], "QUANTITY_TO" => $arCatalogBasePrices[$i]["QUANTITY_TO"]); if (strlen($arCatalogPrice_tmp[$i]["CURRENCY"]) <= 0) { $arCatalogPrice_tmp[$i]["CURRENCY"] = $arCatalogBasePrices[$i]["CURRENCY"]; }
<?php if ($USER->CanDoOperation('catalog_read') || $USER->CanDoOperation('catalog_price')) { include GetLangFileName($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/catalog/lang/", "/templates/product_edit.php"); $IBLOCK_ID = intval($IBLOCK_ID); if ($IBLOCK_ID <= 0) { return; } $MENU_SECTION_ID = intval($MENU_SECTION_ID); $arCatalog = CCatalog::GetByID($IBLOCK_ID); $PRODUCT_ID = 0 < $ID ? CIBlockElement::GetRealElement($ID) : 0; $arBaseProduct = CCatalogProduct::GetByID($PRODUCT_ID); if (0 < $PRODUCT_ID) { $bReadOnly = !($USER->CanDoOperation('catalog_price') && CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $PRODUCT_ID, "element_edit_price")); } else { $bReadOnly = !($USER->CanDoOperation('catalog_price') && CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $MENU_SECTION_ID, "element_edit_price")); } $bDiscount = $USER->CanDoOperation('catalog_discount'); ?> <style type="text/css"> input.wrong {background-color: #FF8080;} </style> <tr class="heading"> <td colspan="2"><?php echo GetMessage("IBLOCK_TCATALOG"); if ($bReadOnly) { echo " " . GetMessage("IBLOCK_TREADONLY"); } ?> <script type="text/javascript"> var bReadOnly = <?php
if ($bVarsFromForm) CCatalogAdminProductSetEdit::getFormValues($arSets); CCatalogAdminProductSetEdit::addEmptyValues($arSets); CCatalogAdminProductSetEdit::showEditForm($arSets); ?></td></tr><? $tabControl->EndCustomField('PRODUCT_SET', ''); } if ($arShowTabs['product_group']) { $tabControl->BeginNextFormTab(); $tabControl->BeginCustomField('PRODUCT_GROUP', GetMessage('IBLOCK_EL_PRODUCT_GROUP').':', false); ?><tr id="tr_PRODUCT_GROUP"><td colspan="2"><? $intProductID = (0 < $ID ? CIBlockElement::GetRealElement($ID) : 0); $arSets = false; CCatalogAdminProductSetEdit::setProductFormParams(array('TYPE' => CCatalogProductSet::TYPE_GROUP)); if (0 < $intProductID) { $arSets = CCatalogProductSet::getAllSetsByProduct($intProductID, CCatalogProductSet::TYPE_GROUP); if ($bCopy) CCatalogAdminProductSetEdit::clearOwnerSet($arSets); } if (empty($arSets)) $arSets = CCatalogAdminProductSetEdit::getEmptySet($intProductID); if ($bVarsFromForm) CCatalogAdminProductSetEdit::getFormValues($arSets); CCatalogAdminProductSetEdit::addEmptyValues($arSets);
$arIBlock["SECTIONS_NAME"] = $arIBTYPE["SECTION_NAME"] ? $arIBTYPE["SECTION_NAME"] : GetMessage("IBEL_E_IBLOCK_SECTIONS"); } ClearVars("str_"); ClearVars("str_prev_"); ClearVars("prn_"); $str_SORT = "500"; if (!$error && $bWorkflow && $view != "Y") { if (!$bCopy) { CIBlockElement::WF_Lock($ID); } else { CIBlockElement::WF_UnLock($ID); } } if ($historyId <= 0 && $view == "Y") { $WF_ID = $ID; $ID = CIBlockElement::GetRealElement($ID); if ($PREV_ID) { $prev_result = CIBlockElement::GetByID($PREV_ID); $prev_arElement = $prev_result->ExtractFields("str_prev_"); if (!$prev_arElement) { $PREV_ID = 0; } } } $str_IBLOCK_ELEMENT_SECTION = array(); $str_ACTIVE = $arIBlock["FIELDS"]["ACTIVE"]["DEFAULT_VALUE"] === "N" ? "N" : "Y"; $str_NAME = htmlspecialcharsbx($arIBlock["FIELDS"]["NAME"]["DEFAULT_VALUE"]); if ($arIBlock["FIELDS"]["ACTIVE_FROM"]["DEFAULT_VALUE"] === "=now") { $str_ACTIVE_FROM = ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"); } elseif ($arIBlock["FIELDS"]["ACTIVE_FROM"]["DEFAULT_VALUE"] === "=today") { $str_ACTIVE_FROM = ConvertTimeStamp(time() + CTimeZone::GetOffset(), "SHORT");
public static function changeTabs($intIBlockID, $intID, &$arCatalog) { $result = false; $intIBlockID = (int) $intIBlockID; $intID = (int) $intID; if ($intIBlockID <= 0 || $intID <= 0) { return $result; } if (empty($arCatalog)) { $arCatalog = CCatalogSKU::GetInfoByIBlock($intIBlockID); } if (empty($arCatalog)) { return $result; } if ($arCatalog['CATALOG'] != 'Y') { return $result; } $intProductID = CIBlockElement::GetRealElement($intID); $boolFeatureSet = CBXFeatures::IsFeatureEnabled('CatCompleteSet'); if ($boolFeatureSet) { if (isset($_REQUEST['groupdel']) && 'Y' == $_REQUEST['groupdel']) { $result = CCatalogProductSet::deleteAllSetsByProduct($intProductID, CCatalogProductSet::TYPE_GROUP); } elseif (isset($_REQUEST['setdel']) && 'Y' == $_REQUEST['setdel']) { $result = CCatalogProductSet::deleteAllSetsByProduct($intProductID, CCatalogProductSet::TYPE_SET); } } return $result; }