Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions message.info.inc
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,16 @@ class MessageMetadataController extends EntityDefaultMetadataController {
'sanitize' => TRUE,
);

// Add a property listing all text values.
$properties['text_list'] = array(
'type' => 'list<text>',
'label' => t('Partial message text'),
'getter callback' => 'message_property_get_text_list',
'description' => t('A list of partial message text values with all replacement arguments applied.'),
'computed' => TRUE,
'sanitized' => TRUE,
);

// Bypass entity_load() as we cannot use it here.
$message_types = db_select('message_type', 'mt')
->fields('mt')
Expand Down
22 changes: 22 additions & 0 deletions message.module
Original file line number Diff line number Diff line change
Expand Up @@ -937,6 +937,28 @@ function message_property_get_text($message, array $options) {
return $message->getText($langcode);
}

/**
* Entity property info getter callback for getting a list of message texts.
*/
function message_property_get_text_list($message, array $options) {
$langcode = isset($options['language']) ? $options['language']->language : LANGUAGE_NONE;
$message_type = $message->getType();
$message_type_wrapper = entity_metadata_wrapper('message_type', $message_type);
$property = $message_type_wrapper->language($langcode)->{MESSAGE_FIELD_MESSAGE_TEXT};

$text_list = array();
$text_options = array(
'partials' => TRUE,
);
if ($property instanceof EntityListWrapper) {
foreach (array_keys($property->value($options)) as $delta) {
$text_options['partial delta'] = $delta;
$text_list[$delta] = $message->getText($langcode, $text_options);
}
}
return $text_list;
}

/**
* Get the values of a message property.
*
Expand Down