26$strAllowExportPath = COption::GetOptionString(
"catalog",
"export_default_path",
"/bitrix/catalog_export/");
30 if (isset($arOldSetupVars[
'IBLOCK_ID']))
32 if (isset($arOldSetupVars[
'SITE_ID']))
33 $SITE_ID = $arOldSetupVars[
'SITE_ID'];
34 if (isset($arOldSetupVars[
'SETUP_FILE_NAME']))
36 if (isset($arOldSetupVars[
'COMPANY_NAME']))
38 if (isset($arOldSetupVars[
'SETUP_PROFILE_NAME']))
39 $SETUP_PROFILE_NAME = $arOldSetupVars[
'SETUP_PROFILE_NAME'];
40 if (isset($arOldSetupVars[
'V']))
41 $V = $arOldSetupVars[
'V'];
42 if (isset($arOldSetupVars[
'XML_DATA']))
44 $XML_DATA = base64_encode($arOldSetupVars[
'XML_DATA']);
46 if (isset($arOldSetupVars[
'SETUP_SERVER_NAME']))
48 if (isset($arOldSetupVars[
'USE_HTTPS']))
49 $USE_HTTPS = $arOldSetupVars[
'USE_HTTPS'];
50 if (isset($arOldSetupVars[
'FILTER_AVAILABLE']))
51 $filterAvalable = $arOldSetupVars[
'FILTER_AVAILABLE'];
52 if (isset($arOldSetupVars[
'DISABLE_REFERERS']))
54 if (isset($arOldSetupVars[
'EXPORT_CHARSET']))
56 if (isset($arOldSetupVars[
'MAX_EXECUTION_TIME']))
58 if (isset($arOldSetupVars[
'CHECK_PERMISSIONS']))
59 $checkPermissions = $arOldSetupVars[
'CHECK_PERMISSIONS'];
87 'select' =>
array(
'LID'),
117 if (!empty($V) && is_array($V))
119 foreach ($V as
$key => $value)
121 if (trim($value) ==
"0")
134 $arCheckSections =
array();
136 while ($arOneSection = $rsSections->Fetch())
138 $arCheckSections[] = $arOneSection[
'ID'];
152 $V = array_unique(array_values($V));
157 if (CCatalogSku::TYPE_PRODUCT ==
$arCatalog[
'CATALOG_TYPE'] || CCatalogSku::TYPE_FULL ==
$arCatalog[
'CATALOG_TYPE'])
159 if (!isset($XML_DATA) || $XML_DATA ==
'')
165 if (!isset($USE_HTTPS) || $USE_HTTPS !=
'Y')
167 if (isset($_POST[
'FILTER_AVAILABLE']) && is_string($_POST[
'FILTER_AVAILABLE']))
168 $filterAvalable = $_POST[
'FILTER_AVAILABLE'];
169 if (!isset($filterAvalable) || $filterAvalable !=
'Y')
170 $filterAvalable =
'N';
171 if (isset($_POST[
'DISABLE_REFERERS']) && is_string($_POST[
'DISABLE_REFERERS']))
175 if (isset($_POST[
'EXPORT_CHARSET']) && is_string($_POST[
'EXPORT_CHARSET']))
179 if (isset($_POST[
'MAX_EXECUTION_TIME']) && is_string($_POST[
'MAX_EXECUTION_TIME']))
187 if (!isset($SETUP_PROFILE_NAME) || $SETUP_PROFILE_NAME ==
'')
199 "TEXT"=>
GetMessage(
"CATI_ADM_RETURN_TO_LIST"),
200 "TITLE"=>
GetMessage(
"CATI_ADM_RETURN_TO_LIST_TITLE"),
201 "LINK"=>
"/bitrix/admin/cat_export_setup.php?lang=".LANGUAGE_ID,
219<!--suppress JSUnresolvedVariable -->
220<form method=
"post" action=
"<?echo $APPLICATION->GetCurPage().$actionParams ?>" name=
"yandex_setup_form" id=
"yandex_setup_form">
223 array(
"DIV" =>
"yand_edit1",
"TAB" =>
GetMessage(
"CAT_ADM_MISC_EXP_TAB1"),
"ICON" =>
"store",
"TITLE" =>
GetMessage(
"CAT_ADM_MISC_EXP_TAB1_TITLE")),
224 array(
"DIV" =>
"yand_edit2",
"TAB" =>
GetMessage(
"CAT_ADM_MISC_EXP_TAB2"),
"ICON" =>
"store",
"TITLE" =>
GetMessage(
"CAT_ADM_MISC_EXP_TAB2_TITLE")),
236 if (!isset($XML_DATA))
238 if (!isset($filterAvalable) || $filterAvalable !=
'Y')
239 $filterAvalable =
'N';
240 if (!isset($USE_HTTPS) || $USE_HTTPS !=
'Y')
252 if (!isset($checkPermissions) || $checkPermissions !=
'Y')
253 $checkPermissions =
'N';
257 'select' =>
array(
'LID',
'NAME',
'SORT'),
258 'filter' =>
array(
'=ACTIVE' =>
'Y'),
259 'order' =>
array(
'SORT' =>
'ASC')
264 $iblockIds =
array();
265 $iblockSites =
array();
266 $iblockMultiSites =
array();
271 'IBLOCK_ACTIVE' =>
'IBLOCK.ACTIVE',
272 'PRODUCT_IBLOCK_ACTIVE' =>
'PRODUCT_IBLOCK.ACTIVE'
274 'filter' =>
array(
'')
278 $row[
'PRODUCT_IBLOCK_ID'] = (int)$row[
'PRODUCT_IBLOCK_ID'];
279 $row[
'IBLOCK_ID'] = (int)$row[
'IBLOCK_ID'];
280 if ($row[
'PRODUCT_IBLOCK_ID'] > 0)
282 if ($row[
'PRODUCT_IBLOCK_ACTIVE'] ==
'Y')
283 $iblockIds[$row[
'PRODUCT_IBLOCK_ID']] =
true;
287 if ($row[
'IBLOCK_ACTIVE'] ==
'Y')
288 $iblockIds[$row[
'IBLOCK_ID']] =
true;
292 if (!empty($iblockIds))
294 $activeIds =
array();
296 'select' =>
array(
'IBLOCK_ID',
'SITE_ID',
'SITE_SORT' =>
'SITE.SORT'),
297 'filter' =>
array(
'@IBLOCK_ID' => array_keys($iblockIds),
'=SITE.ACTIVE' =>
'Y'),
298 'order' =>
array(
'IBLOCK_ID' =>
'ASC',
'SITE_SORT' =>
'ASC')
302 $id = (int)$row[
'IBLOCK_ID'];
304 if (!isset($iblockSites[$id]))
305 $iblockSites[$id] =
array(
309 $iblockSites[$id][
'SITES'][] =
array(
310 'ID' => $row[
'SITE_ID'],
314 if (!isset($iblockMultiSites[$id]))
315 $iblockMultiSites[$id] =
false;
317 $iblockMultiSites[$id] =
true;
319 $activeIds[$id] =
true;
322 if (empty($activeIds))
324 $iblockIds =
array();
325 $iblockSites =
array();
326 $iblockMultiSites =
array();
330 $iblockIds = array_intersect_key($iblockIds, $activeIds);
334 if (empty($iblockIds))
339 $currentList =
array();
342 $currentList = $iblockSites[
$IBLOCK_ID][
'SITES'];
356 'ID' => array_keys($iblockIds),
357 'CHECK_PERMISSIONS' =>
'Y',
358 'MIN_PERMISSION' =>
'U'
360 "ClearSelected(); changeIblockSites(0); BX('id_ifr').src='/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID=0&'+'".
bitrix_sessid_get().
"';",
361 "ClearSelected(); changeIblockSites(this[this.selectedIndex].value); BX('id_ifr').src='/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID='+this[this.selectedIndex].value+'&'+'".
bitrix_sessid_get().
"';",
362 'class="adm-detail-iblock-types"',
363 'class="adm-detail-iblock-list"'
367 var TreeSelected = [];
369 $intCountSelected = 0;
370 if (!empty($V) && is_array($V))
372 foreach ($V as $oneKey)
374 ?>TreeSelected[<? echo $intCountSelected ?>] = <? echo (
int)$oneKey; ?>;
380 function ClearSelected()
388<tr
id=
"tr_SITE_ID" style=
"display: <?=(count($currentList) > 1 ? 'table-row' : 'none' ); ?>;">
389 <td
width=
"40%"><?=
GetMessage(
'BX_CATALOG_EXPORT_YANDEX_SITE'); ?></td>
392 function changeIblockSites(iblockId)
394 var iblockSites = <?=CUtil::PhpToJSObject($iblockSites); ?>,
395 iblockMultiSites = <?=CUtil::PhpToJSObject($iblockMultiSites); ?>,
401 tableRow = BX(
'tr_SITE_ID');
402 siteControl = BX(
'SITE_ID');
403 if (!BX.type.isElementNode(tableRow) || !BX.type.isElementNode(siteControl))
406 for (i = siteControl.length-1; i >= 0; i--)
407 siteControl.remove(i);
408 if (typeof(iblockSites[iblockId]) !==
'undefined')
410 currentSiteList = iblockSites[iblockId][
'SITES'];
411 for (i = 0; i < currentSiteList.length; i++)
413 siteControl.appendChild(BX.create(
416 props: {value: BX.util.htmlspecialchars(currentSiteList[i].ID)},
417 html: BX.util.htmlspecialchars(
'[' + currentSiteList[i].ID +
'] ' + currentSiteList[i].NAME)
422 if (siteControl.length > 0)
423 siteControl.selectedIndex = 0;
425 siteControl.selectedIndex = -1;
426 BX.style(tableRow,
'display', (siteControl.length > 1 ?
'table-row' :
'none'));
429 <
select id=
"SITE_ID" name=
"SITE_ID">
431 foreach ($currentList as
$site)
435 ?><option value=
"<?=htmlspecialcharsbx($site['ID']); ?>"<?=$selected; ?>><?=
htmlspecialcharsbx(
$name); ?></option><?
443 <td
width=
"40%" valign=
"top"><?echo
GetMessage(
"CET_SELECT_GROUP");?></td>
445 if ($intCountSelected)
447 foreach ($V as $oneKey)
449 $oneKey = (int)$oneKey;
450 ?><input type=
"hidden" value=
"<? echo $oneKey; ?>" name=
"V[]" id=
"oldV<? echo $oneKey; ?>"><?
454 ?><div
id=
"tree"></div>
459 function delOldV(obj)
463 var intSelKey = BX.util.array_search(obj.value, TreeSelected);
464 if (obj.checked ==
false)
468 TreeSelected = BX.util.deleteFromArray(TreeSelected, intSelKey);
471 var objOldVal = BX(
'oldV'+obj.value);
474 objOldVal.parentNode.removeChild(objOldVal);
482 TreeSelected[TreeSelected.length] = obj.value;
488 function buildNoMenu()
491 buffer =
'<?echo GetMessageJS("CET_FIRST_SELECT_IBLOCK");?>';
492 BX(
'tree',
true).innerHTML =
buffer;
503 buffer =
'<table border="0" cellspacing="0" cellpadding="0">';
505 buffer +=
'<td colspan="2" valign="top" align="left"><input type="checkbox" name="V[]" value="0" id="v0"'+(BX.util.in_array(0,TreeSelected) ?
' checked' :
'')+
' onclick="delOldV(this);"><label for="v0"><font class="text"><b><?echo CUtil::JSEscape(GetMessage("CET_ALL_GROUPS"));?></b></font></label></td>';
512 space =
'<input type="checkbox" name="V[]" value="'+i+
'" id="V'+i+
'"'+(BX.util.in_array(i,TreeSelected) ?
' checked' :
'')+
' onclick="delOldV(this);"><label for="V'+i+
'"><span class="text">' + Tree[0][i][0] +
'</span></label>';
517 space =
'<input type="checkbox" name="V[]" value="'+i+
'"'+(BX.util.in_array(i,TreeSelected) ?
' checked' :
'')+
' onclick="delOldV(this);"><a href="javascript: collapse(' + i +
')"><span class="text"><b>' + Tree[0][i][0] +
'</b></span></a>';
518 imgSpace =
'<img src="/bitrix/images/catalog/load/plus.gif" width="13" height="13" id="img_' + i +
'" OnClick="collapse(' + i +
')">';
522 buffer +=
'<td width="20" valign="top" align="center">' +
imgSpace +
'</td>';
523 buffer +=
'<td id="node_' + i +
'">' +
space +
'</td>';
529 BX(
'tree',
true).innerHTML =
buffer;
530 BX.adminPanel.modifyFormElements(
'yandex_setup_form');
536 if (!BX(
'table_' + node))
543 buffer =
'<table border="0" id="table_' + node +
'" cellspacing="0" cellpadding="0">';
545 for (i in Tree[node])
549 space =
'<input type="checkbox" name="V[]" value="'+i+
'" id="V'+i+
'"'+(BX.util.in_array(i,TreeSelected) ?
' checked' :
'')+
' onclick="delOldV(this);"><label for="V'+i+
'"><font class="text">' + Tree[node][i][0] +
'</font></label>';
554 space =
'<input type="checkbox" name="V[]" value="'+i+
'"'+(BX.util.in_array(i,TreeSelected) ?
' checked' :
'')+
' onclick="delOldV(this);"><a href="javascript: collapse(' + i +
')"><font class="text"><b>' + Tree[node][i][0] +
'</b></font></a>';
555 imgSpace =
'<img src="/bitrix/images/catalog/load/plus.gif" width="13" height="13" id="img_' + i +
'" OnClick="collapse(' + i +
')">';
559 buffer +=
'<td width="20" align="center" valign="top">' +
imgSpace +
'</td>';
560 buffer +=
'<td id="node_' + i +
'">' +
space +
'</td>';
566 BX(
'node_' + node).innerHTML +=
buffer;
567 BX(
'img_' + node).src =
'/bitrix/images/catalog/load/minus.gif';
571 var tbl = BX(
'table_' + node);
572 tbl.parentNode.removeChild(tbl);
573 BX(
'img_' + node).src =
'/bitrix/images/catalog/load/plus.gif';
575 BX.adminPanel.modifyFormElements(
'yandex_setup_form');
578 <iframe src=
"/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID=<?=intval($IBLOCK_ID)?>&<? echo bitrix_sessid_get(); ?>" id=
"id_ifr" name=
"ifr" style=
"display:none"></iframe>
586 function showDetailPopup()
590 var s = BX(
'IBLOCK_ID');
591 var dat = BX(
'XML_DATA');
592 var obDetailWindow =
new BX.CAdminDialog({
593 'content_url':
'/bitrix/tools/catalog_export/yandex_detail.php?lang=<?=LANGUAGE_ID?>&bxpublic=Y&IBLOCK_ID=' + s[s.selectedIndex].value,
594 'content_post':
'XML_DATA='+BX.util.urlencode(dat.value)+
'&'+
'<?echo bitrix_sessid_get(); ?>',
595 'width': 900,
'height': 550,
598 obDetailWindow.Show();
602 function setDetailData(data)
604 BX(
'XML_DATA').value = data;
607 <input type=
"button" onclick=
"showDetailPopup(); return false;" value=
"<? echo GetMessage('CAT_DETAIL_PROPS_RUN'); ?>">
608 <input type=
"hidden" id=
"XML_DATA" name=
"XML_DATA" value=
"<?=htmlspecialcharsbx($XML_DATA); ?>">
612 <td
width=
"40%"><? echo
GetMessage(
'CAT_YANDEX_CHECK_PERMISSIONS'); ?></td>
614 <input type=
"hidden" name=
"CHECK_PERMISSIONS" value=
"N">
615 <input type=
"checkbox" name=
"CHECK_PERMISSIONS" value=
"Y"<?=($checkPermissions ==
'Y' ?
' checked' :
''); ?>
619 <td
width=
"40%"><? echo
GetMessage(
'CAT_YANDEX_FILTER_AVAILABLE'); ?></td>
621 <input type=
"hidden" name=
"FILTER_AVAILABLE" value=
"N">
622 <input type=
"checkbox" name=
"FILTER_AVAILABLE" value=
"Y"<? echo ($filterAvalable ==
'Y' ?
' checked' :
''); ?>
628 <input type=
"hidden" name=
"USE_HTTPS" value=
"N">
629 <input type=
"checkbox" name=
"USE_HTTPS" value=
"Y"<? echo ($USE_HTTPS ==
'Y' ?
' checked' :
''); ?>
633 <td
width=
"40%"><? echo
GetMessage(
'CAT_YANDEX_DISABLE_REFERERS'); ?></td>
635 <input type=
"hidden" name=
"DISABLE_REFERERS" value=
"N">
636 <input type=
"checkbox" name=
"DISABLE_REFERERS" value=
"Y"<? echo (
$disableReferers ==
'Y' ?
' checked' :
''); ?>
640 <td
width=
"40%"><? echo
GetMessage(
'BX_CATALOG_EXPORT_YANDEX_OPTION_CONVERT_TO_UTF'); ?></td>
642 <input type=
"hidden" name=
"EXPORT_CHARSET" value=
"windows-1251">
643 <input type=
"checkbox" name=
"EXPORT_CHARSET" value=
"UTF-8"<? echo (
$exportCharset ==
'UTF-8' ?
' checked' :
''); ?>
651 <input type=
"text" name=
"MAX_EXECUTION_TIME" size=
"40" value=
"<?=$maxExecutionTime; ?>">
656 <td
width=
"60%" style=
"padding-top: 0;"><small><?=
GetMessage(
"CAT_MAX_EXECUTION_TIME_NOTE");?></small></td>
661 <input type=
"text" name=
"SETUP_SERVER_NAME" value=
"<?=htmlspecialcharsbx($SETUP_SERVER_NAME); ?>" size=
"50"> <input type=
"button" onclick=
"this.form['SETUP_SERVER_NAME'].value = window.location.host;" value=
"<?echo htmlspecialcharsbx(GetMessage('CET_SERVER_NAME_SET_CURRENT'))?>">
665 <td
width=
"40%"><?=
GetMessage(
"BX_CATALOG_EXPORT_YANDEX_COMPANY_NAME");?></td>
667 <input type=
"text" name=
"COMPANY_NAME" value=
"<?=htmlspecialcharsbx($COMPANY_NAME); ?>" size=
"50">
673 <b><? echo
htmlspecialcharsbx(COption::GetOptionString(
"catalog",
"export_default_path",
"/bitrix/catalog_export/"));?></b><input type=
"text" name=
"SETUP_FILE_NAME" value=
"<?=htmlspecialcharsbx($SETUP_FILE_NAME); ?>" size=
"50">
682 <input type=
"text" name=
"SETUP_PROFILE_NAME" value=
"<?echo htmlspecialcharsbx($SETUP_PROFILE_NAME) ?>" size=
"30">
697 $XML_DATA = base64_decode($XML_DATA);
712 ?><input type=
"hidden" name=
"PROFILE_ID" value=
"<? echo intval($PROFILE_ID); ?>"><?
717 ?><input type=
"hidden" name=
"lang" value=
"<?echo LANGUAGE_ID ?>">
718 <input type=
"hidden" name=
"ACT_FILE" value=
"<?echo htmlspecialcharsbx($_REQUEST["ACT_FILE
"]) ?>">
719 <input type=
"hidden" name=
"ACTION" value=
"<?echo htmlspecialcharsbx($ACTION) ?>">
720 <input type=
"hidden" name=
"STEP" value=
"<?echo intval($STEP) + 1 ?>">
721 <input type=
"hidden" name=
"SETUP_FIELDS_LIST" value=
"V,IBLOCK_ID,SITE_ID,SETUP_SERVER_NAME,COMPANY_NAME,SETUP_FILE_NAME,XML_DATA,USE_HTTPS,FILTER_AVAILABLE,DISABLE_REFERERS,EXPORT_CHARSET,MAX_EXECUTION_TIME,CHECK_PERMISSIONS">
722 <input type=
"submit" value=
"<?echo ($ACTION=="EXPORT
")?GetMessage("CET_EXPORT
"):GetMessage("CET_SAVE
")?>"><?
729tabYandex.SelectTab(
"yand_edit1");
730tabYandex.DisableTab(
"yand_edit2");
732tabYandex.SelectTab(
"yand_edit2");
733tabYandex.DisableTab(
"yand_edit1");
const BX_CATALOG_FILENAME_REG
static GetInfoByIBlock($intIBlockID)
static UserHasRightTo($IBLOCK_ID, $ID, $permission, $flags=0)
static GetList($arOrder=array("SORT"=>"ASC"), $arFilter=array(), $bIncCnt=false, $arSelect=array(), $arNavStartParams=false)
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
GetIBlockDropDownListEx($IBLOCK_ID, $strTypeName, $strIBlockName, $arFilter=false, $onChangeType='', $onChangeIBlock='', $strAddType='', $strAddIBlock='')
global $adminSidePanelHelper
$_SERVER["DOCUMENT_ROOT"]
if(( $ACTION=='EXPORT_EDIT'||$ACTION=='EXPORT_COPY') &&$STEP==1) if($STEP > 1) if(( $ACTION=='EXPORT_EDIT'||$ACTION=='EXPORT_COPY') &&$STEP==2) if($STEP >2) $aMenu
bitrix_sessid_post($varname='sessid', $returnInvocations=false)
ShowError($strError, $cls="errortext")
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
bitrix_sessid_get($varname='sessid')
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
if(!is_array($arUnitList)) $firstSite