public function hookAfterSaveItem($args) { $itemId = intval(@$args["record"]["id"]); if ($itemId) { $item = get_record_by_id('Item', $itemId); $itemReferencesSelect = SELF::_retrieveReferenceElements(); if ($itemReferencesSelect) { $elementIds = implode(",", $itemReferencesSelect); $db = get_db(); $sql = "SELECT text FROM {$db->ElementTexts}" . " WHERE record_id = {$itemId}" . " AND element_id in ({$elementIds})"; $refItemIds = $db->fetchAll($sql); if ($refItemIds) { $refItemTitles = array(); $firstLevelIds = array(); foreach ($refItemIds as $refItemId) { $firstLevelIds[] = $refItemId["text"]; $refItemTitles[] = SELF::getTitleForId($refItemId["text"]); } if ($firstLevelIds and SELF::$_withSecondLevel) { $firstLevelIdsVerb = implode(",", $firstLevelIds); $sql = "SELECT text FROM {$db->ElementTexts}" . " WHERE record_id in ({$firstLevelIdsVerb})" . " AND element_id in ({$elementIds})"; $refTwoItemIds = $db->fetchAll($sql); foreach ($refTwoItemIds as $refTwoItemId) { $refItemTitles[] = SELF::getTitleForId($refTwoItemId["text"]); } } if ($refItemTitles) { $enrichedSearchTexts = implode(" ", $refItemTitles); SELF::myAddSearchText($item, $enrichedSearchTexts); } } // if ($refItemIds) } // if ($itemReferencesSelect) } // if ($itemId) }