%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/catalog.product.search/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/catalog.product.search/templates/.default/template.php |
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
use Bitrix\Main,
Bitrix\Iblock;
if ($_REQUEST['public_mode'] == "Y")
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_popup_admin.php");
}
if (!$arResult['IS_ADMIN_SECTION'])
return;
$listImageSize = (int)Main\Config\Option::get('iblock', 'list_image_size');
$viewFileParams = array(
'IMAGE' => 'Y',
'PATH' => 'Y',
'FILE_SIZE' => 'Y',
'DIMENSIONS' => 'Y',
'IMAGE_POPUP' => 'Y',
'MAX_SIZE' => array(
'W' => $listImageSize,
'H' => $listImageSize
),
'MIN_SIZE' => array('W' => 1, 'H' => 1),
);
unset($listImageSize);
function getTreeOffsetWidth($level = 0)
{
// Some magic numbers
return 30 + $level * 21;
}
function renderTree($sections, $level = 0, $tableId)
{
$content = '';
$level = (int)$level;
foreach ($sections as $section)
{
$bSubmenu = $section["dynamic"];
$bSectionActive = $section["open"];
$icon = isset($section["icon"]) && $section["icon"] <> ""
? '<span class="adm-submenu-item-link-icon ' . $section["icon"] . '"></span>' : '';
$id = $tableId . '_section_' . $section['id'];
$onclick = '';
if ($bSubmenu)
{
$onclick = $tableId . "_helper.toggleDynSection(" . getTreeOffsetWidth($level) . ", this.parentNode.parentNode, '"
. (int)$section["id"] . "', '" . ($level + 1) . "')";
}
$content .= '<div
class="adm-sub-submenu-block' . ($level > 0 ? ' adm-submenu-level-' . ($level + 1) : '') . ($bSectionActive ? ' adm-sub-submenu-open' : '')
. ($section["active"] ? ' adm-submenu-item-active' : '') . '">
<div class="adm-submenu-item-name' . (!$bSubmenu ? ' adm-submenu-no-children' : '') . '"
id="' . $id . '" data-level="' . $level . '" data-offset="' . getTreeOffsetWidth($level) . '"
tabindex="2"><span class="adm-submenu-item-arrow"' . ($level > 0 ? ' style="width:' . getTreeOffsetWidth($level) . 'px;"' : '')
. ($onclick ? ' onclick="' . $onclick . '"' : '') . '>
<span class="adm-submenu-item-arrow-icon"></span></span><a
class="adm-submenu-item-name-link"' . ($level > 0 ? ' style="padding-left:' . (getTreeOffsetWidth($level) + 8) . 'px;"' : '') . '
href="#" . " onclick="return '.$tableId . '_helper.onSectionClick(\'' . $section["id"] . '\')">' . $icon . '
<span class="adm-submenu-item-name-link-text">' . htmlspecialcharsbx($section["text"]) . '</span></a></div>';
$content .= '<div class="adm-sub-submenu-block-children">' . ($bSubmenu ? renderTree($section["items"], $level + 1, $tableId) : '') . '</div>';
$content .= '</div>';
}
unset($section);
return $content;
}
/**
* @param $name
* @param $property_fields
* @param $values
* @return bool|string
*/
function _ShowGroupPropertyFieldList($name, $property_fields, $values)
{
if (!is_array($values)) $values = array();
$options = "";
$result = "";
$bWas = false;
$sections = ProductSearchComponent::getPropertyFieldSections($property_fields["LINK_IBLOCK_ID"]);
if (!empty($sections) && is_array($sections))
{
foreach ($sections as &$section)
{
$options .= '<option value="' . $section["ID"] . '"';
if (in_array($section["ID"], $values))
{
$bWas = true;
$options .= ' selected';
}
$options .= '>' . str_repeat(" . ", $section["DEPTH_LEVEL"]) . $section["NAME"] . '</option>';
}
unset($section);
}
$result .= '<select name="' . $name . '[]" size="' . ($property_fields["MULTIPLE"] == "Y" ? "5" : "1") . '" ' . ($property_fields["MULTIPLE"] == "Y" ? "multiple" : "") . '>';
$result .= '<option value=""' . (!$bWas ? ' selected' : '') . '>' . GetMessage("SPS_A_PROP_NOT_SET") . '</option>';
$result .= $options;
$result .= '</select>';
return $result;
}
function getImageField($property_value_id,$property_value)
{
global $viewFileParams;
$res = CFileInput::Show('NO_FIELDS[' . $property_value_id . ']', $property_value, $viewFileParams, array(
'upload' => false,
'medialib' => false,
'file_dialog' => false,
'cloud' => false,
'del' => false,
'description' => false,
)
);
$res = preg_replace('!<script[^>]*>.*</script>!isU','', $res);
return $res;
}
if (!empty($arResult['OPEN_SECTION_MODE']))
{
echo renderTree($arResult['SECTIONS'],$arResult['LEVEL'],$arResult['TABLE_ID']);
}
else
{
$arProps = $arResult['PROPS'];
$arSKUProps = $arResult['SKU_PROPS'];
$arFilter = $arResult['FILTER'];
$tableId = CUtil::JSEscape($arResult['TABLE_ID']);
// START TEMPLATE
$APPLICATION->SetAdditionalCSS('/bitrix/panel/main/admin.css');
$lAdmin = new CAdminList($arResult['TABLE_ID'], new CAdminSorting($arResult['TABLE_ID'], "ID", "ASC"));
$lAdmin->InitFilter($arResult['FILTER_FIELDS']);
// fix
$_REQUEST['admin_history'] = 1;
$lAdmin->NavText($arResult['DB_RESULT_LIST']->GetNavPrint(GetMessage("SPS_NAV_LABEL")));
foreach (array_keys($arResult['HEADERS']) as $index)
{
$arResult['HEADERS'][$index]['content'] = htmlspecialcharsbx($arResult['HEADERS'][$index]['content']);
if (isset($arResult['HEADERS'][$index]['title']))
$arResult['HEADERS'][$index]['title'] = htmlspecialcharsbx($arResult['HEADERS'][$index]['title']);
}
unset($index);
$lAdmin->AddHeaders($arResult['HEADERS']);
$arSelectedFields = $lAdmin->GetVisibleHeaderColumns();
$arSelectedProps = array();
$allProps = array_merge($arProps, $arSKUProps);
foreach ($allProps as $prop)
{
if ($key = array_search("PROPERTY_" . $prop['ID'], $arSelectedFields))
{
$arSelectedProps[] = $prop;
unset($arSelectedFields[$key]);
}
}
$allProps = null;
$arSelectedFields = null;
$arSku = array();
$showSkuName = (string)Main\Config\Option::get('catalog', 'product_form_show_offer_name') == 'Y';
//Add 'Level Up' row to grid
if ($arResult['PARENT_SECTION_ID'] >= 0)
{
$row =& $lAdmin->AddRow(0, array());
$row->AddViewField('NAME', '<a class="adm-list-table-link"><span class="bx-s-iconset folder"></span>..</a>');
$row->AddActions(array(array(
"TEXT" => GetMessage("SPS_GOTO_PARENT_SECTION"),
"DEFAULT" => "Y",
"ACTION" => $tableId . '_helper.onSectionClick(' . (int)$arResult['PARENT_SECTION_ID'] . ');'
)));
}
foreach ($arResult['PRODUCTS'] as $arItems)
{
$arCatalogProduct = $arItems['PRODUCT'];
$row = &$lAdmin->AddRow($arItems["ID"], $arItems);
$row->AddField("ACTIVE", $arItems["ACTIVE"] == 'Y' ? GetMessage('SPS_PRODUCT_ACTIVE') : GetMessage('SPS_PRODUCT_NO_ACTIVE'));
$row->AddViewFileField('PREVIEW_PICTURE', $viewFileParams);
$row->AddViewFileField('DETAIL_PICTURE', $viewFileParams);
$arActions = array();
$icon = $arCatalogProduct['TYPE'] == CCatalogProduct::TYPE_SET ? 'f2' : 'f1';
if (!empty($arItems['SKU_ITEMS']) && !empty($arItems['SKU_ITEMS']["SKU_ELEMENTS"]))
{
$icon = 'f3';
$arSkuResult = $arItems['SKU_ITEMS'];
$arParams = array(
'id' => $arItems['ID'],
'type' => $arCatalogProduct['TYPE'],
'name' => htmlspecialcharsbx($arItems['NAME'])
);
$jsClick = $tableId.'_helper.SelEl('.CUtil::PhpToJSObject($arParams, false, true, true).', this);';
if ($arResult['CALLER'] == 'discount' || $arResult['ALLOW_SELECT_PARENT'] == 'Y')
{
$row->AddField("ACTION", '<a href="javascript:void(0)" onclick="'.$jsClick.'; BX.PreventDefault(); return false;">'.GetMessage('SPS_SELECT').'</a>');
}
$row->AddViewField("EXPAND", '<a class="expand-sku">' . GetMessage('SPS_EXPAND') . '</a><a class="collapse-sku">' . GetMessage('SPS_COLLAPSE') . '</a>');
$arActions[] = array(
"ICON" => "view",
"TEXT" => GetMessage("SPS_SKU_SHOW"),
"DEFAULT" => "Y",
"ACTION" => $tableId . '_helper.fShowSku(' . CUtil::PhpToJSObject($arSkuResult["SKU_ELEMENTS_ID"]) . ', this);'
);
if ($arResult['CALLER'] == 'discount' || $arResult['ALLOW_SELECT_PARENT'] == 'Y')
{
$arActions[] = array(
"TEXT" => GetMessage("SPS_SELECT"),
"DEFAULT" => "N",
"ACTION" => $jsClick
);
}
unset($jsClick, $arParams);
foreach ($arSkuResult["SKU_ELEMENTS"] as $val)
{
$arSku[] = $val["ID"];
$rowSku = &$lAdmin->AddRow($val["ID"], $val);
$skuProperty = '';
if ($showSkuName)
$skuProperty .= '<i>'.htmlspecialcharsbx($val['NAME']).'</i>';
$arSkuActions = array();
$rowSku->AddField("NAME", '<div class="sku-item-name">' . $skuProperty . '</div>' . '<input type="hidden" name="prd" id="' . $tableId . '_sku-' . $val["ID"] . '">');
$rowSku->AddViewFileField('DETAIL_PICTURE', $viewFileParams);
$rowSku->AddViewFileField('PREVIEW_PICTURE', $viewFileParams);
$rowSku->AddField("ID", $arItems["ID"] . "-" . $val["ID"]);
if (!empty($arResult['PRICES']))
{
foreach ($arResult['PRICES'] as $price)
$rowSku->AddViewField("PRICE".$price['ID'], CCurrencyLang::CurrencyFormat($arResult['SKU_PRICES'][$price['ID']][$val["ID"]]['PRICE'], $arResult['SKU_PRICES'][$price['ID']][$val["ID"]]['CURRENCY'], true));
unset($price);
}
$balance = (float)$val["BALANCE"];
$ratio = (isset($val['MEASURE_RATIO']) ? $val['MEASURE_RATIO'] : 1);
$measure = (isset($val['MEASURE']['SYMBOL_RUS']) ? ' '.$val['MEASURE']['SYMBOL_RUS'] : '');
$arParams = array(
'id' => $val["ID"],
'type' => $val["TYPE"],
'name' => htmlspecialcharsbx($val['NAME']),
'full_quantity' => $val['QUANTITY'],
'measureRatio' => (isset($val['MEASURE_RATIO']) ? $val['MEASURE_RATIO'] : 1),
'measure' => (isset($val['MEASURE']['~SYMBOL_RUS']) ? htmlspecialcharsbx($val['MEASURE']['~SYMBOL_RUS']) : ''),
'quantity' => $val['DEFAULT_QUANTITY']
);
$rowSku->AddField("QUANTITY", '<span style="white-space: nowrap;"><input style="text-align: center;" type="text" id="'.$tableId.'_qty_'.$val["ID"].'" value="'.$val['DEFAULT_QUANTITY'].'" size="4" />'.$measure.'</span>');
unset($measure, $ratio);
$arSkuActions[] = array(
"TEXT" => GetMessage("SPS_SELECT"),
"DEFAULT" => "Y",
"ACTION" => $tableId . '_helper.SelEl(' . CUtil::PhpToJSObject($arParams) . ', this);'
);
$active = ($val["ACTIVE"] == 'Y' ? GetMessage('SPS_PRODUCT_ACTIVE') : GetMessage('SPS_PRODUCT_NO_ACTIVE'));
$rowSku->AddActions($arSkuActions);
$rowSku->AddField("BALANCE", $balance);
$rowSku->AddField("ACTIVE", $active);
$rowSku->AddField("ACTION", '<a class="select-sku">' . GetMessage('SPS_SELECT') . '</a>');
if (!empty($val['PROPERTIES']))
{
foreach ($arSelectedProps as $property)
{
if (empty($val['PROPERTIES'][$property['ID']]))
continue;
$separator = ($property['PROPERTY_TYPE'] == Iblock\PropertyTable::TYPE_FILE ? '' : '/ ');
$rowSku->AddViewField('PROPERTY_'.$property['ID'], implode($separator, $val['PROPERTIES'][$property['ID']]));
unset($separator);
}
unset($property);
}
}
}
else
{
if ($arItems['TYPE'] == 'S')
$icon = 'folder';
elseif (!empty($arCatalogProduct['IS_GROUP']))
$icon = 'f4';
$balance = isset($arCatalogProduct["STORE_AMOUNT"]) ? (float)$arCatalogProduct["QUANTITY"] . " / " . (float)$arCatalogProduct["STORE_AMOUNT"] : (float)$arCatalogProduct["QUANTITY"];
$row->AddField("BALANCE", $arItems['TYPE'] != 'S' ? $balance : '');
if ($arItems['TYPE'] != 'S')
{
$ratio = (isset($arCatalogProduct['MEASURE_RATIO']) ? $arCatalogProduct['MEASURE_RATIO'] : 1);
$measure = (isset($arCatalogProduct['MEASURE']['SYMBOL_RUS']) ? ' '.$arCatalogProduct['MEASURE']['SYMBOL_RUS'] : '');
$arParams = array(
'id' => $arItems["ID"],
'type' => $arCatalogProduct["TYPE"],
'name' => htmlspecialcharsbx($arItems['NAME']),
'full_quantity' => $arCatalogProduct['QUANTITY'],
'measureRatio' => (isset($arCatalogProduct['MEASURE_RATIO']) ? $arCatalogProduct['MEASURE_RATIO'] : 1),
'measure' => (isset($arCatalogProduct['MEASURE']['~SYMBOL_RUS']) ? htmlspecialcharsbx($arCatalogProduct['MEASURE']['~SYMBOL_RUS']) : ''),
'quantity' => $arCatalogProduct['DEFAULT_QUANTITY']
);
$row->AddField("QUANTITY", '<span style="white-space: nowrap;"><input style="text-align: center;" type="text" id="'.$tableId.'_qty_'.$arItems["ID"].'" value="'.$arCatalogProduct['DEFAULT_QUANTITY'].'" size="4" />'.$measure.'</span>');
unset($measure, $ratio);
$arActions[] = array(
"TEXT" => GetMessage("SPS_SELECT"),
"DEFAULT" => "Y",
"ACTION" => $tableId . '_helper.SelEl(' . CUtil::PhpToJSObject($arParams) . ', this);'
);
$row->AddField("ACTION", '<a class="select-sku">' . GetMessage('SPS_SELECT') . '</a>');
}
else
{
$arActions[] = array(
"TEXT" => GetMessage("SPS_SELECT"),
"DEFAULT" => "Y",
"ACTION" => $tableId.'_helper.onSectionClick('.$arItems["ID"].');'
);
}
if (!empty($arResult['PRICES']))
{
foreach ($arResult['PRICES'] as $price)
$row->AddViewField("PRICE".$price['ID'], CCurrencyLang::CurrencyFormat($arItems['PRICES'][$price['ID']]['PRICE'], $arItems['PRICES'][$price['ID']]['CURRENCY'], true));
unset($price);
}
}
if (!empty($arItems['PROPERTIES']))
{
foreach ($arSelectedProps as $property)
{
if (empty($arItems['PROPERTIES'][$property['ID']]))
continue;
$separator = ($property['PROPERTY_TYPE'] == Iblock\PropertyTable::TYPE_FILE ? '' : '/ ');
$row->AddViewField('PROPERTY_'.$property['ID'], implode($separator, $arItems['PROPERTIES'][$property['ID']]));
unset($separator);
}
unset($property);
}
$row->AddViewField('NAME', '<a class="adm-list-table-link"><span class="bx-s-iconset ' . $icon . '"></span>' . htmlspecialcharsEx($arItems['NAME']) . '</a>');
$row->AddActions($arActions);
}
$lAdmin->BeginEpilogContent();
?>
<script type="text/javascript">
BX.ready(function(){
<?
if (!empty($arSku))
{
?>
var skuIds = <?=\CUtil::PhpToJSObject($arSku); ?>,
i,
skuRow;
for (i = 0; i < skuIds.length; i++)
{
skuRow = BX('<?=$tableId?>_sku-' + skuIds[i]).parentNode.parentNode;
if (BX.type.isElementNode(skuRow))
{
BX.addClass(skuRow, 'is-sku-row');
BX.hide(skuRow);
}
skuRow = null;
}
skuIds = [];
<?
}
?>
// double click patch
var rows = BX.findChildren(BX('<?=$tableId?>'), {className: 'adm-list-table-row'}, true);
if (rows) {
for (i = 0; i < rows.length; ++i) {
var isExpandable = BX.findChildren(rows[i], {className: 'expand-sku'}, true);
if (isExpandable.length !== 0)
{
rows[i].onclick = function () {
this.ondblclick();
};
}
var hasActionButton = BX.findChildren(rows[i], {className: 'select-sku'}, true);
if (hasActionButton.length > 0)
{
hasActionButton[0].onclick = rows[i].ondblclick;
}
}
}
if (typeof <?=$tableId?>_helper !== 'undefined')
{
<?=$tableId?>_helper.setBreadcrumbs(<?=CUtil::PhpToJSObject($arResult['BREADCRUMBS'])?>);
<?if (!empty($_REQUEST['set_filter']) && $_REQUEST['set_filter'] == 'Y'):?>
<?=$tableId?>_helper.setIgnoreFilter(false);
<?elseif (!empty($_REQUEST['del_filter']) && $_REQUEST['del_filter'] == 'Y'):?>
<?=$tableId?>_helper.setIgnoreFilter(true);
<?endif?>
}
BX('form_<?=$tableId?>').style.overflow = 'auto';
});
</script>
<?
$lAdmin->EndEpilogContent();
$lAdmin->AddAdminContextMenu(array(), false);
$lAdmin->CheckListMode();
?>
<!-- START HTML -->
<? if (!$arResult['RELOAD']): ?>
<div id="<?= $tableId ?>_reload_container" class="catalog-product-search-dialog">
<? if ($arResult['IS_EXTERNALCONTEXT']):
$GLOBALS['APPLICATION']->SetAdditionalCSS('/bitrix/panel/main/admin.css');
endif;
endif ?>
<div class="adm-s-search-sidebar-container-left " style="width: 20%;padding-bottom: 28px">
<table class="adm-main-wrap" style="min-width:10px;">
<tr><td class="adm-left-side-wrap" style="background: none;" id="<?= $tableId ?>_resizable">
<div class="adm-left-side" style="width:300px;">
<div class="adm-submenu" id="adm-submenu">
<div class="adm-submenu-items-wrap" id="adm-submenu-favorites">
<div class="adm-submenu-items-stretch-wrap">
<table class="adm-submenu-items-stretch">
<tr><td class="adm-submenu-items-stretch-cell">
<div class="adm-submenu-items-block" id="<?= $tableId ?>_catalog_tree_wrap">
<div class="adm-sub-submenu-block adm-sub-submenu-open root-submenu <?= empty($arResult["SECTION_ID"]) ? 'adm-submenu-item-active' : '' ?>">
<div class="adm-submenu-item-name" id="<?= $tableId ?>_section_0">
<a
href="#" class="adm-submenu-item-name-link product-search-top-item"
onclick="return <?= $tableId ?>_helper.onSectionClick('0')"><?
if (count($arResult['IBLOCKS']) > 1)
{
?><span class="adm-s-arrow-cont" title="<?= GetMessage('SPS_CHOOSE_CATALOG') ?>" id="<?= $tableId ?>_iblock_menu_opener"></span><?
}
?><span class="adm-submenu-item-link-icon icon-default fileman_menu_icon"></span>
<span class="adm-submenu-item-name-link-text" title="<?= htmlspecialcharsbx($arResult['IBLOCKS'][$arResult['IBLOCK_ID']]['NAME']); ?>">
<?=htmlspecialcharsbx($arResult['IBLOCKS'][$arResult['IBLOCK_ID']]['NAME']); ?>
</span>
</a>
</div>
<div class="adm-sub-submenu-block-children"><?= renderTree($arResult['SECTIONS'], 1, $arResult['TABLE_ID']) ?></div>
</div>
</div>
</td></tr>
</table>
</div>
</div>
</div>
</div>
</td>
<td class="adm-workarea-wrap"></td></tr>
</table>
</div>
<div class="adm-s-search-content-container-right" style="width: 80%;">
<div class="adm-s-content">
<div class="adm-s-search-container">
<div class="adm-s-search-box">
<table>
<tr>
<td class="adm-s-search-tag-cell"><span class="adm-s-search-tag"
id="<?= $tableId ?>_section_label"
style="<?= $arResult['SECTION_LABEL'] ? '' : 'display:none' ?>"><?=htmlspecialcharsbx($arResult['SECTION_LABEL']); ?>
<span class="adm-s-search-tag-del" onclick="return <?= $tableId ?>_helper.onSectionClick('0')"></span></span>
</td>
<td class="adm-s-search-input-cell"><input type="text" value="<?= htmlspecialcharsbx($arFilter['QUERY']) ?>" id="<?= $tableId ?>_query" onkeyup="<?= $tableId ?>_helper.onSearch(this.value)">
</td>
</tr>
</table>
</div>
<div class="adm-s-search-control-box">
<input class="adm-s-search-submit" type="submit" value="" onclick="<?= $tableId ?>_helper.search();">
<span class="adm-s-search-box-separator" id="<?= $tableId ?>_query_clear_separator" style="<?= $arFilter['QUERY'] ? '' : 'display:none' ?>"></span>
<input class="adm-s-search-reset" id="<?= $tableId ?>_query_clear" type="reset" value="" style="<?= $arFilter['QUERY'] ? '' : 'display:none' ?>" onclick="return <?= $tableId ?>_helper.clearQuery()">
</div>
</div>
<div class="adm-s-search-query-settings-container">
<div class="adm-s-search-query-settings">
<input type="checkbox" value="Y" <?=($arFilter['USE_SUBSTRING_QUERY'] == 'Y' ? ' checked="checked"' : '');?>name="USE_SUBSTRING_QUERY" id="<?= $tableId ?>_query_substring" onclick="return <?= $tableId ?>_helper.checkSubstring()"> <?=GetMessage('BX_CATALOG_CPS_TPL_MESS_USE_SUBSTRING_QUERY'); ?>
</div>
</div>
<form name="<?= $tableId ?>_find_form" method="GET" action="<? echo $APPLICATION->GetCurPage() ?>?" accept-charset="<? echo LANG_CHARSET; ?>" id="<?= $tableId ?>_form">
<input type="hidden" name="mode" value="list">
<input type="hidden" name="SECTION_ID" value="<?= (int)$arResult['SECTION_ID'] ?>" id="<?= $tableId ?>_section_id">
<input type="hidden" name="QUERY" value="<?= htmlspecialcharsbx($arFilter['QUERY']) ?>" id="<?= $tableId ?>_query_value">
<input type="hidden" name="USE_SUBSTRING_QUERY" value="<?=htmlspecialcharsbx($arFilter['USE_SUBSTRING_QUERY']) ?>" id="<?= $tableId ?>_query_substring_value">
<input type="hidden" name="func_name" value="<? echo htmlspecialcharsbx($arResult['JS_CALLBACK']) ?>">
<input type="hidden" name="event" value="<? echo htmlspecialcharsbx($arResult['JS_EVENT']) ?>">
<input type="hidden" name="lang" value="<? echo LANGUAGE_ID ?>">
<input type="hidden" name="LID" value="<?= $arResult['LID'] ?>">
<input type="hidden" name="caller" value="<?= $arResult['CALLER'] ?>">
<input type="hidden" name="IBLOCK_ID" value="<?= (int)$arResult['IBLOCK_ID'] ?>" id="<?= $tableId ?>_iblock">
<input type="hidden" name="subscribe" value="<?= $arResult['SUBSCRIPTION']? 'Y' : 'N' ?>">
<input type="hidden" name="allow_select_parent" value="<?= $arResult['ALLOW_SELECT_PARENT'] ?>">
<?
$oFilter = new CAdminFilter(
$arResult['TABLE_ID'] .'_iblock_'.(int)$arResult['IBLOCK_ID']. "_filter",
$arResult['FILTER_LABELS']
);
$oFilter->SetDefaultRows("find_code");
$oFilter->Begin();
?>
<tr>
<td><?= GetMessage("SPS_CODE") ?>:</td>
<td>
<input type="text" name="filter_code" size="50" value="<? echo htmlspecialcharsbx($_REQUEST["filter_code"]) ?>">
</td>
</tr>
<tr>
<td><?= GetMessage("SPS_TIMESTAMP") ?>:</td>
<td><? echo CalendarPeriod("filter_timestamp_from", htmlspecialcharsbx($_REQUEST['filter_timestamp_from']), "filter_timestamp_to", htmlspecialcharsbx($_REQUEST['filter_timestamp_to']), "form1") ?></td>
</tr>
<tr>
<td><?= GetMessage("SPS_ACTIVE") ?>:</td>
<td>
<select name="filter_active">
<option value="*"><?= htmlspecialcharsbx("(" . GetMessage("SPS_ANY") . ")") ?></option>
<option
value="Y"<? if ($_REQUEST['filter_active'] == "Y" || empty($_REQUEST['filter_active'])) echo " selected" ?>><?= htmlspecialcharsbx(GetMessage("SPS_YES")) ?></option>
<option
value="N"<? if ($_REQUEST['filter_active'] == "N") echo " selected" ?>><?= htmlspecialcharsbx(GetMessage("SPS_NO")) ?></option>
</select>
</td>
</tr>
<tr>
<td>ID (<?= GetMessage("SPS_ID_FROM_TO") ?>):</td>
<td>
<input type="text" name="filter_id_start" size="10" value="<?echo htmlspecialcharsbx($_REQUEST['filter_id_start'])?>">
...
<input type="text" name="filter_id_end" size="10" value="<?echo htmlspecialcharsbx($_REQUEST['filter_id_end'])?>">
</td>
</tr>
<tr>
<td><?= GetMessage("SPS_XML_ID") ?>:</td>
<td>
<input type="text" name="filter_xml_id" size="50" value="<?echo htmlspecialcharsbx($_REQUEST['filter_xml_id'])?>">
</td>
</tr>
<?foreach ($arProps as $arProp):
if ($arProp["FILTRABLE"] == "Y" && $arProp["PROPERTY_TYPE"] != "F")
{
?>
<tr>
<td><?= htmlspecialcharsbx($arProp["NAME"]) ?>:</td>
<td>
<?if (array_key_exists("GetAdminFilterHTML", $arProp["PROPERTY_USER_TYPE"])):
echo "<script type='text/javascript'>var arClearHiddenFields = [];</script>";
echo call_user_func_array($arProp["PROPERTY_USER_TYPE"]["GetAdminFilterHTML"], array(
$arProp,
array("VALUE" => 'filter_el_property_'.$arProp["ID"]),
));
elseif ($arProp["PROPERTY_TYPE"] == 'S'):?>
<input type="text" name="filter_el_property_<?= $arProp["ID"] ?>" value="<? echo htmlspecialcharsbx($_REQUEST["filter_el_property_" . $arProp["ID"]]) ?>" size="30"> <?= ShowFilterLogicHelp() ?>
<?
elseif ($arProp["PROPERTY_TYPE"] == 'N' || $arProp["PROPERTY_TYPE"] == 'E'): ?>
<input type="text" name="filter_el_property_<?= $arProp["ID"] ?>" value="<? echo htmlspecialcharsbx($_REQUEST["filter_el_property_" . $arProp["ID"]]) ?>" size="30">
<?
elseif ($arProp["PROPERTY_TYPE"] == 'L'): ?>
<select name="filter_el_property_<?= $arProp["ID"] ?>">
<option value=""><? echo GetMessage("SPS_VALUE_ANY") ?></option>
<option value="NOT_REF"><? echo GetMessage("SPS_A_PROP_NOT_SET") ?></option><?
$dbrPEnum = CIBlockPropertyEnum::GetList(Array("SORT" => "ASC", "VALUE" => "ASC"), Array("PROPERTY_ID" => $arProp["ID"]));
while ($arPEnum = $dbrPEnum->GetNext()):
?>
<option
value="<?= $arPEnum["ID"] ?>"<? if ($_REQUEST["filter_el_property_" . $arProp["ID"]] == $arPEnum["ID"]) echo " selected" ?>><?= $arPEnum["VALUE"] ?></option>
<?
endwhile;
?></select>
<?
elseif ($arProp["PROPERTY_TYPE"] == 'G'):
echo _ShowGroupPropertyFieldList('filter_el_property_' . $arProp["ID"], $arProp, $_REQUEST['filter_el_property_' . $arProp["ID"]]);
endif;
?>
</td>
</tr>
<?
}
endforeach;
foreach ($arSKUProps as $arProp)
{
if ($arProp["FILTRABLE"] == "Y" && $arProp["PROPERTY_TYPE"] != "F" && $arResult['SKU_CATALOG']['SKU_PROPERTY_ID'] != $arProp['ID'])
{
?>
<tr>
<td><? echo htmlspecialcharsbx($arProp["NAME"]) ?> (<?=GetMessage("SPS_OFFER")?>):</td>
<td>
<?if (array_key_exists("GetAdminFilterHTML", $arProp["PROPERTY_USER_TYPE"])):
echo "<script type='text/javascript'>var arClearHiddenFields = [];</script>";
echo call_user_func_array($arProp["PROPERTY_USER_TYPE"]["GetAdminFilterHTML"], array(
$arProp,
array("VALUE" => "filter_sub_el_property_".$arProp["ID"]),
));
elseif ($arProp["PROPERTY_TYPE"] == 'S'):?>
<input type="text" name="filter_sub_el_property_<?= $arProp["ID"] ?>" value="<? echo htmlspecialcharsbx($_REQUEST["filter_sub_el_property_" . $arProp["ID"]]) ?>" size="30"> <?= ShowFilterLogicHelp() ?>
<?
elseif ($arProp["PROPERTY_TYPE"] == 'N' || $arProp["PROPERTY_TYPE"] == 'E'): ?>
<input type="text" name="filter_sub_el_property_<?= $arProp["ID"] ?>" value="<? echo htmlspecialcharsbx($_REQUEST["filter_sub_el_property_" . $arProp["ID"]]) ?>" size="30">
<?
elseif ($arProp["PROPERTY_TYPE"] == 'L'): ?>
<select name="filter_sub_el_property_<?= $arProp["ID"] ?>">
<option value=""><? echo GetMessage("SPS_VALUE_ANY") ?></option>
<option value="NOT_REF"><? echo GetMessage("SPS_A_PROP_NOT_SET") ?></option><?
$dbrPEnum = CIBlockPropertyEnum::GetList(Array("SORT" => "ASC", "VALUE" => "ASC"), Array("PROPERTY_ID" => $arProp["ID"]));
while ($arPEnum = $dbrPEnum->GetNext()):
?>
<option
value="<?= $arPEnum["ID"] ?>"<? if ($_REQUEST["filter_sub_el_property_" . $arProp["ID"]] == $arPEnum["ID"]) echo " selected" ?>><?= $arPEnum["VALUE"] ?></option>
<?
endwhile;
?></select>
<?
elseif ($arProp["PROPERTY_TYPE"] == 'G'):
echo _ShowGroupPropertyFieldList('filter_sub_el_property_' . $arProp["ID"], $arProp, $_REQUEST['filter_sub_el_property_' . $arProp["ID"]]);
endif;
?>
</td>
</tr>
<?
}
}
$oFilter->Buttons(
array(
"table_id" => $arResult['TABLE_ID'],
"url" => $APPLICATION->GetCurPage(),
"form" => $tableId."_find_form"
)
);
$oFilter->End();
?>
</form>
<div class="adm-navchain" style="vertical-align: middle; margin-left: 0;" id="<?= $tableId ?>_breadcrumbs">
</div>
<?
$lAdmin->DisplayList();
?>
</div>
</div>
<? if (!$arResult['RELOAD']): ?>
</div>
<script type="text/javascript">
<?=$tableId?>_helper = new BX.Catalog.ProductSearchDialog({
tableId: '<?=$tableId?>',<?
if ($arResult['JS_CALLBACK'] != '' || $arResult['JS_EVENT'] != '')
{
if ($arResult['JS_CALLBACK'] != '')
{
?>
callback: '<?= $arResult['JS_CALLBACK'] ?>',<?
}
if ($arResult['JS_EVENT'] != '')
{
?>
event: '<?= $arResult['JS_EVENT'] ?>',<?
}
}
?>
callerName: '<?=CUtil::JSEscape($arResult['CALLER'])?>',
currentUri: '<?=CUtil::JSEscape($APPLICATION->GetCurPage())?>',
popup: BX.WindowManager.Get(),
iblockName: '<?=CUtil::JSEscape($arResult['IBLOCKS'][$arResult['IBLOCK_ID']]['NAME'])?>'
});
<?=$tableId?>_helper.setBreadcrumbs(<?=CUtil::PhpToJSObject($arResult['BREADCRUMBS'])?>);
BX('<?=$tableId?>_query').focus();
</script>
<? endif ?>
<script type="text/javascript">
<?
if (sizeof($arResult['IBLOCKS']) > 1):
$iblockMenu = array(array(
'HTML' => '<b>'.GetMessage('SPS_CHOOSE_CATALOG').':</b>',
'CLOSE_ON_CLICK' => false
), array('SEPARATOR' => true));
foreach ($arResult['IBLOCKS'] as $arIblock)
{
$iblockMenu[] = array(
'HTML' => '<span class="psd-catalog-menu-name" title="'.htmlspecialcharsbx($arIblock['NAME']).'">'.htmlspecialcharsEx($arIblock['NAME']).'</span><span class="psd-catalog-menu-lid" title="'.htmlspecialcharsbx($arIblock['SITE_NAME']).'">'.htmlspecialcharsbx($arIblock['SITE_NAME']).'</span>',
'ONCLICK' => $tableId.'_helper.onIblockChange('.(int)$arIblock['ID'].',\''.CUtil::JSEscape($arIblock['NAME']).'\')',
);
}
?>
new BX.COpener({
DIV: '<?=$tableId?>_iblock_menu_opener',
MENU: <?=CUtil::PhpToJSObject($iblockMenu)?>
});
<?endif?>
// override SaveSetting to fix URL
<?=$tableId?>.SaveSettings = function (el) {
var sCols = '', sBy = '', sOrder = '', sPageSize;
var oSelect = document.list_settings.selected_columns;
var n = oSelect.length;
for (var i = 0; i < n; i++)
sCols += (sCols != '' ? ',' : '') + oSelect[i].value;
oSelect = document.list_settings.order_field;
if (oSelect)
sBy = oSelect[oSelect.selectedIndex].value;
oSelect = document.list_settings.order_direction;
if (oSelect)
sOrder = oSelect[oSelect.selectedIndex].value;
oSelect = document.list_settings.nav_page_size;
sPageSize = oSelect[oSelect.selectedIndex].value;
var bCommon = (document.list_settings.set_default && document.list_settings.set_default.checked);
BX.userOptions.save('list', this.table_id, 'columns', sCols, bCommon);
BX.userOptions.save('list', this.table_id, 'by', sBy, bCommon);
BX.userOptions.save('list', this.table_id, 'order', sOrder, bCommon);
BX.userOptions.save('list', this.table_id, 'page_size', sPageSize, bCommon);
//>>>patch start
var url = <?=$tableId?>_helper.buildUrl();
//<<<patch end
BX.WindowManager.Get().showWait(el);
BX.userOptions.send(BX.delegate(function () {
this.GetAdminList(
url,
function () {
BX.WindowManager.Get().closeWait(el);
BX.WindowManager.Get().Close();
}
);
}, this));
};
<?=$tableId?>.ShowSettings = function(url)
{
(new BX.CDialog({
content_url: url,
resizable: false,
resize_id: '<?=$tableId?>_settings',
height: 475,
width: 560
})).Show();
};
<?=$tableId?>.DeleteSettings = function(bCommon)
{
BX.showWait();
//>>>patch start
var url = <?=$tableId?>_helper.buildUrl();
//<<<patch end
BX.userOptions.del('list', this.table_id, bCommon, BX.delegate(function(){
BX.closeWait();
this.GetAdminList(
url,
function(){BX.WindowManager.Get().Close();}
);
}, this));
};
</script>
<?
}