• Модуль: 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; }