addItem(__('Antispam'), $core->adminurl->get('admin.plugin.antispam'), dcPage::getPF('antispam/icon.png'), preg_match('/' . preg_quote($core->adminurl->get('admin.plugin.antispam')) . '(&.*)?$/', $_SERVER['REQUEST_URI']), $core->auth->check('admin', $core->blog->id)); $core->addBehavior('coreAfterCommentUpdate', ['dcAntispam', 'trainFilters']); $core->addBehavior('adminAfterCommentDesc', ['dcAntispam', 'statusMessage']); $core->addBehavior('adminDashboardIcons', ['dcAntispam', 'dashboardIcon']); $core->addBehavior('adminDashboardHeaders', ['dcAntispam', 'dashboardHeaders']); $core->addBehavior('adminDashboardFavorites', 'antispamDashboardFavorites'); $core->addBehavior('adminDashboardFavsIcon', 'antispamDashboardFavsIcon'); function antispamDashboardFavorites($core, $favs) { $favs->register('antispam', [ 'title' => __('Antispam'), 'url' => $core->adminurl->get('admin.plugin.antispam'), 'small-icon' => dcPage::getPF('antispam/icon.png'), 'large-icon' => dcPage::getPF('antispam/icon-big.png'), 'permissions' => 'admin'] ); } function antispamDashboardFavsIcon($core, $name, $icon) { // Check if it is comments favs if ($name == 'comments') { // Hack comments title if there is at least one spam $str = dcAntispam::dashboardIconTitle($core); if ($str != '') { $icon[0] .= $str; } } } if (!DC_ANTISPAM_CONF_SUPER || $core->auth->isSuperAdmin()) { $core->addBehavior('adminBlogPreferencesForm', ['antispamBehaviors', 'adminBlogPreferencesForm']); $core->addBehavior('adminBeforeBlogSettingsUpdate', ['antispamBehaviors', 'adminBeforeBlogSettingsUpdate']); $core->addBehavior('adminCommentsSpamForm', ['antispamBehaviors', 'adminCommentsSpamForm']); $core->addBehavior('adminPageHelpBlock', ['antispamBehaviors', 'adminPageHelpBlock']); } class antispamBehaviors { public static function adminPageHelpBlock($blocks) { $found = false; foreach ($blocks as $block) { if ($block == 'core_comments') { $found = true; break; } } if (!$found) { return; } $blocks[] = 'antispam_comments'; } public static function adminCommentsSpamForm($core) { $ttl = $core->blog->settings->antispam->antispam_moderation_ttl; if ($ttl != null && $ttl >= 0) { echo '

' . sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $ttl) . ' ' . sprintf(__('You can modify this duration in the %s'), ' ' . __('Blog settings') . '') . '.

'; } } public static function adminBlogPreferencesForm($core, $settings) { $ttl = $settings->antispam->antispam_moderation_ttl; echo '

Antispam

' . '

' . '

' . __('Set -1 to disabled this feature ; Leave empty to use default 7 days delay.') . '

' . '

' . __('Set spam filters.') . '

' . '
'; } public static function adminBeforeBlogSettingsUpdate($settings) { $settings->addNamespace('antispam'); $settings->antispam->put('antispam_moderation_ttl', (integer) $_POST['antispam_moderation_ttl']); } }