email_changelog-8.x-1.0-alpha1/modules/email_changelog_civicrm/email_changelog_civicrm.module

modules/email_changelog_civicrm/email_changelog_civicrm.module
<?php

/**
 * @file
 * Logs changes to civicrm contact emails.
 */

/**
 * Implements hook_civicrm_pre().
 */
function email_changelog_civicrm_civicrm_pre($op, $objectName, $id, &$params) {
  if ($op == 'edit' && $objectName == 'Email' && $id) {
    $result = civicrm_api3('Email', 'get', [
      'sequential' => 1,
      'id' => $id,
    ]);
    $_SESSION['email_changelog_civicrm'][$id]['email'] = $result['values'][0]['email'];
    $_SESSION['email_changelog_civicrm'][$id]['is_primary'] = $result['values'][0]['is_primary'];
  }
}

/**
 * Implements hook_civicrm_post().
 */
function email_changelog_civicrm_civicrm_post($op, $objectName, $objectId, &$objectRef) {
  if ($op == 'edit' && $objectName == 'Email' && isset($_SESSION['email_changelog_civicrm'][$objectId])) {
    $reason = [];
    $update = FALSE;
    if ($_SESSION['email_changelog_civicrm'][$objectId]['email'] != $objectRef->email) {
      $update = TRUE;
    }
    elseif ($_SESSION['email_changelog_civicrm'][$objectId]['is_primary'] != $objectRef->is_primary) {
      $update = TRUE;
      if ($objectRef->is_primary) {
        $reason['message'] = t('%email is now Primary email address', ['%email' => $objectRef->email]);
      }
      else {
        $reason['message'] = t('%email is no longer Primary email address', ['%email' => $objectRef->email]);
      }
    }
    if ($update) {
      $uid = CRM_Core_BAO_UFMatch::getUFId($objectRef->contact_id);
      $reason['contact_id'] = $objectRef->contact_id;
      _email_changelog_log($uid, $objectRef->email, $_SESSION['email_changelog_civicrm'][$objectId]['email'], $reason);
    }
    unset($_SESSION['email_changelog_civicrm'][$objectId]);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc