1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
<?php
# -- BEGIN LICENSE BLOCK ---------------------------------------
#
# This file is part of Antispam, a plugin for Dotclear 2.
#
# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
# Licensed under the GPL version 2.0 license.
# See LICENSE file or
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- END LICENSE BLOCK -----------------------------------------
if (!defined('DC_CONTEXT_ADMIN')) { return; }
if (!defined('DC_ANTISPAM_CONF_SUPER')) {
define('DC_ANTISPAM_CONF_SUPER',false);
}
$_menu['Plugins']->addItem(__('Antispam'),'plugin.php?p=antispam','index.php?pf=antispam/icon.png',
preg_match('/plugin.php\?p=antispam(&.*)?$/',$_SERVER['REQUEST_URI']),
$core->auth->check('admin',$core->blog->id));
$core->addBehavior('coreAfterCommentUpdate',array('dcAntispam','trainFilters'));
$core->addBehavior('adminAfterCommentDesc',array('dcAntispam','statusMessage'));
$core->addBehavior('adminDashboardIcons',array('dcAntispam','dashboardIcon'));
$core->addBehavior('adminDashboardFavorites','antispamDashboardFavorites');
$core->addBehavior('adminDashboardFavsIcon','antispamDashboardFavsIcon');
function antispamDashboardFavorites($core,$favs)
{
$favs->register('antispam', array(
'title' => __('Antispam'),
'url' => 'plugin.php?p=antispam',
'small-icon' => 'index.php?pf=antispam/icon.png',
'large-icon' => 'index.php?pf=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',array('antispamBehaviors','adminBlogPreferencesForm'));
$core->addBehavior('adminBeforeBlogSettingsUpdate',array('antispamBehaviors','adminBeforeBlogSettingsUpdate'));
$core->addBehavior('adminCommentsSpamForm',array('antispamBehaviors','adminCommentsSpamForm'));
$core->addBehavior('adminPageHelpBlock',array('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 null;
}
$blocks[] = 'antispam_comments';
}
public static function adminCommentsSpamForm($core)
{
$ttl = $core->blog->settings->antispam->antispam_moderation_ttl;
if ($ttl != null && $ttl >=0) {
echo '<p>'.sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $ttl).' '.
sprintf(__('You can modify this duration in the %s'),'<a href="blog_pref.php#antispam_moderation_ttl"> '.__('Blog settings').'</a>').
'.</p>';
}
}
public static function adminBlogPreferencesForm($core,$settings)
{
$ttl = $settings->antispam->antispam_moderation_ttl;
echo
'<div class="fieldset"><h4>Antispam</h4>'.
'<p><label for="antispam_moderation_ttl" class="classic">'.__('Delete junk comments older than').' '.
form::field('antispam_moderation_ttl', 3, 3, $ttl).
' '.__('days').
'</label></p>'.
'<p><a href="plugin.php?p=antispam">'.__('Set spam filters.').'</a></p>'.
'</div>';
}
public static function adminBeforeBlogSettingsUpdate($settings)
{
$settings->addNamespace('antispam');
$settings->antispam->put('antispam_moderation_ttl',(integer)$_POST['antispam_moderation_ttl']);
}
}
|