civicrm_entity-8.x-3.0-beta1/src/Plugin/views/field/MailingEventOpenedRate.php

src/Plugin/views/field/MailingEventOpenedRate.php
<?php

namespace Drupal\civicrm_entity\Plugin\views\field;

use Drupal\views\Plugin\views\field\NumericField;
use Drupal\views\ResultRow;

/**
 * Class for MailingEventOpenedRate.
 *
 * @ViewsField("civicrm_entity_mailing_event_opened_rate")
 */
class MailingEventOpenedRate extends MailingEvent {

  /**
   * {@inheritdoc}
   */
  public function getValue(ResultRow $values, $field = NULL) {
    $value = NumericField::getValue($values);

    if (!class_exists('CRM_Mailing_Event_BAO_Delivered') || !class_exists('CRM_Mailing_Event_BAO_Opened')) {
      $this->civicrmApi->civicrmInitialize();
    }

    $delivered = \CRM_Mailing_Event_BAO_Delivered::getTotalCount($value);
    $opened = \CRM_Mailing_Event_BAO_Opened::getTotalCount($value, NULL, TRUE);

    return number_format($delivered ? (($opened / $delivered) * 100) : 0, 2);
  }

}

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

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