Index: plugins/antispam/_admin.php
===================================================================
--- plugins/antispam/_admin.php	(revision 203)
+++ plugins/antispam/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -29,5 +29,5 @@
 function antispamDashboardFavs($core,$favs)
 {
-	$favs['antispam'] = new ArrayObject(array('antispam',__('Antispam'),'plugin.php?p=antispam',
+	$favs['antispam'] = new ArrayObject(array('antispam','Antispam','plugin.php?p=antispam',
 		'index.php?pf=antispam/icon.png','index.php?pf=antispam/icon-big.png',
 		'admin',null,null));
Index: plugins/antispam/_define.php
===================================================================
--- plugins/antispam/_define.php	(revision 0)
+++ plugins/antispam/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */			"Alain Vagner",
 	/* Version */			'1.3.1',
-	/* Permissions */		'usage,contentadmin',
-	/* Priority */			10
+	array(
+		'permissions' =>	'usage,contentadmin',
+		'priority' =>		10
+	)
 );
 ?>
Index: plugins/antispam/_install.php
===================================================================
--- plugins/antispam/_install.php	(revision 0)
+++ plugins/antispam/_install.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/_prepend.php
===================================================================
--- plugins/antispam/_prepend.php	(revision 0)
+++ plugins/antispam/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/_public.php
===================================================================
--- plugins/antispam/_public.php	(revision 0)
+++ plugins/antispam/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/filters/class.dc.filter.ip.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.ip.php	(revision 780)
+++ plugins/antispam/filters/class.dc.filter.ip.php	(revision 782)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -123,8 +123,7 @@
 		'<div class="multi-part" id="tab_'.$type.'" title="'.$title.'">'.
 
-		'<form action="'.html::escapeURL($url).'" method="post">'.
-		'<fieldset><legend>'.__('Add an IP address').'</legend><p>'.
+		'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
 		form::hidden(array('ip_type'),$type).
-		'<label class="classic" for="addip_'.$type.'">'.__('Add an IP address').' '.
+		'<label class="classic" for="addip_'.$type.'">'.__('Add an IP address: ').' '.
 		form::field(array('addip', 'addip_'.$type),18,255).
 		'</label>';
@@ -136,6 +135,7 @@
 		$res .=
 		$core->formNonce().
-		'<input type="submit" value="'.__('Add').'"/></p>'.
-		'</fieldset></form>';
+		'</p>'.
+		'<p><input type="submit" value="'.__('Add').'"/></p>'.
+		'</form>';
 
 		$rs = $this->getRules($type);
@@ -149,5 +149,5 @@
 			$res .=
 			'<form action="'.html::escapeURL($url).'" method="post">'.
-			'<fieldset><legend>' . __('IP list') . '</legend>'.
+			'<h3>' . __('IP list') . '</h3>'.
 			'<div style="'.$this->style_list.'">';
 
@@ -167,6 +167,6 @@
 
 				$res .=
-				'<p style="'.$p_style.'"><label class="classic">'.
-				form::checkbox(array('delip[]'),$rs->rule_id,false,'','',$disabled_ip, 'title="'.html::escapeHTML($pattern).'"').' '.
+				'<p style="'.$p_style.'"><label class="classic" for="'.$type.'-ip-'.$rs->rule_id.'">'.
+				form::checkbox(array('delip[]',$type.'-ip-'.$rs->rule_id),$rs->rule_id,false,'','',$disabled_ip).' '.
 				html::escapeHTML($pattern).
 				'</label></p>';
@@ -178,5 +178,5 @@
 			form::hidden(array('ip_type'),$type).
 			'</p>'.
-			'</fieldset></form>';
+			'</form>';
 		}
 
Index: plugins/antispam/filters/class.dc.filter.iplookup.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.iplookup.php	(revision 223)
+++ plugins/antispam/filters/class.dc.filter.iplookup.php	(revision 536)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -84,7 +84,8 @@
 		'<form action="'.html::escapeURL($url).'" method="post">'.
 		'<fieldset><legend>' . __('IP Lookup servers') . '</legend>'.
-		'<p>'.'<label for="bls">'.__('Add here a coma separated list of servers.').'</label>'.
-		form::textarea('bls',40,3,html::escapeHTML($bls),'maximal').'</p>'.
-		'<p><input type="submit" value="'.__('Save').'" />'.
+		'<p><label for="bls">'.__('Add here a coma separated list of servers.').
+		form::textarea('bls',40,3,html::escapeHTML($bls),'maximal').
+		'</p>'.
+		'<p><input type="submit" value="'.__('Save').'" /></label></p>'.
 		$this->core->formNonce().'</p>'.
 		'</fieldset>'.
@@ -119,3 +120,2 @@
 }
 ?>
