| Current Path : /var/www/homesaver/www/bitrix/modules/webdebug.excel/modes/ |
| Current File : /var/www/homesaver/www/bitrix/modules/webdebug.excel/modes/levels.php |
<?
// ���������� ������� ����� ��������, ���� ������ ���� ������� ������������
$WDMESS = array();
$WDMESS['WEBDEBUG_EXCEL_MAX_DEPTH'] = '���-�� ������� ��������:';
$WDMESS['WEBDEBUG_EXCEL_MAX_DEPTH_HINT'] = '���� ��������� ������ ������ �����������.';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS'] = '����� ������� �������:';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_NAME'] = '������� �� �������';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_UNIQ'] = '������� �� ���������� ����';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_HINT'] = '�� ����� ������ ������� ������� ������� ��, ��� ����� ����������� ����� �� ����� � ����� � ����� ��������.';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS'] = '����� ������� ��������:';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_NAME'] = '������� �� �������';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_HINT'] = '�� ������� ������ �������� �������� ����� ������� ������� �� �������.';
$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD'] = '���� �������� � �������� �����:';
$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_HINT'] = '� ����� ������������ ������� �� ���������� ����, ���� �������� ��� ����� ������� � ����� �� ����� ������ ��� � �������� ������. <br/><br/><b>��������!</b> � ����� ������� �� �������� ��������� (����, �������� �������� � ����� �CML2_ARTICLE� ��� �Articul�), ������� � ������ ������� �������, � � ��������� ���� (��� �������) ������� ��� �������� (������ ������� ��������) � ��������� �PROPERTY_�, ��������: �PROPERTY_CML2_ARTICLE� ��� �PROPERTY_Articul�.';
$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_EXTERNAL'] = '������ ���';
$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_CODE'] = '�������� ���';
$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_OTHER'] = '������';
$WDMESS['WEBDEBUG_EXCEL_SHEET_MATCHES_ELEMENTS'] = '������ ������������ (�����)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_COLUMN'] = '�������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_MATCH'] = '������������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE'] = '��� ������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_SEPARATOR'] = '����������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_COLUMNS_COUNT'] = '����� �������: ';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_RESET'] = '������ ��� ���';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_COLUMN_HEADER_EMPTY'] = '---';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_EMPTY'] = '--- �� �������� ����� �� ������� ---';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_LOGIC'] = '�������� �����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_ELEMENT_SKIP_FLAG'] = '���� �������� ���������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_SECTION_SKIP_FLAG'] = '���� �������� �������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVELS'] = '������ ��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVEL_I'] = '%s� ������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELDS'] = '��� ��������� ���������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_NAME'] = '��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_ACTIVE'] = '���������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_CODE'] = '�������� ���';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_SORT'] = '����������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT'] = '�������� (�����)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT_TYPE'] = '��� ������� (�����)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT'] = '�������� (��������)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT_TYPE'] = '��� ������� (��������)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PPICTURE'] = '�������� (�����)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DPICTURE'] = '�������� (��������)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_TAGS'] = '����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELDS'] = '��� �������� ���������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_NAME'] = '��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_CODE'] = '�������� ���';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_SORT'] = '����������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_DESCRIPTION'] = '��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_DESCR_TYPE'] = '��� �������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_PREVIEW_PICTURE'] = '�������� (�����)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_DETAIL_PICTURE'] = '�������� (��������)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG'] = '�������� ��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PRICE'] = '��� ��� �%s�';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_CURRENCY'] = '�����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY'] = '������� (����)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WEIGHT'] = '���';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_LENGTH'] = '�����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WIDTH'] = '������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_HEIGHT'] = '�����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_UNIT'] = '������ ��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_RATIO'] = '��������� ����� ��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_PRICE'] = '�������� ����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_CURRENCY'] = '����� ��������� ���';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY_TRACE'] = '������������ ���';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT'] = '������ ���, %';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT_INCLUDED'] = '���� ������ ��� � ��������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE'] = '������� �� ������ �%s�';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE_NOT_ACTIVE'] = ' (�� �������)';
$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_GROUP_SEO_E'] = 'SEO';
$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_TITLE'] = 'META TITLE (��������� ���� ��������)';
$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_KEYWORDS'] = 'META KEYWORDS (����� �����)';
$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_DESCRIPTION'] = 'META DESCRIPTION (�������� ������)';
$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_PAGE_TITLE'] = '��������� (��������� H1)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_PROPS'] = '�������� ��������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_EMPTY'] = '--- �� ������� ---';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_NEWLINE'] = '[\n] ������ ����� ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_TAB'] = '[\t] ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_COMMA'] = '[,] �����';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_SEMICOLON'] = '[;] ���� � ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_DASH'] = '[-] ����';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_DOT'] = '[.] ����';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_SPACE'] = '[ ] ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_OTHER'] = '--- ������ ---';
$WDMESS['WEBDEBUG_EXCEL_ERROR_IBLOCK_IS_EMPTY'] = '�� ������ ID ���������.';
$WDMESS['WEBDEBUG_EXCEL_ERROR_NAME_IS_EMPTY'] = '������ �%s � ����� ��������� ��������.';
if (defined('BX_UTF') && BX_UTF===true) {
foreach($WDMESS as $Key => $Value) {
$WDMESS[$Key] = $APPLICATION->ConvertCharset($Value, 'CP1251', 'UTF-8');
}
}
$GLOBALS['MESS'] = array_merge($GLOBALS['MESS'], $WDMESS);
?>
<?if($Action=='main_settings'):?>
<table class="wd_excel2_params wd_excel2_mode_params">
<tbody>
<tr>
<td style="width:50%">
<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_MAX_DEPTH');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_MAX_DEPTH_HINT'));?></div>
<div>
<input type="text" name="fields[MAX_DEPTH]" value="<?=$arFields['PARAMS']['MAX_DEPTH']?>" style="box-sizing:border-box; width:100%;" />
</div>
</td>
<td style="width:50%">
</td>
</tr>
<tr>
<td style="width:50%">
<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_HINT'));?></div>
<div>
<select name="fields[BIND_METHOD_SECTIONS]" id="bind_method_sections_select">
<option value="by_name"<?if($arFields['PARAMS']['BIND_METHOD_SECTIONS']=='by_name'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_NAME');?></option>
</select>
<script>
$('#bind_method_sections_select').change(function(){
if ($(this).val()=='by_uniq') {
$('#unique_target_sections_cell').show();
} else {
$('#unique_target_sections_cell').hide();
}
});
</script>
</div>
</td>
<td style="width:50%">
<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_HINT'));?></div>
<div>
<select name="fields[BIND_METHOD_ELEMENTS]" id="bind_method_elements_select">
<option value="by_name"<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_NAME');?></option>
<option value="by_uniq"<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_UNIQ');?></option>
</select>
<script>
$('#bind_method_elements_select').change(function(){
if ($(this).val()=='by_uniq') {
$('#unique_target_elements_cell').show();
} else {
$('#unique_target_elements_cell').hide();
}
});
</script>
</div>
</td>
</tr>
<tr>
<td style="width:50%">
</td>
<td style="width:50%">
<div id="unique_target_elements_cell"<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']!='by_uniq'):?> style="display:none;"<?endif?>>
<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_HINT'));?></div>
<div>
<select name="fields[UNIQUE_TARGET_ELEMENTS]" id="unique_target_elements_select">
<option value="EXTERNAL_ID"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']=='EXTERNAL_ID'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_EXTERNAL');?></option>
<option value="CODE"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']=='CODE'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_CODE');?></option>
<option value="other"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']=='other'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_OTHER');?></option>
</select>
<div id="unique_target_elements_other"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']!='other'):?> style="display:none"<?endif?>>
<br/>
<input type="text" name="fields[UNIQUE_TARGET_ELEMENTS_OTHER_VALUE]" value="<?=$arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS_OTHER_VALUE']?>" style="box-sizing:border-box; width:100%;" />
</div>
<script>
$('#unique_target_elements_select').change(function(){
if ($(this).val()=='other') {
$('#unique_target_elements_other').show();
} else {
$('#unique_target_elements_other').hide();
}
});
</script>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<?elseif($Action=='additional_settings'):?>
<table class="wd_excel2_params wd_excel2_additional_params">
<tbody>
<tr>
<td width="33%">
<p><?=GetMessage('WEBDEBUG_EXCEL_OPTION_HEADER_COLUMN')?>:</p>
<div><input type="text" size="16" name="matches[HEADER_COLUMN_<?=$SheetIndex?>]" value="<?=$arFields["MATCHES"]["HEADER_COLUMN_".$SheetIndex]?>"/></div>
</td>
<td width="33%">
<p><?=GetMessage('WEBDEBUG_EXCEL_OPTION_HEADER_ROW')?>:</p>
<div><input type="text" size="16" name="matches[HEADER_ROW_<?=$SheetIndex?>]" value="<?=$arFields["MATCHES"]["HEADER_ROW_".$SheetIndex]?>"/></div>
</td>
<td width="33%">
<p><?=GetMessage('WEBDEBUG_EXCEL_OPTION_ELEMENT_ROW')?>:</p>
<div><input type="text" size="16" name="matches[ELEMENT_ROW_<?=$SheetIndex?>]" value="<?=$arFields["MATCHES"]["ELEMENT_ROW_".$SheetIndex]?>"/></div>
</td>
</tr>
<?if($arFields['PARAMS']['BIND_METHOD_SECTIONS']=='by_uniq'):?>
<tr>
<td colspan="3">
<div>
<p><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_SECTIONS')?></p>
<select name="matches[UNIQ_COLUMN_SECTIONS_FOR_SHEET_<?=$SheetIndex?>]">
<option value=""><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_ANY')?></option>
<?foreach($arSheetHeaders as $HeaderID => $HeaderName):?>
<option value="<?=$HeaderID?>"<?WDOptSel($arFields['MATCHES']['UNIQ_COLUMN_SECTIONS_FOR_SHEET_'.$SheetIndex],$HeaderID)?>><?=$HeaderName?></option>
<?endforeach?>
</select>
</div>
</td>
</tr>
<?endif?>
<tr>
<td colspan="3">
<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq'):?>
<div>
<p><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_ELEMENTS')?></p>
<select name="matches[UNIQ_COLUMN_ELEMENTS_FOR_SHEET_<?=$SheetIndex?>]">
<option value=""><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_ANY')?></option>
<?foreach($arSheetHeaders as $HeaderID => $HeaderName):?>
<option value="<?=$HeaderID?>"<?WDOptSel($arFields['MATCHES']['UNIQ_COLUMN_ELEMENTS_FOR_SHEET_'.$SheetIndex],$HeaderID)?>><?=$HeaderName?></option>
<?endforeach?>
</select>
</div>
<?endif?>
</td>
</tr>
</tbody>
</table>
<?elseif($Action=='matches'):?>
<style>
select.texthtml option, select.texthtml optgroup {display:none;}
select.texthtml option[value=''],select.texthtml option[value='HTML'] {display:inline;}
</style>
<?if (IntVal($arFields['MATCHES']['HEADER_COLUMN_'.$SheetIndex])==0 || IntVal($arFields['MATCHES']['HEADER_ROW_'.$SheetIndex])==0) return false;?>
<?// START of matches for elements ?>
<div>
<br/><table style="width:100%;"><tbody><tr class="heading"><td><?=GetMessage('WEBDEBUG_EXCEL_SHEET_MATCHES_ELEMENTS')?></td></tr></tbody></table>
</div>
<div class="adm-list-table-wrap adm-list-table-without-footer">
<table class="adm-list-table" id="wd_excel2_matches_table_elements">
<thead>
<tr class="adm-list-table-header">
<td class="adm-list-table-cell" style="width:20%">
<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_COLUMN');?></div>
</td>
<td class="adm-list-table-cell">
<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_MATCH');?></div>
</td>
<td class="adm-list-table-cell" style="width:214px">
<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE');?></div>
</td>
<td class="adm-list-table-cell" style="width:160px">
<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_SEPARATOR');?></div>
</td>
</tr>
</thead>
<tfoot>
<tr class="adm-list-table-footer">
<td class="adm-list-table-cell" colspan="2">
<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_COLUMNS_COUNT');?> <?=count($arSheetHeaders)?>.</div>
</td>
<td class="adm-list-table-cell" colspan="2" style="text-align:right;">
<div style="text-align:right;">
<input type="button" value="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_RESET');?>" id="webdebug_reset_button_elements" />
<script>
$('#webdebug_reset_button_elements').click(function(){
$('#wd_excel2_matches_table_elements input[type=text]').val('');
$('#wd_excel2_matches_table_elements select').val('');
$('#wd_excel2_matches_table_elements select.wd_excel2_select_target').change();
});
</script>
</div>
</td>
</tr>
</tfoot>
<tbody>
<?foreach($arSheetHeaders as $HeaderColumnIndex => $HeaderName):?>
<tr class="adm-list-table-row">
<td class="adm-list-table-cell"><?=(trim($HeaderName)!=''?$HeaderName:GetMessage('WEBDEBUG_EXCEL_MATCHES_COLUMN_HEADER_EMPTY'));?></td>
<td class="adm-list-table-cell">
<?
$SelectedTargetIsProperty = false;
$SelectedTargetIsMultiple = false;
?>
<?$ParamVal=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['TARGET']?>
<select class="wd_excel2_select_target" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][TARGET]">
<option value=""><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_EMPTY')?></option>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_LOGIC')?>">
<option value="SKIP_FLAG"<?WDOptSel($ParamVal,'SKIP_FLAG')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_ELEMENT_SKIP_FLAG')?></option>
</optgroup>
<?if(CModule::IncludeModule('iblock')):?>
<?if($arFields['PARAMS']['MAX_DEPTH']>0):?>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVELS')?>">
<?for($i=1;$i<=$arFields['PARAMS']['MAX_DEPTH'];$i++):?>
<option value="DEPTH_<?=$i;?>"<?WDOptSel($ParamVal,'DEPTH_'.$i)?>><?=sprintf(GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVEL_I'),$i)?></option>
<?endfor?>
</optgroup>
<?endif?>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELDS')?>">
<option value="NAME"<?WDOptSel($ParamVal,'NAME')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_NAME')?></option>
<option value="ACTIVE"<?WDOptSel($ParamVal,'ACTIVE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_ACTIVE')?></option>
<option value="CODE"<?WDOptSel($ParamVal,'CODE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_CODE')?></option>
<option value="SORT"<?WDOptSel($ParamVal,'SORT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_SORT')?></option>
<option value="PREVIEW_TEXT" data-property="Y" data-texthtml="Y"<?WDOptSel($ParamVal,'PREVIEW_TEXT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT')?></option>
<option value="PREVIEW_TEXT_TYPE"<?WDOptSel($ParamVal,'PREVIEW_TEXT_TYPE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT_TYPE')?></option>
<option value="DETAIL_TEXT" data-property="Y" data-texthtml="Y"<?WDOptSel($ParamVal,'DETAIL_TEXT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT')?></option>
<option value="DETAIL_TEXT_TYPE"<?WDOptSel($ParamVal,'DETAIL_TEXT_TYPE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT_TYPE')?></option>
<option value="PREVIEW_PICTURE"<?WDOptSel($ParamVal,'PREVIEW_PICTURE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PPICTURE')?></option>
<option value="DETAIL_PICTURE"<?WDOptSel($ParamVal,'DETAIL_PICTURE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DPICTURE')?></option>
<option value="TAGS"<?WDOptSel($ParamVal,'TAGS')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_TAGS')?></option>
<?if($ParamVal=='PREVIEW_TEXT'||$ParamVal=='DETAIL_TEXT')$SelectedTargetIsProperty=true;?>
</optgroup>
<?endif?>
<?if($IBlockIsCatalog):?>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG')?>">
<?foreach($arPrices as $arPrice):?>
<option value="PRICE_<?=$arPrice['ID']?>"<?WDOptSel($ParamVal,'PRICE_'.$arPrice['ID'])?>><?=sprintf(GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PRICE'),$arPrice['NAME_LANG'])?></option>
<?endforeach?>
<option value="CURRENCY"<?WDOptSel($ParamVal,'CURRENCY')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_CURRENCY')?></option>
<option value="QUANTITY"<?WDOptSel($ParamVal,'QUANTITY')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY')?></option>
<option value="WEIGHT"<?WDOptSel($ParamVal,'WEIGHT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WEIGHT')?></option>
<option value="LENGTH"<?WDOptSel($ParamVal,'LENGTH')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_LENGTH')?></option>
<option value="WIDTH"<?WDOptSel($ParamVal,'WIDTH')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WIDTH')?></option>
<option value="HEIGHT"<?WDOptSel($ParamVal,'HEIGHT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_HEIGHT')?></option>
<option value="MEASURE_UNIT"<?WDOptSel($ParamVal,'MEASURE_UNIT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_UNIT')?></option>
<option value="MEASURE_RATIO"<?WDOptSel($ParamVal,'MEASURE_RATIO')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_RATIO')?></option>
<option value="PURCHASING_PRICE"<?WDOptSel($ParamVal,'PURCHASING_PRICE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_PRICE')?></option>
<option value="PURCHASING_CURRENCY"<?WDOptSel($ParamVal,'PURCHASING_CURRENCY')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_CURRENCY')?></option>
<option value="QUANTITY_TRACE"<?WDOptSel($ParamVal,'QUANTITY_TRACE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY_TRACE')?></option>
<option value="VAT"<?WDOptSel($ParamVal,'VAT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT')?></option>
<option value="VAT_INCLUDED"<?WDOptSel($ParamVal,'VAT_INCLUDED')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT_INCLUDED')?></option>
<?foreach($arStores as $arStore):?>
<option value="STORE_<?=$arStore['ID']?>"<?WDOptSel($ParamVal,'STORE_'.$arStore['ID'])?>><?=sprintf(GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE'),$arStore['TITLE']);?><?if($arStore['ACTIVE']!='Y'):?><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE_NOT_ACTIVE')?><?endif?></option>
<?endforeach?>
</optgroup>
<?endif?>
<?if(!empty($arIBlockProps)):?>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_GROUP_PROPERTIES')?>">
<?foreach($arIBlockProps as $arProp):?>
<option value="PROPERTY_<?=$arProp['ID']?>" data-property="Y"<?if($arProp['MULTIPLE']=='Y'):?> data-multiple="Y"<?endif?><?WDOptSel($ParamVal,'PROPERTY_'.$arProp['ID'])?>><?=$arProp['NAME']?> [<?=($arProp['CODE']?$arProp['CODE']:$arProp['ID'])?><?if($ShowPropertyType):?>, <?=$arProp['PROPERTY_TYPE'].(trim($arProp['USER_TYPE'])!=''?':'.$arProp['USER_TYPE']:'');?><?if($arProp['MULTIPLE']=='Y'):?>, M<?endif?><?endif?>]</option>
<?if($ParamVal=='PROPERTY_'.$arProp['ID']){$SelectedTargetIsProperty=true; if($arProp['MULTIPLE']=='Y') $SelectedTargetIsMultiple=true;}?>
<?endforeach?>
</optgroup>
<?endif?>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_GROUP_SEO_E')?>">
<option value="SEO_ELEMENT_META_TITLE"<?WDOptSel($ParamVal,'SEO_ELEMENT_META_TITLE')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_TITLE')?></option>
<option value="SEO_ELEMENT_META_KEYWORDS"<?WDOptSel($ParamVal,'SEO_ELEMENT_META_KEYWORDS')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_KEYWORDS')?></option>
<option value="SEO_ELEMENT_META_DESCRIPTION"<?WDOptSel($ParamVal,'SEO_ELEMENT_META_DESCRIPTION')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_DESCRIPTION')?></option>
<option value="SEO_ELEMENT_PAGE_TITLE"<?WDOptSel($ParamVal,'SEO_ELEMENT_PAGE_TITLE')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_PAGE_TITLE')?></option>
</optgroup>
</select>
</td>
<td class="adm-list-table-cell">
<?$ParamVal=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['TYPE']?>
<select class="wd_excel2_select_type" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][TYPE]" style="<?if(!$SelectedTargetIsProperty):?>display:none;<?endif?> width:100%;">
<option value=""<?WDOptSel($ParamVal,"")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_DEFAULT')?></option>
<option value="HTML"<?WDOptSel($ParamVal,"HTML")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_HTML')?></option>
<option value="INTEGER"<?WDOptSel($ParamVal,"INTEGER")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_INTEGER')?></option>
<option value="FLOAT"<?WDOptSel($ParamVal,"FLOAT")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_FLOAT')?></option>
<option value="FLAG"<?WDOptSel($ParamVal,"FLAG")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_FLAG')?></option>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_GROUP_LIST')?>">
<option value="LIST_XML_ID"<?WDOptSel($ParamVal,"LIST_XML_ID")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_LIST_XML_ID')?></option>
<option value="LIST_VALUE"<?WDOptSel($ParamVal,"LIST_VALUE")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_LIST_VALUE')?></option>
</optgroup>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_GROUP_ELEMENT')?>">
<option value="ELEMENT_ID"<?WDOptSel($ParamVal,"ELEMENT_ID")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_ID')?></option>
<option value="ELEMENT_CODE"<?WDOptSel($ParamVal,"ELEMENT_CODE")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_CODE')?></option>
<option value="ELEMENT_NAME"<?WDOptSel($ParamVal,"ELEMENT_NAME")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_NAME')?></option>
<option value="ELEMENT_EXTERNAL"<?WDOptSel($ParamVal,"ELEMENT_EXTERNAL")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_EXTERNAL')?></option>
</optgroup>
<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_GROUP_SECTION')?>">
<option value="SECTION_ID"<?WDOptSel($ParamVal,"SECTION_ID")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_ID')?></option>
<option value="SECTION_CODE"<?WDOptSel($ParamVal,"SECTION_CODE")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_CODE')?></option>
<option value="SECTION_NAME"<?WDOptSel($ParamVal,"SECTION_NAME")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_NAME')?></option>
<option value="SECTION_EXTERNAL"<?WDOptSel($ParamVal,"SECTION_EXTERNAL")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_EXTERNAL')?></option>
</optgroup>
</select>
</td>
<td class="adm-list-table-cell">
<?$ParamVal=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['SEPARATOR']?>
<div class="wd_excel2_separator"<?if(!$SelectedTargetIsMultiple):?> style="display:none"<?endif?> >
<div>
<select class="wd_excel2_select_separator" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][SEPARATOR]" style="width:100%;">
<option value=""><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_EMPTY');?></option>
<option value="new"<?WDOptSel($ParamVal,"new")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_NEWLINE');?></option>
<option value="tab"<?WDOptSel($ParamVal,"tab")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_TAB');?></option>
<option value="commas"<?WDOptSel($ParamVal,"commas")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_COMMA');?></option>
<option value="semicolon"<?WDOptSel($ParamVal,"semicolon")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_SEMICOLON');?></option>
<option value="dash"<?WDOptSel($ParamVal,"dash")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_DASH');?></option>
<option value="dot"<?WDOptSel($ParamVal,"dot")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_DOT');?></option>
<option value="space"<?WDOptSel($ParamVal,"space")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_SPACE');?></option>
<option value="other"<?WDOptSel($ParamVal,"other")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_OTHER');?></option>
</select>
</div>
<div style="display:<?=($ParamVal=='other'?'block':'none')?>">
<input type="text" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][SEPARATOR_OTHER]" maxlength="255" value="<?=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['SEPARATOR_OTHER']?>" style="text-align:center; idth:100%"/>
</div>
</div>
</td>
</tr>
<?endforeach?>
</tbody>
</table>
<script>
$('#wd_excel2_matches_table_elements .wd_excel2_select_separator').unbind('change').change(function(){
if ($(this).val()=='other') {
$(this).parent().next().show().width($(this).width());
} else {
$(this).parent().next().hide();
}
});
$('#wd_excel2_matches_table_elements .wd_excel2_select_target').unbind('change').change(function(){
var OptionSelected = $(this).find('option:selected');
$(this).parent().parent().find('.wd_excel2_select_type').css('display', OptionSelected.attr('data-property')=='Y' ? 'inline-block' : 'none');
$(this).parent().parent().find('.wd_excel2_separator').css('display', OptionSelected.attr('data-multiple')=='Y' ? 'block' : 'none');
if (OptionSelected.data('texthtml')=='Y') {
$(this).parent().parent().find('.wd_excel2_select_type').addClass('texthtml');
} else {
$(this).parent().parent().find('.wd_excel2_select_type').removeClass('texthtml');
}
});
</script>
</div>
<?// END of matches for elements ?>
<?elseif($Action=='next_step'):?>
<?
class CWDExcel2_LevelsMode {
/**
* Build $arFields array for adding section to IBlock
*/
function BuildSectionArray($arData) {
$arData['IS_SECTION'] = true;
$arMatches = $arData['FIELDS']['MATCHES']['SHEET'][$arData['SHEET']];
$arSectionFields = array(
'IBLOCK_ID' => $arData['FIELDS']['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$arData['SHEET']],
);
if ($arMatch['TARGET']=='DESCRIPTION') {
$arElementFields['DESCRIPTION_TYPE'] = $arMatch['TYPE']=='HTML' ? 'html' : 'text';
}
// ������ �������� ��� (����� � �����. ������)
$UniqColumn = IntVal($arData['FIELDS']['MATCHES']['UNIQ_COLUMN_SECTIONS_FOR_SHEET_'.$arData['SHEET']]);
$UniqValue = $arData['ITEM']['ITEMS'][$UniqColumn]['VALUE'];
if ($arData['FIELDS']['PARAMS']['BIND_METHOD_SECTIONS']=='by_uniq') {
switch($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_SECTIONS']) {
case 'EXTERNAL_ID':
$arSectionFields['EXTERNAL_ID'] = $UniqValue;
break;
case 'CODE':
$arSectionFields['CODE'] = $UniqValue;
break;
case 'other':
if (trim($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_SECTIONS_OTHER_VALUE'])!='') {
$arSectionFields[$arData['FIELDS']['PARAMS']['UNIQUE_TARGET_SECTIONS_OTHER_VALUE']] = $UniqValue;
}
break;
}
}
// �������� ������������� ������
$arSectionFields['UF_'.CWebdebugExcel2::ImportIDPropCode] = $arData['STATUS']['ID'];
return $arSectionFields;
}
/**
* Build $arFields array for adding element to IBlock
*/
function BuildElementArray($arData) {
$arData['IS_ELEMENT'] = true;
$arMatches = $arData['FIELDS']['MATCHES']['SHEET'][$arData['SHEET']];
$IBlockID = IntVal($arData['FIELDS']['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$arData['SHEET']]);
$arElementFields = array(
'IBLOCK_ID' => $IBlockID,
);
$arSectionsDepth = array();
foreach($arData['ITEM']['ITEMS'] as $Column => $arCell) {
$arMatch = $arMatches[$Column]['ELEMENTS'];
if (preg_match('#DEPTH_([\d]+)#i',$arMatch['TARGET'],$M)) {
if (trim($arCell['VALUE'])!='') {
$arSectionsDepth[$M[1]] = trim($arCell['VALUE']);
}
continue;
}
if (is_array($arMatch) && trim($arMatch['TARGET'])!='') {
$arData['HTML'] = $arCell['HTML'];
$arData['IS_SEO_FIELD'] = stripos($arMatch['TARGET'],'SEO_')===0;
$arElementFields[$arMatch['TARGET']] = CWebdebugExcel2::ProcessValue($arCell['VALUE'], $arMatch['TARGET'], $arMatch['TYPE'], $arMatch['SEPARATOR'], $arMatch['SEPARATOR_OTHER'], $arData);
if ($arMatch['TARGET']=='PREVIEW_TEXT') {
$arElementFields['PREVIEW_TEXT_TYPE'] = $arMatch['TYPE']=='HTML' ? 'html' : 'text';
}
if ($arMatch['TARGET']=='DETAIL_TEXT') {
$arElementFields['DETAIL_TEXT_TYPE'] = $arMatch['TYPE']=='HTML' ? 'html' : 'text';
}
if ($arData['IS_SEO_FIELD']) {
$SeoField = CWebdebugExcel2::SubStr($arMatch['TARGET'],4);
if (!is_array($arElementFields['IPROPERTY_TEMPLATES'])) $arElementFields['IPROPERTY_TEMPLATES'] = array();
$arElementFields['IPROPERTY_TEMPLATES'][$SeoField] = $arElementFields[$arMatch['TARGET']];
unset($arElementFields[$arMatch['TARGET']]);
}
}
}
if (!isset($arSectionFields['PREVIEW_TEXT'])) unset($arSectionFields['PREVIEW_TEXT_TYPE']);
if (!isset($arSectionFields['DETAIL_TEXT'])) unset($arSectionFields['DETAIL_TEXT_TYPE']);
// ������ �������� ��� (����� � �����. ������)
$UniqColumn = IntVal($arData['FIELDS']['MATCHES']['UNIQ_COLUMN_ELEMENTS_FOR_SHEET_'.$arData['SHEET']]);
$UniqValue = $arData['ITEM']['ITEMS'][$UniqColumn]['VALUE'];
if ($arData['FIELDS']['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq') {
switch($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_ELEMENTS']) {
case 'EXTERNAL_ID':
$arElementFields['EXTERNAL_ID'] = $UniqValue;
break;
case 'CODE':
$arElementFields['CODE'] = $UniqValue;
break;
case 'other':
if (trim($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_ELEMENTS_OTHER_VALUE'])!='') {
$arElementFields[$arData['FIELDS']['PARAMS']['UNIQUE_TARGET_ELEMENTS_OTHER_VALUE']] = $UniqValue;
}
break;
}
}
// �������� ������������� ������
$arElementFields['PROPERTY_'.CWebdebugExcel2::GetPropertyIdByCode($IBlockID,CWebdebugExcel2::ImportIDPropCode)] = $arData['STATUS']['ID'];
$arElementFields['SECTIONS'] = $arSectionsDepth;
return $arElementFields;
}
/**
* Check, if row is marked by skip flag
*/
function CheckRowSkip($arData, $IsSection=false) {
$Skip = false;
$arMatches = $arData['FIELDS']['MATCHES']['SHEET'][$arData['SHEET']];
foreach($arData['ITEM']['ITEMS'] as $Column => $arCell) {
$arMatch = $arMatches[$Column][$IsSection?'SECTIONS':'ELEMENTS'];
if ($arMatch['TARGET']=='SKIP_FLAG') {
$arFlags = explode("\n",$arData['FIELDS']['PARAMS']['FLAGS']);
foreach($arFlags as $Flag) {
if (ToLower(trim($Flag))==ToLower(trim($arCell['VALUE']))) {
$Skip = true;
break 2;
}
}
}
}
return $Skip;
}
/**
* Function gets ID of section, to which will be loaded new section||element
*/
function GetTargetSection($arData) {
if ($arData['SECTION_LOCAL_DEPTH']==0) {
// �� ������� ����� - ��������� �����
if ($arData['PARENT_SECTION']['ID']>0) {
// ���� �������� � ������ - ID ����� �������
return $arData['PARENT_SECTION']['ID'];
} else {
// ���� - ����� ���������
return false;
}
} elseif ($arData['SECTION_LOCAL_DEPTH']>0) {
// �� ������ ������� ��������� ������������� �������
if ($arData['STATUS']['SECTIONS_BY_DEPTH'][$arData['SECTION_LOCAL_DEPTH']-1]) {
// ID ������� ��������� �����
return $arData['STATUS']['SECTIONS_BY_DEPTH'][$arData['SECTION_LOCAL_DEPTH']-1];
} else {
// � ��� ������ �� ������ ������
//ToDo: Log();
return false;
}
}
return false;
}
/**
* Full processing element (from building fields array to save it)
*/
function ProcessElement($arData) {
$arResult = array();
// ������ ��������
$arResult['ELEMENT_FIELDS'] = $this->BuildElementArray($arData);
// ��������� �����
if ($arResult['ELEMENT_FIELDS']['IBLOCK_ID']===0) {
CWebdebugExcel2::Log(sprintf(GetMessage('WEBDEBUG_EXCEL_ERROR_IBLOCK_IS_EMPTY'),$arData['INDEX']));
return false;
}
if (isset($arResult['ELEMENT_FIELDS']['NAME']) && trim($arResult['ELEMENT_FIELDS']['NAME'])=='') {
CWebdebugExcel2::Log(sprintf(GetMessage('WEBDEBUG_EXCEL_ERROR_NAME_IS_EMPTY'),$arData['INDEX']));
return false;
}
// ���, ��������� �� ��� ������� �������
$arResult['ELEMENT_EXISTS'] = CWebdebugExcel2::IsElementExists($arResult['ELEMENT_FIELDS'], $arData);
// ��� ������
ksort($arResult['ELEMENT_FIELDS']['SECTIONS']);
$IBlockSection = new CIBlockSection;
$LastSectionID = $arData['PARENT_SECTION']['ID'];
$arData['PARENT_SECTION']['LEFT_MARGIN'] = false;
$arData['PARENT_SECTION']['RIGHT_MARGIN'] = false;
if ($arData['FIELDS']['PARAMS']['SKIP_SECTIONS_ALL']!='Y') {
foreach($arResult['ELEMENT_FIELDS']['SECTIONS'] as $Depth => $SectionName) {
$arSectionFields = array(
'IBLOCK_ID' => $arResult['ELEMENT_FIELDS']['IBLOCK_ID'],
'IBLOCK_SECTION_ID' => $LastSectionID,
'NAME' => $SectionName,
);
$SectionID = CWebdebugExcel2::IsSectionExists($arSectionFields, $arData);
if ($SectionID) {
$LastSectionID = $SectionID;
} else {
CWebdebugExcel2::CheckCodeField(false,$arSectionFields,$arData,true,true);
$arSectionFields = CWebdebugExcel2::PreprocessFields($arSectionFields, $arData, 'ADD', 'SECTION');
$NewSectionID = $IBlockSection->Add($arSectionFields);
if ($NewSectionID) {
$LastSectionID = $NewSectionID;
} else {
CWebdebugExcel2::ShowError($IBlockSection->LAST_ERROR, $arData);
}
}
}
if ($LastSectionID>0) {
$arResult['ELEMENT_FIELDS']['IBLOCK_SECTION_ID'] = $LastSectionID;
}
}
unset($arResult['ELEMENT_FIELDS']['SECTIONS']);
// ������� ��� ��������:
$IBlockElement = new CIBlockElement;
$ElementID = false;
CWebdebugExcel2::CheckCodeField($SectionID, $arResult['ELEMENT_FIELDS'],$arData,false,!$arResult['ELEMENT_EXISTS']);
if ($arResult['ELEMENT_EXISTS']) {
// ���������� ������
$arResult['IBLOCK_ELEMENT_NAME'] = $arResult['ELEMENT_FIELDS']['NAME'];
$ElementID = $arResult['ELEMENT_EXISTS'];
$arResult['ELEMENT_FIELDS'] = CWebdebugExcel2::PreprocessFields($arResult['ELEMENT_FIELDS'], $arData, 'UPDATE', 'ELEMENT', $ElementID);
$arResult['UPDATE_RESULT'] = $IBlockElement->Update($ElementID, $arResult['ELEMENT_FIELDS']);
if (!$arResult['UPDATE_RESULT']) {
CWebdebugExcel2::ShowError(GetMessage('WEBDEBUG_EXCEL_ERROR_UPD_ELEMENT').$IBlockElement->LAST_ERROR, $arData);
}
} elseif ($arData['FIELDS']['PARAMS']['UPDATE_ONLY']!='Y') {
// ���������� ������
$arResult['ELEMENT_FIELDS'] = CWebdebugExcel2::PreprocessFields($arResult['ELEMENT_FIELDS'], $arData, 'ADD', 'ELEMENT');
$arResult['ADD_RESULT'] = $IBlockElement->Add($arResult['ELEMENT_FIELDS']);
$arResult['IBLOCK_ELEMENT_NAME'] = $arResult['ELEMENT_FIELDS']['NAME'];
$ElementID = $arResult['ADD_RESULT'];
if (!$arResult['ADD_RESULT']) {
CWebdebugExcel2::ShowError(GetMessage('WEBDEBUG_EXCEL_ERROR_ADD_ELEMENT').$IBlockElement->LAST_ERROR, $arData);
}
}
foreach($arResult['ELEMENT_FIELDS'] as $Key => $Value) {
if (preg_match('#PROPERTY_(\d+)$#i',$Key,$M)) {
$PropertyID = $M[1];
CIBlockElement::SetPropertyValuesEx($ElementID, $arData['FIELDS']['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$arData['SHEET']], array($PropertyID=>$Value));
}
}
// Set product info
$arResult['ELEMENT_PRODUCT_FIELDS'] = CWebdebugExcel2::BuildProductArray($arData, 'ELEMENTS');
CWebdebugExcel2::SetProductData($ElementID, $arResult['ELEMENT_PRODUCT_FIELDS'], $arData);
$arResult['IBLOCK_ELEMENT_ID'] = $ElementID;
CWebdebugExcel2::SetProductSaved($ElementID, $arData);
return $arResult;
}
/**
* Start processing of row (still unknown: section || element)
*/
function ProcessRow($arData) {
// 1. ��������� ���� ��������
$Skip = $this->CheckRowSkip($arData, $IsSection);
// 2. ������� ���������
if (!$Skip) {
$X = $this->ProcessElement($arData);
return $X;
}
return false;
}
}
?>
<?
$Done = false;
$arDepthSections = array();
CModule::IncludeModule('iblock');
$WDExcel2Mode = new CWDExcel2_LevelsMode();
// Iterate all sheets and items in each sheet
foreach($File['SHEETS'] as $SheetIndex => $arSheet) {
$IBlockID = IntVal($arFields['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$SheetIndex]);
if ($SheetIndex<$arStatus['CURR_SHEET']) continue;
if (IntVal($arStatus['LAST_ROW'])==0) $arStatus['LAST_ROW'] = IntVal($arFields['MATCHES']['ELEMENT_ROW_'.$SheetIndex]);
$arTargetSectionID = IntVal($arFields['MATCHES']['SECTION_ID_FOR_SHEET_'.$SheetIndex]);
$arTargetSectionLMargin = false;
$arTargetSectionRMargin = false;
if ($arTargetSectionID>0) {
$resSection = CIBlockSection::GetList(array(),array('IBLOCK_ID'=>$IBlockID,'ID'=>$arTargetSectionID),false,array('LEFT_MARGIN','RIGHT_MARGIN'));
if ($arSection = $resSection->GetNext(false,false)) {
$arTargetSectionLMargin = $arSection['LEFT_MARGIN'];
$arTargetSectionRMargin = $arSection['RIGHT_MARGIN'];
}
}
foreach($arSheet['ITEMS'] as $ItemIndex => $arItem) {
// If last in sheet
if ($ItemIndex==end(array_keys($arSheet['ITEMS']))) {
$arStatus['CURR_SHEET'] = IntVal($arStatus['CURR_SHEET'])+1;
$arStatus['LAST_ROW'] = 0;
if (!isset($File['SHEETS'][$arStatus['CURR_SHEET']])) {
$Done = true;
}
// For progress indicators
$arStatus['COUNT'][$SheetIndex]['DONE'] = true;
}
if ($ItemIndex<$arStatus['LAST_ROW']) continue;
$arResult = $WDExcel2Mode->ProcessRow(array(
'SHEET' => $SheetIndex,
'ITEM' => $arItem,
'INDEX' => $ItemIndex,
'FIELDS' => $arFields,
'STATUS' => $arStatus,
'PARENT_SECTION' => array('ID'=>$arTargetSectionID,'LEFT_MARGIN'=>$arTargetSectionLMargin,'RIGHT_MARGIN'=>$arTargetSectionRMargin),
));
// ����������� ���������� ������ (������� ID, ������� ��������)
if (is_array($arResult) && $arResult['IBLOCK_ELEMENT_ID']>0) {
$arStatus['IBLOCK_ELEMENT_ID_LAST'] = $arResult['IBLOCK_ELEMENT_ID'];
$arStatus['IBLOCK_ELEMENT_NAME_LAST'] = $arResult['IBLOCK_ELEMENT_NAME'];
}
$arStatus['LAST_ROW'] = IntVal($arStatus['LAST_ROW'])+1;
// For progress indicators
$arStatus['COUNT'][$SheetIndex]['CURR'] = $ItemIndex;
// Errors handler
if ($GLOBALS['WEBDEBUG_EXCEL2_ERRORS_COUNT']>0) {
$arStatus['ERRORS_COUNT'] = IntVal($arStatus['ERRORS_COUNT']) + $GLOBALS['WEBDEBUG_EXCEL2_ERRORS_COUNT'];
unset($GLOBALS['WEBDEBUG_EXCEL2_ERRORS_COUNT']);
}
if (CWebdebugExcel2::CheckTimeIsOver($arFields['STEPTIME'])) {
break 2;
}
}
// ����� �������� ������� ����� ��������� ������ �������� ��������
unset($arStatus['IBLOCK_ELEMENT_ID_LAST']);
unset($arStatus['IBLOCK_ELEMENT_NAME_LAST']);
}
// Get status (only for print to user information)
$arSheets = array();
foreach($File['SHEETS'] as $SheetIndex => $arSheet) {
$arSheets[$SheetIndex] = array(
'NAME' => $arSheet['NAME'],
'ROWS' => count($arSheet['ITEMS']),
'LAST' => 0,
'FIRST' => IntVal($arFields['MATCHES']['ELEMENT_ROW_'.$SheetIndex]),
);
if ($SheetIndex<IntVal($arStatus['CURR_SHEET'])) {
$arSheets[$SheetIndex]['LAST'] = $arSheets[$SheetIndex]['ROWS'];
} elseif ($SheetIndex==$arStatus['CURR_SHEET']) {
$arSheets[$SheetIndex]['LAST'] = IntVal($arStatus['LAST_ROW']);
}
}
if ($Done) {
$Next = false;
unset($arStatus['CURR_SHEET']);
unset($arStatus['LAST_ROW']);
} else {
$Next = true;
}
?>
<?endif?>