This question has been answered by BobRay. See the first response.
[[!ShowMessages? &tpl=`messageTpl` &outerTpl=`messageOuterTpl`]]
<h3>Your Messages</h3>
<form method='post' id='userform' action='[[~[[*id]]]]'>
<ul>
[[+messages]]
</ul>
<br />
<input type="submit" name="submit" value = "submit">
</form>
<li><input type="checkbox" name="messages[]" value="[[+id]]"> [[+subject]] [[+message]]</li>
/* do nothing if user is not logged in */
if (!$modx->user->hasSessionContext('web')) {
return '';
}
/* process form */
if (isset($_POST['submit'])) {
if (isset($_POST['messages']) && (!empty($_POST['messages']))) {
foreach ($_POST['messages'] as $messageId) {
$msg = $modx->getObject('modUserMessage', (int) $messageId);
if ($msg) {
$msg->remove();
}
}
}
}
/* Display messages */
$tpl = $modx->getOption('tpl', $scriptProperties, 'missing Tpl');
$outerTpl = $modx->getOption('outerTpl', $scriptProperties, 'missing Tpl');
$uid = $modx->user->get('id');
$messages = $modx->getCollection('modUserMessage', array('recipient' => $uid));
if (empty($messages)) {
return 'No Messages';
}
$output = $modx->getChunk($outerTpl);
foreach ($messages as $message) {
$fields = $message->toArray();
$inner .= $modx->getChunk($tpl, $fields);
}
$output = str_replace('[[+messages]]', $inner, $output);
return $output;
$output = str_replace('[[+messages]]', $inner, $output;$output = str_replace('[[+messages]]', $inner, $output);
$tpl = $modx->getOption('tpl', $scriptProperties, 'missing Tpl');
$outerTpl = $modx->getOption('tpl', $scriptProperties, 'missing Tpl');$tpl = $modx->getOption('tpl', $scriptProperties, 'missing Tpl');
$outerTpl = $modx->getOption('outerTpl', $scriptProperties, 'missing Tpl');<li><input type="checkbox" name="messages[]"> [[+subject]] [[+message]]</li>';