-
Index: plugins/antispam/filters/class.dc.filter.linkslookup.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.linkslookup.php	(revision 0)
+++ plugins/antispam/filters/class.dc.filter.linkslookup.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/filters/class.dc.filter.words.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.words.php	(revision 223)
+++ plugins/antispam/filters/class.dc.filter.words.php	(revision 536)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -119,7 +119,6 @@
 
 		$res .=
-		'<form action="'.html::escapeURL($url).'" method="post">'.
-		'<fieldset><legend>'.__('Add a word').'</legend>'.
-		'<p><label class="classic" for="swa">'.__('Add a word').' '.form::field('swa',20,128).'</label>';
+		'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
+		'<p><label class="classic" for="swa">'.__('Add a word ').' '.form::field('swa',20,128).'</label>';
 
 		if ($core->auth->isSuperAdmin()) {
@@ -130,6 +129,6 @@
 		$res .=
 		$core->formNonce().
-		'<input type="submit" value="'.__('Add').'"/></p>'.
-		'</fieldset>'.
+		'</p>'.
+		'<p><input type="submit" value="'.__('Add').'"/></p>'.
 		'</form>';
 
@@ -142,6 +141,6 @@
 		{
 			$res .=
-			'<form action="'.html::escapeURL($url).'" method="post">'.
-			'<fieldset><legend>' . __('List') . '</legend>'.
+			'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
+			'<h3>' . __('List of bad words') . '</h3>'.
 			'<div style="'.$this->style_list.'">';
 
@@ -156,6 +155,6 @@
 
 				$res .=
-				'<p style="'.$p_style.'"><label class="classic">'.
-				form::checkbox(array('swd[]'),$rs->rule_id,false,'','',$disabled_word, 'title="'.html::escapeHTML($rs->rule_content).'"').' '.
+				'<p style="'.$p_style.'"><label class="classic" for="word-'.$rs->rule_id.'">'.
+				form::checkbox(array('swd[]', 'word-'.$rs->rule_id),$rs->rule_id,false,'','',$disabled_word).' '.
 				html::escapeHTML($rs->rule_content).
 				'</label></p>';
@@ -167,5 +166,5 @@
 			$core->formNonce().
 			'<input class="submit delete" type="submit" value="' . __('Delete selected words') . '"/></p>'.
-			'</fieldset></form>';
+			'</form>';
 		}
 
@@ -356,3 +355,2 @@
 }
 ?>
-
Index: plugins/antispam/inc/class.dc.spamfilter.php
===================================================================
--- plugins/antispam/inc/class.dc.spamfilter.php	(revision 0)
+++ plugins/antispam/inc/class.dc.spamfilter.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/inc/class.dc.spamfilters.php
===================================================================
--- plugins/antispam/inc/class.dc.spamfilters.php	(revision 0)
+++ plugins/antispam/inc/class.dc.spamfilters.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/inc/lib.dc.antispam.php
===================================================================
--- plugins/antispam/inc/lib.dc.antispam.php	(revision 203)
+++ plugins/antispam/inc/lib.dc.antispam.php	(revision 752)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -75,5 +75,5 @@
 		if (($count = self::countSpam($core)) > 0) {
 			$str = ($count > 1) ? __('(including %d spam comments)') : __('(including %d spam comment)');
-			$icons['comments'][0] .= '</a> <br /><a href="comments.php?status=-2">'.sprintf($str,$count);
+			$icons['comments'][0] .= '</a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count).'</span>';
 		}
 	}
@@ -83,5 +83,5 @@
 		if (($count = self::countSpam($core)) > 0) {
 			$str = ($count > 1) ? __('(including %d spam comments)') : __('(including %d spam comment)');
-			return '</a> <br /><a href="comments.php?status=-2">'.sprintf($str,$count);
+			return '</a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count).'</span>';
 		} else {
 			return '';
@@ -163,4 +163,10 @@
 		}
 		
+		$permissions = $core->getBlogPermissions($core->blog->id);
+		
+		if ( empty($permissions[$rs->user_id]) ) {
+			return false;
+		}
+		
 		return $rs->user_id;
 	}
