1
0
mirror of synced 2024-11-21 21:06:09 +03:00

Export can be from all InfoBlocks now

This commit is contained in:
m.korolev 2013-07-24 23:41:05 +04:00
parent 1e16626047
commit d81f71cd5e
4 changed files with 2055 additions and 2243 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,414 +0,0 @@
<?
//<title>CRM</title>
__IncludeLang(GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/intaro.intarocrm/lang/", "/export_setup_templ.php"));
global $APPLICATION, $USER;
ClearVars();
$strYandexError = "";
if (($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1)
{
if (isset($arOldSetupVars['IBLOCK_ID']))
$IBLOCK_ID = $arOldSetupVars['IBLOCK_ID'];
if (isset($arOldSetupVars['SETUP_FILE_NAME']))
$SETUP_FILE_NAME = str_replace(COption::GetOptionString("catalog", "export_default_path", "/bitrix/catalog_export/"),'',$arOldSetupVars['SETUP_FILE_NAME']);
if (isset($arOldSetupVars['SETUP_PROFILE_NAME']))
$SETUP_PROFILE_NAME = $arOldSetupVars['SETUP_PROFILE_NAME'];
if (isset($arOldSetupVars['V']))
$V = $arOldSetupVars['V'];
if (isset($arOldSetupVars['XML_DATA']))
{
if (get_magic_quotes_gpc())
{
$XML_DATA = base64_encode(stripslashes($arOldSetupVars['XML_DATA']));
}
else
{
$XML_DATA = base64_encode($arOldSetupVars['XML_DATA']);
}
}
if (isset($arOldSetupVars['SETUP_SERVER_NAME']))
$SETUP_SERVER_NAME = $arOldSetupVars['SETUP_SERVER_NAME'];
}
if ($STEP>1)
{
$IBLOCK_ID = intval($IBLOCK_ID);
$rsIBlocks = CIBlock::GetByID($IBLOCK_ID);
if ($IBLOCK_ID<=0 || !($arIBlock = $rsIBlocks->Fetch()))
{
$strYandexError .= GetMessage("CET_ERROR_NO_IBLOCK1")." #".$IBLOCK_ID." ".GetMessage("CET_ERROR_NO_IBLOCK2")."<br>";
}
else
{
$bRightBlock = !CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_admin_display");
if ($bRightBlock)
{
$strYandexError .= str_replace('#IBLOCK_ID#',$IBLOCK_ID,GetMessage("CET_ERROR_IBLOCK_PERM"))."<br>";
}
}
if (strlen($SETUP_FILE_NAME)<=0)
{
$strYandexError .= GetMessage("CET_ERROR_NO_FILENAME")."<br>";
}
elseif (preg_match(BX_CATALOG_FILENAME_REG,$SETUP_FILE_NAME))
{
$strYandexError .= GetMessage("CES_ERROR_BAD_EXPORT_FILENAME")."<br>";
}
elseif ($APPLICATION->GetFileAccessPermission($SETUP_FILE_NAME) < "W")
{
$strYandexError .= str_replace("#FILE#", $SETUP_FILE_NAME, GetMessage('CET_YAND_RUN_ERR_SETUP_FILE_ACCESS_DENIED'))."<br>";
}
$SETUP_SERVER_NAME = trim($SETUP_SERVER_NAME);
if (strlen($strYandexError)<=0)
{
$bAllSections = false;
$arSections = array();
if (is_array($V) && !empty($V))
{
foreach ($V as $key => $value)
{
if (trim($value)=="0")
{
$bAllSections = true;
break;
}
$value = intval($value);
if ($value>0)
{
$arSections[] = $value;
}
}
}
if (!$bAllSections && !empty($arSections))
{
$arCheckSections = array();
$rsSections = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'ID' => $arSections), false, array('ID'));
while ($arOneSection = $rsSections->Fetch())
{
$arCheckSections[] = $arOneSection['ID'];
}
$arSections = $arCheckSections;
}
if (!$bAllSections && empty($arSections))
{
$strYandexError .= GetMessage("CET_ERROR_NO_GROUPS")."<br>";
$V = array();
}
}
if (is_array($V))
{
$V = array_unique(array_values($V));
$_REQUEST['V'] = $V;
}
$arCatalog = CCatalog::GetByIDExt($IBLOCK_ID);
if ('P' == $arCatalog['CATALOG_TYPE'] || 'X' == $arCatalog['CATALOG_TYPE'])
{
if (strlen($XML_DATA) <= 0)
{
$strYandexError .= GetMessage('YANDEX_ERR_SKU_SETTINGS_ABSENT').'<br>';
}
}
if (($ACTION=="EXPORT_SETUP" || $ACTION=="EXPORT_EDIT" || $ACTION=="EXPORT_COPY") && strlen($SETUP_PROFILE_NAME)<=0)
$strYandexError .= GetMessage("CET_ERROR_NO_PROFILE_NAME")."<br>";
if (strlen($strYandexError)>0)
{
$STEP = 1;
}
}
echo ShowError($strYandexError);
if ($STEP==1)
{
if (CModule::IncludeModule("iblock"))
{
?>
<form method="post" action="<?echo $APPLICATION->GetCurPage() ?>" name="yandex_setup_form" id="yandex_setup_form">
<?=bitrix_sessid_post()?>
<?if ($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY')
{
?><input type="hidden" name="PROFILE_ID" value="<? echo intval($PROFILE_ID); ?>"><?
}
?>
<script type="text/javascript">
var TreeSelected = new Array();
<?
$intCountSelected = 0;
if (isset($V) && is_array($V) && !empty($V))
{
foreach ($V as $oneKey)
{
?>TreeSelected[<? echo $intCountSelected ?>] = <? echo intval($oneKey); ?>;
<?
$intCountSelected++;
}
}
?>
function ClearSelected()
{
TreeSelected = new Array();
}
</script>
<?
if ($intCountSelected)
{
foreach ($V as &$oneKey)
{
?><input type="hidden" value="<? echo intval($oneKey); ?>" name="V[]" id="oldV<? echo intval($oneKey); ?>"><?
}
}
?>
<table width="100%" class="edit-table">
<tr>
<td width="100%" valign="top"><font class="text"><b><? echo GetMessage('CET_SELECT_IBLOCK_EXT'); ?></b></font><br>
<? echo GetIBlockDropDownListEx(
$IBLOCK_ID, 'IBLOCK_TYPE_ID', 'IBLOCK_ID',
array('CHECK_PERMISSIONS' => 'Y','MIN_PERMISSION' => 'W'),
"ClearSelected(); document.getElementById('id_ifr').src='/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID=0&'+'".bitrix_sessid_get()."';",
"ClearSelected(); document.getElementById('id_ifr').src='/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID='+this[this.selectedIndex].value+'&'+'".bitrix_sessid_get()."';",
'class="adm-detail-iblock-types"',
'class="adm-detail-iblock-list"'
); ?>
<br><br>
</td>
</tr>
<tr>
<td width="100%" valign="top">
<font class="text"><b><?echo GetMessage("CET_SELECT_GROUP");?></b></font><br>
<table border="0">
<tr>
<td><div id="tree"></div></td>
</tr>
</table>
<script type="text/javascript">
clevel = 0;
function delOldV(obj)
{
if (obj)
{
if (obj.checked == false)
{
var objOldVal = BX('oldV'+obj.value);
if (objOldVal)
{
objOldVal.parentNode.removeChild(objOldVal);
objOldVal = null;
}
}
}
}
function buildNoMenu()
{
var buffer;
buffer = '<br><table border="0" cellspacing="0" cellpadding="0">';
buffer += '<tr><td><font class="text" style="color: #A9A9A9;"><?echo CUtil::JSEscape(GetMessage("CET_FIRST_SELECT_IBLOCK"));?></font></td></tr>';
buffer += '</table>';
document.getElementById('tree').innerHTML = buffer;
}
function buildMenu()
{
var i;
var buffer;
var imgSpace;
buffer = '<br><table border="0" cellspacing="0" cellpadding="0">';
buffer += '<tr>';
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>';
buffer += '</tr>';
for (i in Tree[0])
{
if (!Tree[i])
{
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[0][i][0] + '</font></label>';
imgSpace = '';
}
else
{
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[0][i][0] + '</b></font></a>';
imgSpace = '<img src="/bitrix/images/catalog/load/plus.gif" width="13" height="13" id="img_' + i + '" OnClick="collapse(' + i + ')">';
}
buffer += '<tr>';
buffer += '<td width="20" valign="top" align="center">' + imgSpace + '</td>';
buffer += '<td id="node_' + i + '">' + space + '</td>';
buffer += '</tr>';
}
buffer += '</table>';
document.getElementById('tree').innerHTML = buffer;
BX.adminPanel.modifyFormElements('yandex_setup_form');
}
function collapse(node)
{
if (document.getElementById('table_' + node) == null)
{
var i;
var buffer;
var imgSpace;
buffer = '<table border="0" id="table_' + node + '" cellspacing="0" cellpadding="0">';
for (i in Tree[node])
{
if (!Tree[i])
{
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>';
imgSpace = '';
}
else
{
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>';
imgSpace = '<img src="/bitrix/images/catalog/load/plus.gif" width="13" height="13" id="img_' + i + '" OnClick="collapse(' + i + ')">';
}
buffer += '<tr>';
buffer += '<td width="20" align="center" valign="top">' + imgSpace + '</td>';
buffer += '<td id="node_' + i + '">' + space + '</td>';
buffer += '</tr>';
}
buffer += '</table>';
document.getElementById('node_' + node).innerHTML += buffer;
document.getElementById('img_' + node).src = '/bitrix/images/catalog/load/minus.gif';
}
else
{
var tbl = document.getElementById('table_' + node);
tbl.parentNode.removeChild(tbl);
document.getElementById('img_' + node).src = '/bitrix/images/catalog/load/plus.gif';
}
BX.adminPanel.modifyFormElements('yandex_setup_form');
}
function changeStyle(node,action)
{
docStyle = document.getElementById('node_' + node).style;
with (docStyle)
{
if (action == 'to')
{
backgroundColor= '#e5e5e5';
}
else
{
backgroundColor = '#ffffff';
}
}
}
</script>
<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>
<br><br>
</td>
</tr>
<tr>
<td width="100%" valign="top">
<script type="text/javascript">
function showDetailPopup()
{
if (null == obDetailWindow)
{
var s = BX('IBLOCK_ID');
var dat = BX('XML_DATA');
var obDetailWindow = new BX.CAdminDialog({
'content_url': '/bitrix/tools/catalog_export/yandex_detail.php?lang=<?=LANGUAGE_ID?>&bxpublic=Y&IBLOCK_ID=' + s[s.selectedIndex].value,
'content_post': 'XML_DATA='+BX.util.urlencode(dat.value)+'&'+'<?echo bitrix_sessid_get(); ?>',
'width': 900, 'height': 550,
'resizable': true
});
obDetailWindow.Show();
}
}
function setDetailData(data)
{
BX('XML_DATA').value = data;
}
</script>
<font class="text"><b><?=GetMessage('CAT_DETAIL_PROPS')?>:</b> </font>
<button onclick="showDetailPopup(); return false;"><?=GetMessage('CAT_DETAIL_PROPS_RUN')?></button>
<input type="hidden" id="XML_DATA" name="XML_DATA" value="<? echo (strlen($XML_DATA) > 0 ? $XML_DATA : ''); ?>" />
</td>
</td>
<tr>
<td width="100%" valign="top">
<font class="text"><b>
<?echo GetMessage("CET_SERVER_NAME");?> <input type="text" name="SETUP_SERVER_NAME" value="<?echo (strlen($SETUP_SERVER_NAME)>0) ? 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'))?>" />
</b></font>
<br><br>
</td>
</tr>
<tr>
<td width="100%" valign="top">
<font class="text"><b>
<?echo GetMessage("CET_SAVE_FILENAME");?> <b><? echo htmlspecialcharsbx(COption::GetOptionString("catalog", "export_default_path", "/bitrix/catalog_export/"));?></b><input type="text" name="SETUP_FILE_NAME" value="<?echo (strlen($SETUP_FILE_NAME)>0) ? htmlspecialcharsbx($SETUP_FILE_NAME) : "yandex_".mt_rand(0, 999999).".php" ?>" size="50" />
</b></font>
<br><br>
</td>
</tr>
<?if ($ACTION=="EXPORT_SETUP" || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY'):?>
<tr>
<td width="100%" valign="top">
<font class="text"><b>
<?echo GetMessage("CET_PROFILE_NAME");?> <input type="text" name="SETUP_PROFILE_NAME" value="<?echo htmlspecialcharsbx($SETUP_PROFILE_NAME) ?>" size="30">
</b></font>
<br><br>
</td>
</tr>
<?endif;?>
<tr>
<td width="100%" valign="top">
<input type="hidden" name="lang" value="<?echo LANGUAGE_ID ?>">
<input type="hidden" name="ACT_FILE" value="<?echo htmlspecialcharsbx($_REQUEST["ACT_FILE"]) ?>">
<input type="hidden" name="ACTION" value="<?echo htmlspecialcharsbx($ACTION) ?>">
<input type="hidden" name="STEP" value="<?echo intval($STEP) + 1 ?>">
<input type="hidden" name="SETUP_FIELDS_LIST" value="V,IBLOCK_ID,SETUP_SERVER_NAME,SETUP_FILE_NAME,XML_DATA">
<input type="submit" value="<?echo ($ACTION=="EXPORT")?GetMessage("CET_EXPORT"):GetMessage("CET_SAVE")?>">
</td>
</tr>
</table>
</form>
<?
}
}
elseif ($STEP==2)
{
$SETUP_FILE_NAME = COption::GetOptionString("catalog", "export_default_path", "/bitrix/catalog_export/").$SETUP_FILE_NAME;
if (strlen($XML_DATA) > 0)
{
$XML_DATA = base64_decode($XML_DATA);
}
$SETUP_SERVER_NAME = htmlspecialcharsbx($SETUP_SERVER_NAME);
$_POST['SETUP_SERVER_NAME'] = htmlspecialcharsbx($_POST['SETUP_SERVER_NAME']);
$_REQUEST['SETUP_SERVER_NAME'] = htmlspecialcharsbx($_REQUEST['SETUP_SERVER_NAME']);
$FINITE = true;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,173 @@
<?
//<title>IntaroCRM</title>
__IncludeLang(GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/intaro.intarocrm/lang/", "/export_setup_templ.php"));
global $APPLICATION;
$arSetupErrors = array();
if (($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1)
{
if (isset($arOldSetupVars['YANDEX_EXPORT']))
$YANDEX_EXPORT = $arOldSetupVars['YANDEX_EXPORT'];
if (isset($arOldSetupVars['SETUP_FILE_NAME']))
$SETUP_FILE_NAME = $arOldSetupVars['SETUP_FILE_NAME'];
if (isset($arOldSetupVars['SETUP_PROFILE_NAME']))
$SETUP_PROFILE_NAME = $arOldSetupVars['SETUP_PROFILE_NAME'];
if (isset($arOldSetupVars['SETUP_SERVER_NAME']))
$SETUP_SERVER_NAME = $arOldSetupVars['SETUP_SERVER_NAME'];
}
if ($STEP>1)
{
if (!is_array($YANDEX_EXPORT) || count($YANDEX_EXPORT)<=0)
{
$arSetupErrors[] = GetMessage("CET_ERROR_NO_IBLOCKS");
}
if (strlen($SETUP_FILE_NAME)<=0)
{
$arSetupErrors[] = GetMessage("CET_ERROR_NO_FILENAME");
}
elseif (preg_match(BX_CATALOG_FILENAME_REG,$SETUP_FILE_NAME))
{
$arSetupErrors[] = GetMessage("CES_ERROR_BAD_EXPORT_FILENAME");
}
elseif ($APPLICATION->GetFileAccessPermission($SETUP_FILE_NAME) < "W")
{
$arSetupErrors[] = str_replace("#FILE#", $SETUP_FILE_NAME, GetMessage('CET_YAND_RUN_ERR_SETUP_FILE_ACCESS_DENIED'));
}
if (($ACTION=="EXPORT_SETUP" || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && strlen($SETUP_PROFILE_NAME)<=0)
{
$arSetupErrors[] = GetMessage("CET_ERROR_NO_PROFILE_NAME");
}
if (!empty($arSetupErrors))
{
$STEP = 1;
}
}
if (!empty($arSetupErrors))
echo ShowError(implode('<br />', $arSetupErrors));
if ($STEP==1)
{
if (CModule::IncludeModule("iblock"))
{
// Get IBlock list
?>
<form method="POST" action="<? echo $APPLICATION->GetCurPage(); ?>" enctype="multipart/form-data" name="dataload">
<? echo bitrix_sessid_post(); ?>
<?if ($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY')
{
?><input type="hidden" name="PROFILE_ID" value="<? echo intval($PROFILE_ID); ?>"><?
}
?>
<table width="100%">
<tr>
<td valign="top">
<?
if (!isset($YANDEX_EXPORT) || !is_array($YANDEX_EXPORT))
{
$YANDEX_EXPORT = array();
}
$boolAll = false;
$intCountChecked = 0;
$intCountAvailIBlock = 0;
$arIBlockList = array();
$db_res = CIBlock::GetList(Array("IBLOCK_TYPE"=>"ASC", "NAME"=>"ASC"),array('CHECK_PERMISSIONS' => 'Y','MIN_PERMISSION' => 'W'));
while ($res = $db_res->Fetch())
{
if ($ar_res1 = CCatalog::GetByID($res["ID"]))
{
$arSiteList = array();
$rsSites = CIBlock::GetSite($res["ID"]);
while ($arSite = $rsSites->Fetch())
{
$arSiteList[] = $arSite["SITE_ID"];
}
$boolYandex = (in_array($res['ID'],$YANDEX_EXPORT));
$arIBlockList[] = array(
'ID' => $res['ID'],
'NAME' => $res['NAME'],
'IBLOCK_TYPE_ID' => $res['IBLOCK_TYPE_ID'],
'YANDEX_EXPORT' => $boolYandex,
'SITE_LIST' => '('.implode(' ',$arSiteList).')',
);
if ($boolYandex)
$intCountChecked++;
$intCountAvailIBlock++;
}
}
if ($intCountChecked == $intCountAvailIBlock)
$boolAll = true;
?>
<?
foreach ($arIBlockList as $key => $arIBlock)
{
?>
<input type="hidden" name="YANDEX_EXPORT[<? echo $key; ?>]" id="YANDEX_EXPORT_<? echo $key; ?>" value="<? echo $arIBlock["ID"]; ?>" checked>
<?
}
?>
<input type="hidden" name="count_checked" id="count_checked" value="<? echo $intCountChecked; ?>">
</td>
</tr>
<tr>
<td width="0%" valign="top"></td>
<td width="100%" valign="top">
<font class="text">
<?echo GetMessage("CET_SAVE_FILENAME");?> <input type="text" name="SETUP_FILE_NAME" value="<?echo htmlspecialcharsbx(strlen($SETUP_FILE_NAME)>0 ? $SETUP_FILE_NAME : (COption::GetOptionString("catalog", "export_default_path", "/bitrix/catalog_export/"))."yandex_".mt_rand(0, 999999).".php"); ?>" size="50">
</font>
<br><br>
</td>
</tr>
<?if ($ACTION=="EXPORT_SETUP" || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY'):?>
<tr>
<td width="0%" valign="top">
<font class="text" style="font-size: 20px;">4.&nbsp;&nbsp;&nbsp;</font>
</td>
<td width="100%" valign="top">
<font class="text">
<?echo GetMessage("CET_PROFILE_NAME");?> <input type="text" name="SETUP_PROFILE_NAME" value="<?echo htmlspecialcharsbx($SETUP_PROFILE_NAME)?>" size="30">
</font>
<br><br>
</td>
</tr>
<?endif;?>
<tr>
<td width="0%" valign="top">
&nbsp;
</td>
<td width="100%" valign="top">
<input type="hidden" name="lang" value="<?echo LANGUAGE_ID ?>">
<input type="hidden" name="ACT_FILE" value="<?echo htmlspecialcharsbx($_REQUEST["ACT_FILE"]) ?>">
<input type="hidden" name="ACTION" value="<?echo htmlspecialcharsbx($ACTION) ?>">
<input type="hidden" name="STEP" value="<?echo intval($STEP) + 1 ?>">
<input type="hidden" name="SETUP_FIELDS_LIST" value="YANDEX_EXPORT,SETUP_SERVER_NAME,SETUP_FILE_NAME">
<input type="submit" value="<?echo ($ACTION=="EXPORT")?GetMessage("CET_EXPORT"):GetMessage("CET_SAVE")?>">
</td>
</tr>
</table>
</form>
<?
}
}
elseif ($STEP==2)
{
$SETUP_SERVER_NAME = htmlspecialcharsbx($SETUP_SERVER_NAME);
$_POST['SETUP_SERVER_NAME'] = htmlspecialcharsbx($_POST['SETUP_SERVER_NAME']);
$_REQUEST['SETUP_SERVER_NAME'] = htmlspecialcharsbx($_REQUEST['SETUP_SERVER_NAME']);
$FINITE = true;
}
?>