Esempio n. 1
0
/**
 * Flag suspicious messages
 *
 * @param string     $event  "create"
 * @param string     $type   "object"
 * @param ElggObject $entity Message
 * @return void
 */
function hypeapps_inbox_monitor_flag_suspicious_messages($event, $type, $entity)
{
    if ($entity->getSubtype() != 'messages') {
        return;
    }
    $policy = elgg_get_plugin_setting('policy', 'hypeInboxMonitor', 'nothing');
    $blacklist = hypeapps_inbox_monitor_get_blacklist();
    $options = array('also_check' => $blacklist);
    $filter = new \JCrowe\BadWordFilter\BadWordFilter($options);
    $badWords = $filter->getDirtyWordsFromString("{$entity->title} {$entity->description}");
    $entity->badwords = $badWords;
    switch ($policy) {
        case 'mask':
            $entity->title = $filter->clean($entity->title);
            $entity->description = $filter->clean($entity->title);
            break;
        case 'silence':
            $replacement = '<span rel="bwsilent">$0</span>';
            $entity->title = $filter->clean($entity->title, $replacement);
            $entity->description = $filter->clean($entity->description, $replacement);
            break;
        case 'remove':
            $replacement = '<span rel="bwremoved">[' . elgg_echo('inbox:monitor:removed') . ']</span>';
            $entity->title = $filter->clean($entity->title, $replacement);
            $entity->description = $filter->clean($entity->description, $replacement);
            break;
    }
    $entity->save();
}
Esempio n. 2
0
<?php

$entity = elgg_extract('entity', $vars);
?>
<div>
	<label><?php 
echo elgg_echo('inbox:monitor:blacklist');
?>
</label>
	<div class="elgg-text-help"><?php 
echo elgg_echo('inbox:monitor:blacklist:help');
?>
</div>
	<?php 
echo elgg_view('input/plaintext', array('name' => 'params[blacklist]', 'value' => implode(PHP_EOL, hypeapps_inbox_monitor_get_blacklist())));
?>
</div>

<div>
	<label><?php 
echo elgg_echo('inbox:monitor:policy');
?>
</label>
	<div class="elgg-text-help"><?php 
echo elgg_echo('inbox:monitor:policy:help');
?>
</div>
	<?php 
echo elgg_view('input/select', array('name' => 'params[policy]', 'value' => $entity->policy ?: 'mask', 'options_values' => array('nothing' => elgg_echo('inbox:monitor:policy:nothing'), 'mask' => elgg_echo('inbox:monitor:policy:mask'), 'silence' => elgg_echo('inbox:monitor:policy:silence'), 'remove' => elgg_echo('inbox:monitor:policy:remove'))));
?>
</div>