function tu_spam_report_river_menu($hook, $type, $return, $params)
{
    if ($params['item']->type == 'object' && elgg_is_logged_in() && !$params['item']->annotation_id) {
        $user = elgg_get_logged_in_user_entity();
        $object = $params['item']->getObjectEntity();
        if (trusted_users_is_trusted($user) && !tu_spam_report_is_marked($object, $user)) {
            // we're a trusted user, give us a spam link
            $text = elgg_view_icon('attention');
            $href = elgg_add_action_tokens_to_url('action/report_spam?guid=' . $object->guid);
            $item = new ElggMenuItem('report_spam', $text, $href);
            $item->setTooltip(elgg_echo('tu_spam_report:mark'));
            $return[] = $item;
        }
    }
    return $return;
}
<?php

$user = elgg_get_logged_in_user_entity();
$object = get_entity(get_input('guid'));
$forward = REFERER;
if (!elgg_instanceof($object) || !trusted_users_is_trusted($user)) {
    register_error(elgg_echo('tu_spam_report:error:permissions'));
    forward(REFERER);
}
$owner = $object->getOwnerEntity();
if (tu_spam_report_is_marked($object, $user)) {
    register_error(elgg_echo('tu_spam_report:error:marked'));
    forward(REFERER);
}
$ia = elgg_set_ignore_access(true);
// all good, lets mark it as spam
$object->annotate('tu_spam_report', 1);
// count how many reports there have been
$markcount = elgg_get_annotations(array('guid' => $object->guid, 'annotation_names' => array('tu_spam_report'), 'annotation_values' => array('1'), 'count' => true));
$marklimit = elgg_get_plugin_setting('trusted_users_flag_count', 'trusted_user_spam_report');
$userlimit = elgg_get_plugin_setting('user_spam_count', 'trusted_user_spam_report');
$user_strtotime = elgg_get_plugin_setting('user_spam_strtotime', 'trusted_user_spam_report');
if ($marklimit && $markcount >= $marklimit) {
    // this is enough to call it spam
    $object->disable('reported spam');
    $forward = 'activity';
    // record that the user had content disabled
    // if the user has too much content disabled we'll auto-ban them
    $owner->annotate('content_marked_spam', 1);
    $time_lower = strtotime($user_strtotime);
    if ($time_lower && $userlimit) {