- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/classes/general/lists.php
- Класс: CLists
- Вызов: CLists::rebuildSeachableContent
static function rebuildSeachableContent($iblockId, $limit = 100, $offset = 0)
{
$iblockId = intval($iblockId);
if(!$iblockId)
throw new ArgumentException(Loc::getMessage("LISTS_REQUIRED_PARAMETER",array("#parameter#" => "iblockId")));
$connection = Application::getInstance()->getConnection();
$iblockId = $connection->getSqlHelper()->forSql($iblockId);
$offset = intval($offset);
$limit = intval($limit);
$sqlString = "SELECT ID FROM b_iblock_element WHERE IBLOCK_ID=".$iblockId." ORDER BY ID ASC LIMIT ".$limit." OFFSET ".$offset;
$queryObject = $connection->query($sqlString);
$listElement = $queryObject->fetchAll();
$rebuildedElementCount = $queryObject->getSelectedRowsCount();
$listElementId = array();
foreach($listElement as $element)
$listElementId[] = $element['ID'];
$listElementValue = !empty($listElementId) ? self::getListElementValue($iblockId, $listElementId) : array();
$listSeachableContent = array();
foreach($listElementValue as $elementId => $elementData)
{
$listSeachableContent[$elementId] = self::createSeachableContent($elementData);
}
global $DB;
foreach($listSeachableContent as $elementId => $seachableContent)
{
$strUpdate = $DB->prepareUpdate("b_iblock_element", array("SEARCHABLE_CONTENT" => $seachableContent));
$strSql = "UPDATE b_iblock_element SET ".$strUpdate." WHERE ID=".intval($elementId);
$DB->query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
}
return $rebuildedElementCount;
}