You are here

function oa_messages_oa_messages_create_alter in Open Atrium Core 7.2

Implements hook_oa_messages_create_alter Add additional fields to wrapper for messages

File

modules/oa_messages/oa_messages.module, line 442

Code

function oa_messages_oa_messages_create_alter(&$wrapper, $context) {
  switch ($context['message_type']) {
    case 'oa_delete':

      // save some values from the node that is about to be deleted
      $entity_wrapper = $context['entity_wrapper'];
      if (isset($wrapper->field_deleted_title)) {
        $wrapper->field_deleted_title = $entity_wrapper->title
          ->value();
      }
      if (isset($wrapper->field_deleted_summary) && field_info_instance($context['entity_type'], 'body', $context['entity']->type)) {
        $body_value = field_view_field($context['entity_type'], $context['entity'], 'body', array(
          'label' => 'hidden',
          'type' => 'text_summary_or_trimmed',
        ));
        $wrapper->field_deleted_summary
          ->set(array(
          'value' => render($body_value),
        ));
      }
      break;
    case 'oa_update':
      if ($context['entity_type'] == 'node' && isset($context['entity'])) {
        $node = $context['entity'];
        if ($node->type == 'oa_team') {

          // modify message when changing membership in a team
          $old_users = field_get_items('node', $node->original, 'field_oa_team_users');
          $new_users = field_get_items('node', $node, 'field_oa_team_users');
          $output = theme('oa_team_update', array(
            'old_users' => $old_users,
            'new_users' => $new_users,
          ));

          // override normal message text with themed team diff
          $wrapper->field_oa_message_text
            ->set(array(
            'value' => $output,
            'format' => 'full_html',
          ));
        }
      }
      break;
    case 'oa_comment':
      $wrapper->field_oa_comment_ref = $context['arguments'];
      break;
    case 'oa_member':
      $wrapper->field_oa_message_space = $context['arguments'];
      break;
  }
}