Index: plugins/antispam/inc/lib.dc.antispam.url.php
===================================================================
--- plugins/antispam/inc/lib.dc.antispam.url.php	(revision 0)
+++ plugins/antispam/inc/lib.dc.antispam.url.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/index.php
===================================================================
--- plugins/antispam/index.php	(revision 457)
+++ plugins/antispam/index.php	(revision 782)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -110,10 +110,9 @@
 <body>
 <?php
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.$page_name.'</h2>';
 
 if ($filter_gui !== false)
 {
-	echo '<p><a href="'.$p_url.'">'.__('Return to filters').'</a></p>';
-	printf('<h3>'.__('%s configuration').'</h3>',$filter->name);
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_name.'</a>'.
+		' &rsaquo; <span class="page-title">'.sprintf(__('%s configuration'),$filter->name).'</span></h2>';
 
 	echo $filter_gui;
@@ -121,4 +120,5 @@
 else
 {
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_name.'</span></h2>';
 	# Information
 	$spam_count = dcAntispam::countSpam($core);
@@ -127,6 +127,6 @@
 
 	echo
-	'<form action="'.$p_url.'" method="post">'.
-	'<fieldset><legend>'.__('Information').'</legend>';
+	'<form action="'.$p_url.'" method="post" class="fieldset">'.
+	'<h3>'.__('Information').'</h3>';
 
 	if (!empty($_GET['del'])) {
@@ -150,13 +150,14 @@
 	}
 	if ($moderationTTL != null && $moderationTTL >=0) {
-		echo '<p>'.sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $moderationTTL).'</p>';
-	}
-	echo '</fieldset></form>';
+		echo '<p>'.sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $moderationTTL).' '.
+		__('You can modify this duration in ').
+		'<a href="blog_pref.php"> '.__('Blog preferences').'</a></p>';
+	}
+	echo '</form>';
 
 
 	# Filters
 	echo
-	'<form action="'.$p_url.'" method="post">'.
-	'<fieldset><legend>'.__('Available spam filters').'</legend>';
+	'<form action="'.$p_url.'" method="post" class="fieldset">';
 
 	if (!empty($_GET['upd'])) {
@@ -166,11 +167,11 @@
 	echo
 	'<table class="dragable">'.
-	'<caption>'.__('Antispan filters list').'</caption>'.
+	'<caption>'.__('Available spam filters').'</caption>'.
 	'<thead><tr>'.
-	'<th scope="col">'.__('Order').'</th>'.
-	'<th scope="col">'.__('Active').'</th>'.
-	'<th scope="col">'.__('Auto Del.').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Filter name').'</th>'.
-	'<th scope="col" colspan="2">'.__('Description').'</th>'.
+	'<th>'.__('Order').'</th>'.
+	'<th>'.__('Active').'</th>'.
+	'<th>'.__('Auto Del.').'</th>'.
+	'<th class="nowrap">'.__('Filter name').'</th>'.
+	'<th colspan="2">'.__('Description').'</th>'.
 	'</tr></thead>'.
 	'<tbody id="filters-list" >';
@@ -192,5 +193,5 @@
 		'<td class="nowrap">'.form::checkbox(array('filters_active[]'),$fid,$f->active, '', '', false, 'title="'.__('Active').'"').'</td>'.
 		'<td class="nowrap">'.form::checkbox(array('filters_auto_del[]'),$fid,$f->auto_delete, '', '', false, 'title="'.__('Auto Del.').'"').'</td>'.
-		'<th scope="row" class="nowrap">'.$f->name.'</th>'.
+		'<td class="nowrap" scope="raw">'.$f->name.'</td>'.
 		'<td class="maximal">'.$f->description.'</td>'.
 		'<td class="status">'.$gui_link.'</td>'.
@@ -203,5 +204,5 @@
 	$core->formNonce().
 	'<input type="submit" name="filters_upd" value="'.__('Save').'" /></p>'.
-	'</fieldset></form>';
+	'</form>';
 
 
@@ -209,14 +210,19 @@
 	if (DC_ADMIN_URL)
 	{
-		$ham_feed = $core->blog->url.$core->url->getBase('hamfeed').'/'.$code = dcAntispam::getUserCode($core);
-		$spam_feed = $core->blog->url.$core->url->getBase('spamfeed').'/'.$code = dcAntispam::getUserCode($core);
+		$ham_feed = $core->blog->url.$core->url->getURLFor(
+			'hamfeed',
+			$code = dcAntispam::getUserCode($core)
+		);
+		$spam_feed = $core->blog->url.$core->url->getURLFor(
+			'spamfeed',
+			$code = dcAntispam::getUserCode($core)
+		);
 
 		echo
-		'<fieldset><legend>'.__('Syndication').'</legend>'.
+		'<h3>'.__('Syndication').'</h3>'.
 		'<ul class="spaminfo">'.
 		'<li class="feed"><a href="'.$spam_feed.'">'.__('Junk comments RSS feed').'</a></li>'.
 		'<li class="feed"><a href="'.$ham_feed.'">'.__('Published comments RSS feed').'</a></li>'.
-		'</ul>'.
-		'</fieldset>';
+		'</ul>';
 	}
 }
