} } } elseif ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['delete'])) { if (CCrmMailTemplate::Exists($elementID) && !CCrmMailTemplate::Delete($elementID)) { $errors = CCrmMailTemplate::GetErrorMessages(); if (empty($errors)) { $errors[] = GetMessage('CRM_MAIL_TEMPLATE_DELETE_UNKNOWN_ERROR'); } ShowError(implode("\n", $errors)); return; } LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_MAIL_TEMPLATE_LIST'])); } } $arResult['ELEMENT_ID'] = $elementID; $arResult['ELEMENT'] = $element; $isEditMode = $elementID > 0; $arResult['FORM_ID'] = $arResult['GRID_ID'] = 'CRM_MAIL_TEMPLATE_EDIT'; $arResult['BACK_URL'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_MAIL_TEMPLATE_LIST'], array()); $arResult['FIELDS']['tab_1'][] = array('ID' => 'TITLE', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_TITLE'), 'VALUE' => isset($element['TITLE']) ? $element['TITLE'] : '', 'REQUIRED' => true); $arResult['FIELDS']['tab_1'][] = array('ID' => 'SORT', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_SORT'), 'VALUE' => isset($element['SORT']) ? intval($element['SORT']) : 100); if (CCrmPerms::IsAdmin()) { $arResult['FIELDS']['tab_1'][] = array('ID' => 'SCOPE', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_SCOPE'), 'VALUE' => isset($element['SCOPE']) ? $element['SCOPE'] : CCrmMailTemplateScope::Personal, 'ALL_VALUES' => CCrmMailTemplateScope::GetAllDescriptions()); } $arResult['FIELDS']['tab_1'][] = array('ID' => 'IS_ACTIVE', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_IS_ACTIVE'), 'VALUE' => isset($element['IS_ACTIVE']) && $element['IS_ACTIVE'] === 'Y' ? 'Y' : 'N'); $arResult['FIELDS']['tab_1'][] = array('ID' => 'EMAIL_FROM', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_EMAIL_FROM'), 'VALUE' => isset($element['EMAIL_FROM']) ? $element['EMAIL_FROM'] : ''); $arResult['FIELDS']['tab_1'][] = array('ID' => 'SUBJECT', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_SUBJECT'), 'VALUE' => isset($element['SUBJECT']) ? $element['SUBJECT'] : ''); $ownerTypes = CCrmOwnerType::GetDescriptions(array(CCrmOwnerType::Lead, CCrmOwnerType::Deal, CCrmOwnerType::Contact, CCrmOwnerType::Company)); $arResult['FIELDS']['tab_1'][] = array('ID' => 'ENTITY_TYPE_ID', 'NAME' => GetMessage('CRM_MAIL_ENTITY_TYPE'), 'VALUE' => isset($element['ENTITY_TYPE_ID']) ? $element['ENTITY_TYPE_ID'] : CCrmOwnerType::Lead, 'ALL_VALUES' => $ownerTypes, 'REQUIRED' => true); $arResult['FIELDS']['tab_1'][] = array('ID' => 'BODY', 'NAME' => GetMessage('CRM_MAIL_TEMPLATE_BODY'), 'VALUE' => isset($element['BODY']) ? $element['BODY'] : ''); $this->IncludeComponentTemplate();
} } $gridOptions = new CCrmGridOptions($arResult['GRID_ID']); $gridSorting = $gridOptions->GetSorting(array('sort' => array('SORT' => 'asc'), 'vars' => array('by' => 'by', 'order' => 'order'))); $sort = $arResult['SORT'] = $gridSorting['sort']; $arResult['SORT_VARS'] = $gridSorting['vars']; $items = array(); $dbResult = CAllCrmMailTemplate::GetList($sort, array('LOGIC' => 'OR', '=OWNER_ID' => $userID, 'SCOPE' => CCrmMailTemplateScope::Common)); $count = 0; while ($fields = $dbResult->GetNext()) { $ID = intval($fields['~ID']); $fields['~OWNER_FORMATTED_NAME'] = CUser::FormatName($arParams['NAME_TEMPLATE'], array('LOGIN' => $fields['~OWNER_LOGIN'], 'NAME' => $fields['~OWNER_NAME'], 'SECOND_NAME' => $fields['~OWNER_SECOND_NAME'], 'LAST_NAME' => $fields['~OWNER_LAST_NAME']), true, false); $fields['OWNER_FORMATTED_NAME'] = htmlspecialcharsbx($fields['~OWNER_FORMATTED_NAME']); $fields['~ENTITY_TYPE_NAME'] = isset($fields['~ENTITY_TYPE_ID']) ? CCrmOwnerType::GetDescription($fields['~ENTITY_TYPE_ID']) : ''; $fields['ENTITY_TYPE_NAME'] = htmlspecialcharsbx($fields['~ENTITY_TYPE_NAME']); $fields['~SCOPE_NAME'] = isset($fields['~SCOPE']) ? CCrmMailTemplateScope::GetDescription($fields['~SCOPE']) : ''; $fields['SCOPE_NAME'] = htmlspecialcharsbx($fields['~SCOPE_NAME']); $fields['CAN_EDIT'] = $fields['CAN_DELETE'] = $userID === intval($fields['~OWNER_ID']); $fields['PATH_TO_EDIT'] = $fields['PATH_TO_DELETE'] = ''; if ($fields['CAN_EDIT']) { $fields['PATH_TO_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_MAIL_TEMPLATE_EDIT'], array('element_id' => $ID)); } if ($fields['CAN_DELETE']) { $fields['PATH_TO_DELETE'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_MAIL_TEMPLATE_LIST'], array('element_id' => $ID)), array('action_' . $arResult['GRID_ID'] => 'delete', 'ID' => $ID, 'sessid' => bitrix_sessid())); } $items[] = $fields; $count++; } $arResult['ROWS_COUNT'] = $count; $arResult['ITEMS'] =& $items; $arResult['NEED_FOR_CONVERTING'] = false;
public static function Update($ID, &$arFields, $options = null) { global $DB; self::ClearErrors(); if (!is_array($options)) { $options = array(); } if (!self::CheckFields('UPDATE', $arFields, $ID)) { return false; } if (isset($arFields['SCOPE']) && !CCrmMailTemplateScope::IsDefined($arFields['SCOPE'])) { $arFields['SCOPE'] = CCrmMailTemplateScope::Personal; } if (isset($arFields['CREATED'])) { unset($arFields['CREATED']); } if (isset($arFields['LAST_UPDATED'])) { unset($arFields['LAST_UPDATED']); } $arFields['~LAST_UPDATED'] = $DB->CurrentTimeFunction(); if (isset($arFields['AUTHOR_ID'])) { unset($arFields['AUTHOR_ID']); } $currentUserID = isset($options['CURRENT_USER_ID']) ? intval($options['CURRENT_USER_ID']) : CCrmPerms::GetCurrentUserID(); if (!isset($arFields['EDITOR_ID'])) { $arFields['EDITOR_ID'] = $currentUserID; } $arRecordBindings = array(); if (isset($arFields['BODY'])) { $arRecordBindings['BODY'] = $arFields['BODY']; } $tableName = CCrmMailTemplate::TABLE_NAME; $sql = 'UPDATE ' . $tableName . ' SET ' . $DB->PrepareUpdate($tableName, $arFields) . ' WHERE ID = ' . $ID; if (!empty($arRecordBindings)) { $DB->QueryBind($sql, $arRecordBindings, false); } else { $DB->Query($sql, false, 'File: ' . __FILE__ . '<br>Line: ' . __LINE__); } $rsEvents = GetModuleEvents('crm', 'OnMailTemplateUpdate'); while ($arEvent = $rsEvents->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, &$arFields)); } return true; }