/** * 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(); }
<?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>