+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Пример изменения работы модуля

Внимание! Перед тем как начать модифицировать работу модуля (то есть модифицировать ядро системы) необходимо быть уверенным, что иными средствами стоящую перед вами задачу не решить. При первом же обновлении продукта все добавленные вами изменения затрутся, и вам придется заново вносить их.

Пример модификации модуля для версии 11.5. В более поздних версиях этот функционал работает по другому.

Решим задачу выгрузки контактов из корпоративного портала в Outlook 2003. Напомним, что в стандартной поставке «1С-Битрикс: Корпоративный портал» рассчитан на взаимодействие с Outlook 2007.

За формирование и подготовку данных для Outlook отвечает файл /bitrix/modules/intranet/classes/general/ws_contacts.php.

Есть две стандартные проблемы:

  • В Outlook 2003 не выгружаются аватарки - вследствие чего сразу же возникает ошибка.
  • Не для всех пользователей выгружается компания, к которой они принадлежат (поле в Outlook - Организация).

Решаем первую проблему с помощью функции __getRow($arRes, $listName, &$last_change). Комментируем строки установки атрибута картинки:

/*if ($this->bGetImages && $arRes['PERSONAL_PHOTO'] > 0)
      {
         $arImage = CIntranetUtils::InitImage($arRes['PERSONAL_PHOTO'], 100, 100);

         $obRow->setAttribute('ows_Attachments', ';#'.($APPLICATION->IsHTTPS() ? 'https://' : 'http://')
                              .$_SERVER['HTTP_HOST'].$arImage['CACHE']['src'].';#'.CIntranetUtils::makeGUID(md5($arRes['PERSONAL_PHOTO'])).',1;#');
         $obRow->setAttribute('ows_MetaInfo_AttachProps', '<File Photo="-1">'.$arImage['FILE']['FILE_NAME'].'</File>');
      }
      else
      {*/
         $obRow->setAttribute('ows_Attachments', 0);
      //}

Решаем вторую проблему с помощью функции GetListItemChangesSinceToken($listName, $viewFields = '', $query = '', $rowLimit = 0, $changeToken = ''). В цикле while ($arUser = $obUsers->NavNext()) комментируем все строки, начинающиеся с $arUser['WORK_COMPANY'] (т.е. где просто меняется значение этого атрибута).

Примечание: В функции GetList происходит формирование схемы аттрибутов. Если перед строчкой: return array('GetListResult' => $data); сделать вывод массива $data, то можно ознакомиться со схемой выгрузки.


Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA