...Человеческий поиск в разработке...
- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/replica/taskhandler.php
- Класс: BitrixTasksReplicaTaskHandler
- Вызов: TaskHandler::afterInsertTrigger
public function afterInsertTrigger(array $newRecord) { global $CACHE_MANAGER; $newRecord['ACCOMPLICES'] = array(); $newRecord['AUDITORS'] = array(); $list = BitrixTasksInternalsTaskMemberTable::getList(array( "filter" => array( "=TASK_ID" => $newRecord["ID"], ), )); while ($item = $list->fetch()) { if ($item['TYPE'] == 'A') $newRecord['ACCOMPLICES'][] = $item['USER_ID']; elseif ($item['TYPE'] == 'U') $newRecord['AUDITORS'][] = $item['USER_ID']; } CounterService::addEvent( EventDictionary::EVENT_AFTER_TASK_ADD, $newRecord ); CTaskNotifications::sendAddMessage( array_merge($newRecord, array('CHANGED_BY' => $newRecord['CREATED_BY'])), array('SPAWNED_BY_AGENT' => true) ); //CTaskSync::AddItem($arFields); // MS Exchange CTasks::Index($newRecord, $newRecord["TAGS"]); SearchIndex::setTaskSearchIndex($newRecord['ID'], $newRecord); $arParticipants = array_unique(array_merge( array($newRecord["CREATED_BY"], $newRecord["RESPONSIBLE_ID"]), $newRecord["ACCOMPLICES"], $newRecord["AUDITORS"] )); foreach($arParticipants as $userId) { $CACHE_MANAGER->ClearByTag("tasks_user_".$userId); } // Emit pull event try { $eventGUID = sha1(uniqid('AUTOGUID', true)); $arPullRecipients = array(); foreach($arParticipants as $userId) $arPullRecipients[] = (int) $userId; $arPullData = array( 'TASK_ID' => (int) $newRecord["ID"], 'AFTER' => array( 'GROUP_ID' => 0 ), 'TS' => time(), 'event_GUID' => $eventGUID ); CTasks::EmitPullWithTagPrefix( $arPullRecipients, 'TASKS_GENERAL_', 'task_add', $arPullData ); CTasks::EmitPullWithTag( $arPullRecipients, 'TASKS_TASK_' . (int) $newRecord["ID"], 'task_add', $arPullData ); } catch (Exception $e) { } }