AuthForm(GetMessage("ACCESS_DENIED")); $max_execution_time = (isset($_REQUEST['max_execution_time']) ? (int)$_REQUEST['max_execution_time'] : 0); if ($max_execution_time <= 0) $max_execution_time = 20; $res = false; $iblockDropDown = array(); $iblockFilter = array('=PROPERTY_INDEX' => 'I'); if (Loader::includeModule('catalog')) { $OfferIblocks = array(); $offersIterator = \Bitrix\Catalog\CatalogIblockTable::getList(array( 'select' => array('IBLOCK_ID'), 'filter' => array('!PRODUCT_IBLOCK_ID' => 0) )); while ($offer = $offersIterator->fetch()) { $OfferIblocks[] = (int)$offer['IBLOCK_ID']; } if (!empty($OfferIblocks)) { unset($offer); $iblockFilter['!ID'] = $OfferIblocks; } unset($offersIterator, $OfferIblocks); } $iblockList = \Bitrix\Iblock\IblockTable::getList(array( 'select' => array('ID', 'NAME', 'ACTIVE'), 'filter' => $iblockFilter, 'order' => array('ID' => 'asc', 'NAME' => 'asc'), )); while ($iblockInfo = $iblockList->fetch()) { $iblockDropDown[$iblockInfo['ID']] = '['.$iblockInfo['ID'].'] '.$iblockInfo['NAME'].($iblockInfo['ACTIVE'] == 'N' ? ' ('.GetMessage('IBLOCK_REINDEX_DEACTIVE').')' : ''); } unset($iblockInfo, $iblockList); if($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST["Reindex"]=="Y") { CUtil::JSPostUnescape(); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php"); if (empty($iblockDropDown)) { $message = new CAdminMessage(array( "MESSAGE" => GetMessage("IBLOCK_REINDEX_COMPLETE"), "DETAILS" => GetMessage("IBLOCK_REINDEX_TOTAL_COMPLETE"), "HTML" => true, "TYPE" => "OK", )); echo $message->Show(); } else { if (!isset($iblockDropDown[$IBLOCK_ID])) $IBLOCK_ID = key($iblockDropDown); $index = \Bitrix\Iblock\PropertyIndex\Manager::createIndexer($IBLOCK_ID); if (!empty($_POST["NS"]) && is_array($_POST["NS"])) { $NS = $_POST["NS"]; } else { $NS = array(); } if (!isset($NS[$IBLOCK_ID])) { $NS[$IBLOCK_ID] = array( "CNT" => 0, "LAST_ID" => 0, ); $index->startIndex(); $NS[$IBLOCK_ID]["TOTAL"] = $index->estimateElementCount(); } $index->setLastElementId($NS[$IBLOCK_ID]["LAST_ID"]); $res = $index->continueIndex($max_execution_time); if ($res > 0) { $NS[$IBLOCK_ID]["CNT"] += $res; $NS[$IBLOCK_ID]["LAST_ID"] = $index->getLastElementId(); $message = new CAdminMessage(array( "MESSAGE" => GetMessage("IBLOCK_REINDEX_IN_PROGRESS"), "DETAILS" => GetMessage("IBLOCK_REINDEX_TOTAL") . " " . $NS[$IBLOCK_ID]["CNT"] . "
#PROGRESS_BAR#", "HTML" => true, "TYPE" => "PROGRESS", "PROGRESS_TOTAL" => $NS[$IBLOCK_ID]["TOTAL"], "PROGRESS_VALUE" => $NS[$IBLOCK_ID]["CNT"], )); echo $message->Show(); ?> endIndex(); \Bitrix\Iblock\PropertyIndex\Manager::checkAdminNotification(); CBitrixComponent::clearComponentCache("bitrix:catalog.smart.filter"); CIBlock::clearIblockTagCache($IBLOCK_ID); unset($iblockDropDown[$IBLOCK_ID]); if (empty($iblockDropDown) || $NS['iblock'] > 0) $mess = GetMessage("IBLOCK_REINDEX_TOTAL") . " " . $NS[$IBLOCK_ID]["CNT"] . ""; else $mess = GetMessage("IBLOCK_REINDEX_TOTAL") . " " . $NS[$IBLOCK_ID]["CNT"] . ""; $message = new CAdminMessage(array( "MESSAGE" => GetMessage("IBLOCK_REINDEX_COMPLETE"), "DETAILS" => $mess, "HTML" => true, "TYPE" => "OK", )); echo $message->Show(); ?> SetTitle(GetMessage("IBLOCK_REINDEX_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $message = new CAdminMessage(array( "DETAILS" => GetMessage("IBLOCK_REINDEX_TOTAL_COMPLETE"), "HTML" => true, "TYPE" => "OK", )); echo $message->Show(); $aMenu = array( array( "TEXT" => GetMessage("IBLOCK_BACK_TO_ADMIN"), "LINK" => '/bitrix/admin/iblock_reindex_admin.php?lang='.LANGUAGE_ID, "ICON" => "btn_list", ) ); $context = new CAdminContextMenu($aMenu); $context->Show(); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); } else { $APPLICATION->SetTitle(GetMessage("IBLOCK_REINDEX_TITLE")); $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("IBLOCK_REINDEX_TAB"), "ICON" => "main_user_edit", "TITLE" => GetMessage("IBLOCK_REINDEX_TAB_TITLE"), ), ); $tabControl = new CAdminTabControl("tabControl", $aTabs, true, true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?>
GetMessage("IBLOCK_BACK_TO_ADMIN"), "LINK" => '/bitrix/admin/iblock_reindex_admin.php?lang='.LANGUAGE_ID, "ICON" => "btn_list", ) ); $context = new CAdminContextMenu($aMenu); $context->Show(); ?>
Begin(); $tabControl->BeginNextTab(); ?> Buttons(); ?> " OnClick="StartReindex();" class="adm-btn-save">