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;
}
}