%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/mail.client.message.new/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/mail.client.message.new/templates/.default/template.php |
<?php use Bitrix\Main\Localization\Loc; if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); /** @var array $arParams */ /** @var array $arResult */ /** @global \CMain $APPLICATION */ /** @global \CUser $USER */ /** @var \CBitrixComponentTemplate $this */ /** @var string $templateName */ /** @var string $templateFile */ /** @var string $templateFolder */ /** @var string $componentPath */ /** @var \CMailClientMessageNewComponent $component */ $this->setViewTarget('pagetitle_icon'); ?> <span class="mail-msg-title-icon mail-msg-title-icon-outcome"></span> <span class="mail-msg-title-icon-placeholder "> </span> <? $this->endViewTarget(); $message = $arResult['MESSAGE']; $rcptList = array( 'users' => array(), 'emails' => $arResult['EMAILS'], 'mailContacts' => $arResult['LAST_RCPT'], 'crmemails' => $arResult['CRM_EMAILS'], 'companies' => array(), 'contacts' => array(), 'deals' => array(), 'leads' => array(), ); $rcptLast = array( 'users' => array(), 'emails' => array(), 'mailContacts' => array_combine(array_keys($arResult['LAST_RCPT']), array_keys($arResult['LAST_RCPT'])), 'crmemails' => array(), 'companies' => array(), 'contacts' => array(), 'deals' => array(), 'leads' => array(), ); $prepareReply = function($__field) use (&$message, &$rcptList, &$rcptLast) { $result = array(); foreach ((array) $__field as $item) { if (!empty($item['email'])) { if ($message['__email'] == $item['email']) { continue; } $id = 'U'.md5($item['email']); $type = 'users'; $rcptList['emails'][$id] = $rcptList[$type][$id] = array( 'id' => $id, 'entityId' => count($rcptList['emails'])+1, 'name' => $item['name'] ?: $item['email'], 'desc' => $item['email'], 'email' => $item['email'], 'isEmail' => 'Y', ); $rcptLast['emails'][$id] = $rcptLast[$type][$id] = $id; $result[$id] = $type; } } return $result; }; $rcptAllSelected = array(); $rcptSelected = $prepareReply($message['__is_outcome'] ? $message['__to'] : $message['__reply_to']); $rcptCcSelected = $prepareReply($message['__cc']); $messageHtml = trim($message['BODY_HTML']) ? $message['BODY_HTML'] : preg_replace('/(\s*(\r\n|\n|\r))+/', '<br>', htmlspecialcharsbx($message['BODY'])); $isCrmEnabled = ($arResult['CRM_ENABLE'] === 'Y'); ?> <div class="mail-msg-view-wrapper"> <div data-id="<?=intval($message['ID']) ?>" id="mail-msg-view-details-<?=intval($message['ID']) ?>"> <? $formId = 'mail_msg_new_form'; $actionUrl = '/bitrix/services/main/ajax.php?c=bitrix%3Amail.client&action=sendMessage&mode=ajax'; ?> <form action="<?= $actionUrl ?>" method="POST" id="<?= htmlspecialcharsbx($formId) ?>"> <?= bitrix_sessid_post() ?> <? if ('reply' == $message['__type'] && $message['__parent'] > 0): ?> <input type="hidden" name="data[IN_REPLY_TO]" value="<?= htmlspecialcharsbx($message['MSG_ID']) ?>"> <input type="hidden" name="data[MAILBOX_ID]" value="<?= $message['MAILBOX_ID'] ?>"> <? endif ?> <? $inlineFiles = array(); $quote = preg_replace_callback( '#(\?|&)__bxacid=(n?\d+)#i', function ($matches) use (&$inlineFiles) { $inlineFiles[] = $matches[2]; return $matches[0]; }, $messageHtml ); $quote = $messageHtml; $attachedFiles = array(); foreach ((array) $message['__files'] as $item) { if (preg_match('/^n\d+$/i', $item['id'])) { $attachedFiles[] = $item['id']; } } if ('reply' == $message['__type'] && $message['__parent'] > 0) { $attachedFiles = array_intersect($attachedFiles, $inlineFiles); } $selectorParams = array( //'pathToAjax' => '/bitrix/components/bitrix/crm.activity.editor/ajax.php?soc_net_log_dest=search_email_comms', 'extranetUser' => false, 'isCrmFeed' => $isCrmEnabled, 'CrmTypes' => array('CRMCONTACT', 'CRMCOMPANY', 'CRMLEAD'), 'useClientDatabase' => true, 'allowSearchEmailContacts' => true, 'allowAddUser' => true, 'allowAddCrmContact' => false, 'allowSearchEmailUsers' => true, 'allowSearchCrmEmailUsers' => $isCrmEnabled, 'allowUserSearch' => true, 'items' => $rcptList, 'itemsLast' => $rcptLast, 'emailDescMode' => true, 'searchOnlyWithEmail' => true, ); $APPLICATION->includeComponent( 'bitrix:main.mail.form', '', array( 'FORM_ID' => $formId, 'LAYOUT_ONLY' => true, 'SUBMIT_AJAX' => true, 'FOLD_QUOTE' => !empty($message['MSG_ID']), 'FOLD_FILES' => !empty($message['MSG_ID']), 'EDITOR_TOOLBAR' => true, 'USE_SIGNATURES' => true, 'FIELDS' => array( array( 'name' => 'data[from]', 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_FROM'), 'type' => 'from', 'value' => !empty($message['MAILBOX_EMAIL']) ? $message['MAILBOX_EMAIL'] : $message['__email'], 'isFormatted' => true, 'required' => true, ), array( 'type' => 'separator', ), array( 'name' => 'data[to]', 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_TO'), 'placeholder' => Loc::getMessage('MAIL_MESSAGE_NEW_ADD_RCPT'), 'type' => 'rcpt', //'value' => $rcptSelected, 'selector' => array_merge( $selectorParams, array('itemsSelected' => $rcptSelected) ), 'required' => true, ), array( 'name' => 'data[cc]', 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_CC'), 'placeholder' => Loc::getMessage('MAIL_MESSAGE_NEW_ADD_RCPT'), 'type' => 'rcpt', 'folded' => empty($rcptCcSelected), //'value' => $rcptCcSelected, 'selector' => array_merge( $selectorParams, array('itemsSelected' => $rcptCcSelected) ), ), array( 'name' => 'data[bcc]', 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_BCC'), 'placeholder' => Loc::getMessage('MAIL_MESSAGE_NEW_ADD_RCPT'), 'type' => 'rcpt', 'folded' => true, 'selector' => $selectorParams, ), array( 'name' => 'data[subject]', 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_SUBJECT'), 'placeholder' => Loc::getMessage('MAIL_MESSAGE_NEW_SUBJECT_PH'), 'value' => $message['SUBJECT'], ), array( 'name' => 'data[message]', 'type' => 'editor', 'value' => !empty($message['MSG_ID']) ? sprintf( '<br><br>%s, %s:<br><blockquote style="margin: 0 0 0 5px; padding: 5px 5px 5px 8px; border-left: 4px solid #e2e3e5; ">%s</blockquote>', formatDate( preg_replace('/[\/.,\s:][s]/', '', $GLOBALS['DB']->dateFormatToPhp(FORMAT_DATETIME)), $message['FIELD_DATE']->getTimestamp() + \CTimeZone::getOffset(), time() + \CTimeZone::getOffset() ), htmlspecialcharsbx(reset($message['__from'])['name'] ?: reset($message['__from'])['email']), $quote ) : '', ), array( 'name' => 'data[__diskfiles]', 'type' => 'files', 'value' => $attachedFiles, ), ), 'BUTTONS' => array( 'submit' => array( 'class' => 'ui-btn-primary', 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_SEND'), ), 'cancel' => array( 'title' => Loc::getMessage('MAIL_MESSAGE_NEW_CANCEL'), ), ), ) ); ?> </form> </div> </div> <script type="text/javascript"> BX.message({ MAIL_MESSAGE_AJAX_ERROR: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_AJAX_ERROR')) ?>', MAIL_MESSAGE_NEW_EMPTY_RCPT: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_NEW_EMPTY_RCPT')) ?>', MAIL_MESSAGE_NEW_UPLOADING: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_NEW_UPLOADING')) ?>', MAIL_MESSAGE_SEND_SUCCESS: '<?=\CUtil::jsEscape(Loc::getMessage('MAIL_MESSAGE_SEND_SUCCESS')) ?>' }); BX.ready(function () { BXMailMessageController.init({ messageId: <?=intval($message['ID']) ?>, type: 'edit' }); new BXMailMessage({ messageId: <?=intval($message['ID']) ?>, formId: '<?=\CUtil::jsEscape($formId) ?>' }); var mailForm = BXMainMailForm.getForm('<?=\CUtil::jsEscape($formId) ?>'); mailForm.init(); <? if($arResult['SELECTED_EMAIL_CODE'] && !empty($arResult['LAST_RCPT'][$arResult['SELECTED_EMAIL_CODE']])): ?> mailForm.getField('data[to]').setValue({'<?= CUtil::JSEscape($arResult['SELECTED_EMAIL_CODE']) ?>': 'mailContacts'}); <? endif;?> }); </script>