Файловый менеджер - Редактировать - /var/www/axolotl/data/www/ekb.axolotls.ru/cf5ac/leadsearchcontentbuilder.php.tar
Назад
var/www/axolotl/data/www/axolotls.ru/www/bitrix/modules/crm/lib/search/leadsearchcontentbuilder.php 0000664 00000011121 14765644676 0030057 0 ustar 00 <?php namespace Bitrix\Crm\Search; use \Bitrix\Crm\LeadTable; use \Bitrix\Crm\Format; class LeadSearchContentBuilder extends SearchContentBuilder { public function getEntityTypeID() { return \CCrmOwnerType::Lead; } protected function getUserFieldEntityID() { return \CCrmLead::GetUserFieldEntityID(); } public function isFullTextSearchEnabled() { return LeadTable::getEntity()->fullTextIndexEnabled('SEARCH_CONTENT'); } protected function prepareEntityFields($entityID) { $dbResult = \CCrmLead::GetListEx( array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*'/*, 'UF_*'*/) ); $fields = $dbResult->Fetch(); return is_array($fields) ? $fields : null; } public function prepareEntityFilter(array $params) { $value = isset($params['SEARCH_CONTENT']) ? $params['SEARCH_CONTENT'] : ''; if(!is_string($value) || $value === '') { return array(); } $operation = $this->isFullTextSearchEnabled() ? '*' : '*%'; return array("{$operation}SEARCH_CONTENT" => SearchEnvironment::prepareToken($value)); } /** * Convert entity list filter values. * @param array $filter List Filter. * @return void */ public function convertEntityFilterValues(array &$filter) { $this->transferEntityFilterKeys(array('FIND', 'PHONE'), $filter); } /** * Prepare search map. * @param array $fields Entity Fields. * @param array|null $options Options. * @return SearchMap */ protected function prepareSearchMap(array $fields, array $options = null) { $map = new SearchMap(); $entityID = isset($fields['ID']) ? (int)$fields['ID'] : 0; if($entityID <= 0) { return $map; } $map->add($entityID); $title = isset($fields['TITLE']) ? $fields['TITLE'] : ''; if($title !== '') { $map->addText($title); $map->addText(SearchEnvironment::prepareSearchContent($title)); $customerNumber = $this->parseCustomerNumber($title, \CCrmLead::GetDefaultTitleTemplate()); if($customerNumber != $entityID) { $map->addTextFragments($customerNumber); } } $map->addField($fields, 'LAST_NAME'); $map->addField($fields, 'NAME'); $map->addField($fields, 'SECOND_NAME'); $map->addField($fields, 'COMPANY_TITLE'); $map->addField($fields, 'OPPORTUNITY'); $map->add( \CCrmCurrency::GetCurrencyName( isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : '' ) ); if(isset($fields['ASSIGNED_BY_ID'])) { $map->addUserByID($fields['ASSIGNED_BY_ID']); } $multiFields = $this->getEntityMultiFields($entityID); if(isset($multiFields[\CCrmFieldMulti::PHONE])) { foreach($multiFields[\CCrmFieldMulti::PHONE] as $multiField) { if(isset($multiField['VALUE'])) { $map->addPhone($multiField['VALUE']); } } } if(isset($multiFields[\CCrmFieldMulti::EMAIL])) { foreach($multiFields[\CCrmFieldMulti::EMAIL] as $multiField) { if(isset($multiField['VALUE'])) { $map->addEmail($multiField['VALUE']); } } } //region Status if(isset($fields['STATUS_ID'])) { $map->addStatus('STATUS', $fields['STATUS_ID']); } if(isset($fields['STATUS_DESCRIPTION'])) { $map->addText($fields['STATUS_DESCRIPTION'], 1024); } //endregion //region Source if(isset($fields['SOURCE_ID'])) { $map->addStatus('SOURCE', $fields['SOURCE_ID']); } if(isset($fields['SOURCE_DESCRIPTION'])) { $map->addText($fields['SOURCE_DESCRIPTION'], 1024); } //endregion //region Address $address = preg_replace('/[,.]/', '', Format\LeadAddressFormatter::format($fields)); if($address !== '') { $map->add($address); } //endregion if(isset($fields['COMMENTS'])) { $map->addHtml($fields['COMMENTS'], 1024); } if(isset($fields['IS_RETURN_CUSTOMER']) && $fields['IS_RETURN_CUSTOMER'] === 'Y') { $map->add(\CCrmLead::GetFieldCaption('IS_RETURN_CUSTOMER')); } //region UserFields foreach($this->getUserFields($entityID) as $userField) { $map->addUserField($userField); } //endregion return $map; } /** * Prepare required data for bulk build. * @param array $entityIDs Entity IDs. */ protected function prepareForBulkBuild(array $entityIDs) { $dbResult = \CCrmLead::GetListEx( array(), array('@ID' => $entityIDs, 'CHECK_PERMISSIONS' => 'N'), array('ASSIGNED_BY_ID'), false, array('ASSIGNED_BY_ID') ); $userIDs = array(); while($fields = $dbResult->Fetch()) { $userIDs[] = (int)$fields['ASSIGNED_BY_ID']; } if(!empty($userIDs)) { SearchMap::cacheUsers($userIDs); } } protected function save($entityID, SearchMap $map) { LeadTable::update($entityID, array('SEARCH_CONTENT' => $map->getString())); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.8 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка