Index: admin/help.php
===================================================================
--- admin/help.php	(revision 1793)
+++ admin/help.php	(revision 1799)
@@ -68,8 +68,8 @@
 }
 
-$help_page = !empty($_GET['page']) ? html::escapeHTML($_GET['page']) : 'core_main';
+$help_page = !empty($_GET['page']) ? html::escapeHTML($_GET['page']) : 'index';
 $content_array = helpPage($help_page);
-if (($content_array['content'] == '') || ($help_page == 'core_main')) {
-	$content_array = helpPage('core_main');
+if (($content_array['content'] == '') || ($help_page == 'index')) {
+	$content_array = helpPage('index');
 }
 if ($content_array['title'] != '') {
Index: admin/js/_posts_actions.js
===================================================================
--- admin/js/_posts_actions.js	(revision 1806)
+++ admin/js/_posts_actions.js	(revision 1638)
@@ -1,12 +1,9 @@
 $(function() {
-	new_auth_id = $('#new_auth_id');
-	if (new_auth_id.length) {
-		new_auth_id.autocomplete(usersList,
-		{
-			delay: 1000,
-			matchSubset: true,
-			matchContains: true
-		});
-	}
+	$('#new_auth_id').autocomplete(usersList,
+	{
+		delay: 1000,
+		matchSubset: true,
+		matchContains: true
+	});
 	$('#new_cat').toggleWithLegend($('#new_cat').parent().children().not('#new_cat'), {
 		// no cookie on new category as we don't use this every day
Index: admin/js/_preferences-dragdrop.js
===================================================================
--- admin/js/_preferences-dragdrop.js	(revision 1766)
+++ admin/js/_preferences-dragdrop.js	(revision 1795)
@@ -2,4 +2,5 @@
 	$("#my-favs ul").sortable({'cursor':'move'});
 	$("#my-favs ul, #my-favs ul *").css({'cursor':'move'});
+	$("#my-favs ul input").css({'cursor':'auto'});
 	$('#favs-form').submit(function() {
 		var order=[];
Index: admin/js/_update.js
===================================================================
--- admin/js/_update.js	(revision 1462)
+++ admin/js/_update.js	(revision 1803)
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 1789)
+++ admin/js/common.js	(revision 1798)
@@ -346,7 +346,6 @@
 $(function() {
 	// remove class no-js from html tag; cf style/default.css for examples
-	$('body').removeClass('no-js');
-	$('body').addClass('with-js');
-
+	$('body').removeClass('no-js').addClass('with-js');
+	
 	$('#wrapper').contents().each(function() {
 		if (this.nodeType==8) {
Index: admin/js/ie7/IE7.js
===================================================================
--- admin/js/ie7/IE7.js	(revision 703)
+++ admin/js/ie7/IE7.js	(revision 1803)
Index: admin/js/ie7/IE8.js
===================================================================
--- admin/js/ie7/IE8.js	(revision 703)
+++ admin/js/ie7/IE8.js	(revision 1803)
Index: admin/js/ie7/ie7-recalc.js
===================================================================
--- admin/js/ie7/ie7-recalc.js	(revision 703)
+++ admin/js/ie7/ie7-recalc.js	(revision 1803)
Index: admin/js/ie7/ie7-squish.js
===================================================================
--- admin/js/ie7/ie7-squish.js	(revision 703)
+++ admin/js/ie7/ie7-squish.js	(revision 1803)
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 1806)
+++ admin/posts.php	(revision 1792)
@@ -103,8 +103,33 @@
 
 # Actions combo box
-
-$posts_actions_page = new dcPostsActionsPage($core,'posts.php');
-
-$posts_actions_page->process();
+$combo_action = array();
+if ($core->auth->check('publish,contentadmin',$core->blog->id))
+{
+	$combo_action[__('Status')] = array(
+		__('Publish') => 'publish',
+		__('Unpublish') => 'unpublish',
+		__('Schedule') => 'schedule',
+		__('Mark as pending') => 'pending'
+	);
+}
+$combo_action[__('Mark')] = array(
+	__('Mark as selected') => 'selected',
+	__('Mark as unselected') => 'unselected'
+);
+$combo_action[__('Change')] = array(
+	__('Change category') => 'category',
+	__('Change language') => 'lang');
+if ($core->auth->check('admin',$core->blog->id))
+{
+	$combo_action[__('Change')] = array_merge($combo_action[__('Change')],
+		array(__('Change author') => 'author'));
+}
+if ($core->auth->check('delete,contentadmin',$core->blog->id))
+{
+	$combo_action[__('Delete')] = array(__('Delete') => 'delete');
+}
+
+# --BEHAVIOR-- adminPostsActionsCombo
+$core->callBehavior('adminPostsActionsCombo',array(&$combo_action));
 
 /* Get posts
@@ -279,5 +304,5 @@
 	# Show posts
 	$post_list->display($page,$nb_per_page,
-	'<form action="posts.php" method="post" id="form-entries">'.
+	'<form action="posts_actions.php" method="post" id="form-entries">'.
 	
 	'%s'.
@@ -287,5 +312,5 @@
 	
 	'<p class="col right"><label for="action" class="classic">'.__('Selected entries action:').'</label> '.
-	form::combo('action',$posts_actions_page->getCombo()).
+	form::combo('action',$combo_action).
 	'<input type="submit" value="'.__('ok').'" /></p>'.
 	form::hidden(array('user_id'),$user_id).
Index: admin/posts_actions.php
===================================================================
--- admin/posts_actions.php	(revision 1806)
+++ admin/posts_actions.php	(revision 1719)
@@ -11,14 +11,490 @@
 # -- END LICENSE BLOCK -----------------------------------------
 
-/* ### THIS FILE IS DEPRECATED 					### */
-/* ### IT IS ONLY USED FOR PLUGINS COMPATIBILITY ### */
-
 require dirname(__FILE__).'/../inc/admin/prepend.php';
 
 dcPage::check('usage,contentadmin');
 
-$posts_actions_page = new dcPostsActionsPage($core,'posts.php');
-
-$posts_actions_page->process();
-
+$params = array();
+
+/**
+* FieldsList - Compatibility class for hidden fields & entries[] fields
+*
+*/
+class FieldsList {
+	/** @var array list of hidden fields */
+	protected $hidden;
+	/** @var array list of selected entries */
+	protected $entries;
+
+
+   /**
+     * Class constructor
+	*/
+	public function __construct() {
+		$this->hidden=array();
+		$this->entries =array();
+	}
+
+    /**
+     * addHidden - adds a hidden field
+     * 
+     * @param string $name the field name.
+     * @param mixed $value the field value.
+     *
+     * @access public
+	 * @return the FieldsList instance, enabling to chain requests
+     */	
+	 public function addHidden($name,$value) {
+		$this->hidden[] = form::hidden($name,$value);
+		return $this;
+	}
+
+    /**
+     * addEntry - adds a antry field
+     * 
+     * @param string $id the entry id.
+     * @param mixed $title the entry title.
+     *
+     * @access public
+	 * @return the FieldsList instance, enabling to chain requests
+     */	
+	 public function addEntry($id,$title) {
+		$this->entries[$id]=$title;
+		return $this;
+	}
+
+    /**
+     * getHidden - returns the list of hidden fields, html encoded
+     *
+     * @access public
+	 * @return the list of hidden fields, html encoded
+     */
+	 public function getHidden() {
+		return join('',$this->hidden);
+	}
+	
+    /**
+     * getEntries - returns the list of entry fields, html encoded
+     *
+	 * @param boolean $hidden if set to true, returns entries as a list of hidden field
+	 *                if set to false, returns html code displaying the list of entries
+	 *                with a list of checkboxes to enable to select/deselect entries
+     * @access public
+	 * @return the list of entry fields, html encoded
+     */
+	public function getEntries ($hidden=false) {
+		$ret = '';
+		if ($hidden) {
+			foreach ($this->entries as $id=> $e) {
+				$ret .= form::hidden('entries[]',$id);
+			}
+		} else {
+			$ret = 
+				'<table class="posts-list"><tr>'.
+				'<th colspan="2">'.__('Title').'</th>'.
+				'</tr>';
+			foreach ($this->entries as $id=>$title) {
+				$ret .= 
+					'<tr><td>'.
+					form::checkbox(array('entries[]'),$id,true,'','').'</td>'.
+					'<td>'.	$title.'</td></tr>';
+			}
+			$ret .= '</table>';
+		}
+		return $ret;
+	}
+	
+    /**
+     * getEntriesQS - returns the list of entry fields as query string
+     *
+     * @access public
+	 * @return the list of entry fields, html encoded
+     */
+	public function getEntriesQS() {
+		$ret=array();
+		foreach ($this->entries as $id=>$title) {
+			$ret[] = 'entries[]='.$id;
+		}
+		return join('&',$ret);
+	}
+	
+    /**
+     * __toString - magic method. -- DEPRECATED here
+	 *              This method is only used to preserve compatibility with plugins 
+	 *				relying on previous versions of adminPostsActionsContent behavior, 
+	 *
+     * @access public
+	 * @return the list of hidden fields and entries (as hidden fields too), html encoded
+     */
+	public function __toString() {
+		return join('',$this->hidden).$this->getEntries(true);
+	}
+}
+
+$fields = new FieldsList();
+$posts_ids = array();
+
+if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false)
+{
+	$redir = $_POST['redir'];
+}
+else
+{
+	$redir =
+	'posts.php?user_id='.$_POST['user_id'].
+	'&cat_id='.$_POST['cat_id'].
+	'&status='.$_POST['status'].
+	'&selected='.$_POST['selected'].
+	'&month='.$_POST['month'].
+	'&lang='.$_POST['lang'].
+	'&sortby='.$_POST['sortby'].
+	'&order='.$_POST['order'].
+	'&page='.$_POST['page'].
+	'&nb='.$_POST['nb'];
+}
+$redir_sel = $redir;
+
+if (!empty($_POST['entries']))
+{
+	$entries = $_POST['entries'];
+	
+	foreach ($entries as $k => $v) {
+		$entries[$k] = (integer) $v;
+	}
+	
+	$params['sql'] = 'AND P.post_id IN('.implode(',',$entries).') ';
+	
+	if (!isset($_POST['full_content']) || empty($_POST['full_content'])) {
+		$params['no_content'] = true;
+	}
+	
+	if (isset($_POST['post_type'])) {
+		$params['post_type'] = $_POST['post_type'];
+	}
+	
+	$posts = $core->blog->getPosts($params);
+	while ($posts->fetch())	{
+		$posts_ids[] = $posts->post_id;
+		$fields->addEntry($posts->post_id,$posts->post_title);
+	}
+	// Redirection including selected entries
+	$redir_sel = $redir.'&'.$fields->getEntriesQS();
+
+} else {
+	$posts = $core->con->select("SELECT blog_id FROM ".$core->prefix."blog WHERE false");;
+}
+
+/* Actions
+-------------------------------------------------------- */
+if (!empty($_POST['action']))
+{
+	$action = $_POST['action'];
+} 
+else
+{
+	$core->error->add(__('No action specified.'));
+	dcPage::open(
+		__('Entries'),'',dcPage::breadcrumb(
+		array(
+			html::escapeHTML($core->blog->name) => '',
+			__('Entries') => 'posts.php',
+			'<span class="page-title">'.__('Entries actions').'</span>' => ''
+		))
+	);
+	
+	echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>';
+
+	dcPage::close();
+	exit;
+}
+
+# --BEHAVIOR-- adminPostsActions
+$core->callBehavior('adminPostsActions',$core,$posts,$action,$redir);
+
+if (preg_match('/^(publish|unpublish|schedule|pending)$/',$action))
+{
+	switch ($action) {
+		case 'unpublish' : $status = 0; break;
+		case 'schedule' : $status = -1; break;
+		case 'pending' : $status = -2; break;
+		default : $status = 1; break;
+	}
+	
+	try
+	{
+		$core->blog->updPostsStatus($posts_ids,$status);
+		
+		http::redirect($redir_sel.'&upd=1');
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessage());
+	}
+}
+elseif ($action == 'selected' || $action == 'unselected')
+{
+	try
+	{
+		$core->blog->updPostsSelected($posts_ids,$action == 'selected');
+		
+		http::redirect($redir_sel."&upd=1");
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessage());
+	}
+}
+elseif ($action == 'delete')
+{
+	try
+	{
+		// Backward compatibility
+		foreach($posts_ids as $post_id)
+		{
+			# --BEHAVIOR-- adminBeforePostDelete
+			$core->callBehavior('adminBeforePostDelete',(integer) $post_id);
+		}
+		
+		# --BEHAVIOR-- adminBeforePostsDelete
+		$core->callBehavior('adminBeforePostsDelete',$posts_ids);
+		
+		$core->blog->delPosts($posts_ids);
+		
+		http::redirect($redir."&del=1");
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessage());
+	}
+	
+}
+elseif ($action == 'category' && isset($_POST['new_cat_id']))
+{
+	$new_cat_id = $_POST['new_cat_id'];
+	
+	try
+	{
+		if (!empty($_POST['new_cat_title']) && $core->auth->check('categories', $core->blog->id))
+		{
+			$cur_cat = $core->con->openCursor($core->prefix.'category');
+			$cur_cat->cat_title = $_POST['new_cat_title'];
+			$cur_cat->cat_url = '';
+			
+			$parent_cat = !empty($_POST['new_cat_parent']) ? $_POST['new_cat_parent'] : '';
+			
+			# --BEHAVIOR-- adminBeforeCategoryCreate
+			$core->callBehavior('adminBeforeCategoryCreate', $cur_cat);
+			
+			$new_cat_id = $core->blog->addCategory($cur_cat, (integer) $parent_cat);
+			
+			# --BEHAVIOR-- adminAfterCategoryCreate
+			$core->callBehavior('adminAfterCategoryCreate', $cur_cat, $new_cat_id);
+		}
+		
+		$core->blog->updPostsCategory($posts_ids, $new_cat_id);
+		
+		http::redirect($redir_sel."&upd=1");
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessage());
+	}
+}
+elseif ($action == 'author' && isset($_POST['new_auth_id'])
+&& $core->auth->check('admin',$core->blog->id))
+{
+	$new_user_id = $_POST['new_auth_id'];
+	
+	try
+	{
+		if ($core->getUser($new_user_id)->isEmpty()) {
+			throw new Exception(__('This user does not exist'));
+		}
+		
+		$cur = $core->con->openCursor($core->prefix.'post');
+		$cur->user_id = $new_user_id;
+		$cur->update('WHERE post_id '.$core->con->in($posts_ids));
+		
+		http::redirect($redir_sel."&upd=1");
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessage());
+	}
+}
+elseif ($action == 'lang' && isset($_POST['new_lang']))
+{
+	$new_lang = $_POST['new_lang'];
+	try
+	{
+		$cur = $core->con->openCursor($core->prefix.'post');
+		$cur->post_lang = $new_lang;
+		$cur->update('WHERE post_id '.$core->con->in($posts_ids));
+		
+		http::redirect($redir_sel."&upd=1");
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessages());
+	}
+}
+
+/* DISPLAY
+-------------------------------------------------------- */
+// Get current users list
+$usersList = '';
+if ($action == 'author' && $core->auth->check('admin',$core->blog->id)) {
+	$params = array(
+		'limit' => 100,
+		'order' => 'nb_post DESC'
+		);
+	$rs = $core->getUsers($params);
+	while ($rs->fetch())
+	{
+		$usersList .= ($usersList != '' ? ',' : '').'"'.$rs->user_id.'"';
+	}
+}
+dcPage::open(
+	__('Entries'),
+	'<script type="text/javascript">'."\n".
+	"//<![CDATA[\n".
+	'usersList = ['.$usersList.']'."\n".
+	"\n//]]>\n".
+	"</script>\n".
+	dcPage::jsLoad('js/jquery/jquery.autocomplete.js').
+	dcPage::jsLoad('js/_posts_actions.js').
+	dcPage::jsMetaEditor().
+	# --BEHAVIOR-- adminBeforePostDelete
+	$core->callBehavior('adminPostsActionsHeaders')
+);
+
+if (!isset($action)) {
+	dcPage::close();
+	exit;
+}
+
+if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false)
+{
+	$fields->addHidden(array('redir'),html::escapeURL($_POST['redir']));
+}
+else
+{
+	$fields
+		->addHidden(array('user_id'),$_POST['user_id'])
+		->addHidden(array('cat_id'),$_POST['cat_id'])
+		->addHidden(array('status'),$_POST['status'])
+		->addHidden(array('selected'),$_POST['selected'])
+		->addHidden(array('month'),$_POST['month'])
+		->addHidden(array('lang'),$_POST['lang'])
+		->addHidden(array('sortby'),$_POST['sortby'])
+		->addHidden(array('order'),$_POST['order'])
+		->addHidden(array('page'),$_POST['page'])
+		->addHidden(array('nb'),$_POST['nb'])
+	;
+}
+
+if (isset($_POST['post_type'])) {
+	$fields->addHidden(array('post_type'),$_POST['post_type']);
+}
+
+# --BEHAVIOR-- adminPostsActionsContent
+$core->callBehavior('adminPostsActionsContent',$core,$action,$fields);
+
+if ($action == 'category')
+{
+	echo dcPage::breadcrumb(
+		array(
+			html::escapeHTML($core->blog->name) => '',
+			__('Entries') => 'posts.php',
+			'<span class="page-title">'.__('Change category for this selection').'</span>' => ''
+	));
+	
+	echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>';
+
+	# categories list
+	# Getting categories
+	$categories_combo = dcAdminCombos::getCategoriesCombo(
+		$core->blog->getCategories(array('post_type'=>'post'))
+	);
+	
+	echo
+	'<form action="posts_actions.php" method="post">'.
+	$fields->getEntries().
+	'<p><label for="new_cat_id" class="classic">'.__('Category:').'</label> '.
+	form::combo('new_cat_id',$categories_combo,'');
+	
+	if ($core->auth->check('categories', $core->blog->id)) {
+		echo 
+		'<div>'.
+		'<p id="new_cat">'.__('Create a new category for the post(s)').'</p>'.
+		'<p><label for="new_cat_title">'.__('Title:').'</label> '.
+		form::field('new_cat_title',30,255,'','').'</p>'.
+		'<p><label for="new_cat_parent">'.__('Parent:').'</label> '.
+		form::combo('new_cat_parent',$categories_combo,'','').
+		'</p>'.
+		'</div>';
+	}
+	
+	echo
+	$fields->getHidden().
+	$core->formNonce().
+	form::hidden(array('action'),'category').
+	'<input type="submit" value="'.__('Save').'" /></p>'.
+	'</form>';
+}
+elseif ($action == 'lang')
+{
+	echo dcPage::breadcrumb(
+		array(
+			html::escapeHTML($core->blog->name) => '',
+			__('Entries') => 'posts.php',
+			'<span class="page-title">'.__('Change language for this selection').'</span>' => ''
+	));
+	echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>';
+
+	# lang list
+	# Languages combo
+	$rs = $core->blog->getLangs(array('order'=>'asc'));
+	$lang_combo = dcAdminCombos::getLangsCombo($rs,true);
+	
+	echo
+	'<form action="posts_actions.php" method="post">'.
+	$fields->getEntries().
+	
+	'<p><label for="new_lang" class="classic">'.__('Entry lang:').'</label> '.
+	form::combo('new_lang',$lang_combo,'');
+	
+	echo
+	$fields->getHidden().
+	$core->formNonce().
+	form::hidden(array('action'),'lang').
+	'<input type="submit" value="'.__('Save').'" /></p>'.
+	'</form>';
+
+}
+elseif ($action == 'author' && $core->auth->check('admin',$core->blog->id))
+{
+	echo dcPage::breadcrumb(
+		array(
+			html::escapeHTML($core->blog->name) => '',
+			__('Entries') => 'posts.php',
+			'<span class="page-title">'.__('Change author for this selection').'</span>' => ''
+	));
+	echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>';
+
+	echo
+	'<form action="posts_actions.php" method="post">'.
+	$fields->getEntries().
+	'<p><label for="new_auth_id" class="classic">'.__('New author (author ID):').'</label> '.
+	form::field('new_auth_id',20,255);
+	
+	echo
+	$fields->getHidden().
+	$core->formNonce().
+	form::hidden(array('action'),'author').
+	'<input type="submit" value="'.__('Save').'" /></p>'.
+	'</form>';
+}
+
+dcPage::close();
 ?>
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 1793)
+++ admin/style/default.css	(revision 1801)
@@ -376,4 +376,7 @@
 	cursor: help;
 	}
+input, textarea, select, option, optgroup, legend,label {
+	font-size: 1em;
+	}
 /* ------------------------------------------------------------------ liens */
 a, a:link, a:visited {
@@ -398,5 +401,5 @@
 fieldset {
 	display: block;
-	margin: 0 0 1em 0;
+	margin: 1em 0;
 	padding: 1em 0.5em;
 	border-width: 1px 0;
@@ -405,5 +408,5 @@
 	background: #f7f7f7;
 	}
-input, textarea, select, option, optgroup, legend {
+input[type=text], textarea {
 	font: 100% "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
 	}
@@ -467,5 +470,5 @@
 	input[type=checkbox], input[type=radio], input[type=file] {
 		border: none;
-		margin: 0;
+		margin: 0 .33em 0 0;
 		padding: 0;
 		background: transparent;
@@ -508,12 +511,9 @@
 	}
 	p.field label {
-		display: block;
+		display: inline-block;
 		width: 14em;
 		}
 	p.field input, p.field select {
-		display: inline;
-		position: absolute;
-		left: 14.5em;
-		top: 0;
+		display: inline-block;
 		}
 a.form-control {
@@ -556,5 +556,5 @@
 	line-height: normal !important;
 	display: inline-block;
-	vertical-align: top;
+	vertical-align: middle;
 	font-size: 12px; /* ie < 9 sucks */
 	font-size: 1.2rem;
@@ -573,53 +573,52 @@
 input[type=submit], a.button.submit {
 	color: #fff;
-	background-color:#25A6E1;
-	border-color: #2C8FD1;
+	border: 1px solid #2C8FD1;
 	background:-moz-linear-gradient(top,#25A6E1 0%,#188BC0 100%);
 	background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#25A6E1),color-stop(100%,#188BC0));
 	background:linear-gradient(top,#25A6E1 0%,#188BC0 100%);
-	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#25A6E1',endColorstr='#188BC0',GradientType=0);
+	background-color:#25A6E1;
 	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
 	}
 	input[type=submit]:hover, input[type=submit]:focus,
 	a.button.submit:hover, a.button.submit:focus {
-		background:#188BC0;
 		background:-moz-linear-gradient(top,#188BC0 0%,#25A6E1 100%);
 		background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#188BC0),color-stop(100%,#25A6E1));
 		background:linear-gradient(top,#188BC0 0%,#25A6E1 100%);
-		filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#25A6E1',endColorstr='#25A6E1',GradientType=0);
-		}
-/* suppression, reset, "neutres" */
-input[type=reset], input[type=delete], input[type=submit].delete, input[type=submit].reset, input[type=button],
-input.delete, input.reset, input.button,
-a.delete, a.reset, a.button {
+		background-color:#188BC0;
+		}
+/* suppression, reset, "neutres" fond gris */
+button, input[type=button], input.button,
+input[type=reset], input[type=submit].reset, input.reset, 
+input[type=submit].delete, input.delete,
+a.button.delete, a.button.reset, a.button {
 	color: #000;
-	background-color: #f5f5f5;
 	background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf));
 	background: -moz-linear-gradient(top,  #f5f5f5,  #dfdfdf);
+	background-color: #eee;
 	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
 	}
-	input[type=reset]:hover, input[type=delete]:hover, input[type=button]:hover,
-	input[type=submit].delete:hover,
-	input.delete:hover, input.reset:hover, input.button:hover,
-	a.delete:hover, a.reset:hover, a.button:hover,
-	input[type=reset]:focus, input[type=delete]:focus, input[type=button]:focus,
-	input[type=submit].delete:focus,
-	input.delete:focus, input.reset:focus, input.button:focus,
-	a.delete:focus, a.reset:focus, a.button:focus {
-		background-color:#e9e9e9;
+	button:hover, input[type=button]:hover, input.button:hover,
+	button:focus, input[type=button]:focus, input.button:focus,
+	input[type=reset]:hover, input[type=submit].reset:hover, input.reset:hover, 
+	input[type=reset]:focus, input[type=submit].reset:focus, input.reset:focus, 
+	input[type=submit].delete:hover, input.delete:hover,
+	input[type=submit].delete:focus, input.delete:focus,
+	a.button.delete:hover, a.button.reset:hover, a.button:hover,
+	a.button.delete:focus, a.button.reset:focus, a.button:focus {
 		background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) );
 		background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% );
-		filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9');
-		}
-	a.delete, input[type=delete], input.delete {
+		background-color:#f3f3f3;
+		}
+	/* suppression */
+	input[type=submit].delete, input.delete, a.button.delete {
 		border-color: #ccc;
 		color: #c00;
 		margin-left: 1em;
 		}
-	a.delete:first-child, input[type=delete]:first-child, input.delete:first-child {
+	a.delete:first-child, input.delete:first-child {
 		margin-left: 0;
 		}
-		a.delete:hover, input[type=delete]:hover, input.delete:hover,
-		a.delete:focus, input[type=delete]:focus, input.delete:focus {		
+	input[type=submit].delete:hover, input.delete:hover, a.button.delete:hover,
+	input[type=submit].delete:focus, input.delete:focus, a.button.delete:focus {
 			border-color: #c00;
 			}
@@ -663,7 +662,7 @@
 	border: 1px solid #CCC;
 	}
-	input.disabled:hover, input[type=submit].disabled {
+	input.disabled:hover, input[type=submit].disabled:hover {
 		color: #676e78;
-		background: #DFDFDF;
+		background: #eee;
 		border: 1px solid #CCC;
 		}
@@ -748,4 +747,5 @@
 	.dc-update p {
 		display: inline-block;
+		vertical-align: middle;
 		}
 	.dc-update a {
@@ -980,6 +980,7 @@
 /* ----------------------------------------------------------------- CONTENT ELEMENTS */
 .part-tabs ul {
-	padding: .5em 0 .3em 1em;
+	padding: .5em 0 0 1em;
 	border-bottom: 1px solid #ddd;
+	line-height: 2;
 	}
 	.part-tabs li {
@@ -996,4 +997,5 @@
 			color: #333;
 			background-color: #ecf0f1;
+			display: inline-block;
 			}
 		.part-tabs li a:hover, .part-tabs li a:focus {
@@ -1006,7 +1008,5 @@
 			font-weight: bold;
 			border-bottom-color: #fff;
-			padding-bottom: 7px; /* ie < 9 sucks */
-			padding-bottom: .7rem;
-		}
+			}
 	.multi-part {
 		padding-left: 1em;
@@ -1079,4 +1079,18 @@
 			margin: 0.3em 0 1.5em 0;
 			}
+/* 1. inside help block */
+#helplink p {
+	padding: 0 0 0 .5em;
+	}
+/* 2. in footer */
+span.helplink {
+	display: block;
+	float: left;
+	padding: 0 1.5em 0 30px;
+	background: transparent url(../images/page_help.png) no-repeat 6px center;
+	}
+span.helplink a {
+	border-bottom: 1px solid #2373A8;
+	}
 /* ------------------------------------------------------------------ FOOTER ELEMENTS */
 #footer p {
@@ -1356,5 +1370,5 @@
 		}
 		.box.small {
-			width: 300px;
+			width: 280px;
 			}
 		.box.large {
@@ -1815,5 +1829,4 @@
 		cursor: default;
 		display: block;
-		font: menu;
 		font-size: 1em;
 		line-height: 16px;
@@ -2034,18 +2047,4 @@
 	display: block;
 	}
-
-
-/* 
-				tests dashboard 
-
-#content {width: auto;float:none !important; margin: 0;}
-#main {width: auto; display:inline-block; vertical-align: top; margin: 0;float: none !important}
-#main-menu {clear:both; width: auto}
-#main-menu {margin-top: 8em}
-#favorites-menu {display:none;}
-#plugins-menu, #blog-menu, #system-menu, #dashboard-items {display: inline-block;vertical-align: top; min-width: 17em; margin: 0; clear: none;}
-
-*/
-
 /* ------------------------------------------------------------------------------------
 															UN POIL DE MEDIA QUERIES
@@ -2077,5 +2076,5 @@
 		#info-box1 select { width: 140px; width: 14rem; }
 	#main-menu, #main, #content, #content h2, #entry-wrapper, #entry-sidebar, #entry-content, 
-	.col, .col30, .col70 {
+	.two-cols .col, .three-cols .col, .two-cols .col30, .two-cols .col70, .two-boxes, .three-boxes {
 		display:block !important;
     	width: 98% !important;
@@ -2120,20 +2119,2 @@
 	#info-box1 p.nomobile, label.nomobile { display: none; }
 	}
-
-/* Globalhelp */
-
-/* 1. inside help block */
-#helplink p {
-	padding: 0 0 0 .5em;
-}
-
-/* 2. in footer */
-span.helplink {
-	display: block;
-	float: left;
-	padding: 0 1.5em 0 30px;
-	background: transparent url(../images/page_help.png) no-repeat 6px center;
-}
-span.helplink a {
-	border-bottom: 1px solid #2373A8;
-}
Index: nc/admin/actions/class.dcaction.php
===================================================================
--- inc/admin/actions/class.dcaction.php	(revision 1807)
+++ 	(revision )
@@ -1,314 +1,0 @@
-<?php
-# -- BEGIN LICENSE BLOCK ---------------------------------------
-#
-# This file is part of 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_RC_PATH')) { return; }
-
-/**
-* dcActionsPage -- handler for action page on selected entries
-*
-*/
-abstract class dcActionsPage
-{
-	/** @var string form submit uri */
-	protected $uri;
-	/** @var dcCore dotclear core instance */
-	protected $core;
-	/** @var array action combo box */
-	protected $combo;
-	/** @var array list of defined actions (callbacks) */
-	protected $actions;
-	/** @var array selected entries (each key is the entry id, value contains the entry description) */
-	protected $entries;
-	/** @var record record that challenges ids against permissions */
-	protected $rs;
-	/** @var array redirection $_GET arguments, if any (does not contain ids by default, ids may be merged to it) */
-	protected $redir_args;
-	/** @var array list of $_POST fields used to build the redirection  */
-	protected $redirect_fields;
-	/** @var string current action, if any */
-	protected $action;
-	/** @var array list of url parameters (usually $_POST) */
-	protected $from;
-	
-	/** @var string title for checkboxes list, if displayed */
-	protected $cb_title;
-	
-    /**
-     * Class constructor
-     * 
-     * @param mixed  $core   dotclear core
-     * @param mixed  $uri   form uri
-     *
-     * @access public
-     *
-     * @return mixed Value.
-     */
-	public function __construct($core,$uri) {
-		$this->core = $core;
-		$this->actions = new ArrayObject();
-		$this->combo = array();
-		$this->uri = $uri;
-		$this->redir_args = array();
-		$this->redirect_fields = array();
-		$this->action = '';
-		$this->cb_title = __('Title');
-		$this->from = new ArrayObject($_POST);
-	}
-	
-    /**
-     * addAction - adds an action
-     *
-     * @param string $actions the actions names as if it was a standalone combo array.
-	 * 						  It will be merged with other actions.
-	 * 						  Can be bound to multiple values, if the same callback is to be called
-     * @param callback $callback the callback for the action.
-     *
-     * @access public
-	 *
-     * @return dcActionsPage the actions page itself, enabling to chain addAction().
-     */
-	public function addAction ($actions,$callback) {
-		foreach ($actions as $k => $a) {
-			// Check each case of combo definition
-			// Store form values in $values
-			if (is_array($a)) {
-				$values = array_values($a);
-				if (!isset($this->combo[$k])) {
-					$this->combo[$k]=array();
-				}
-				$this->combo[$k] = array_merge ($this->combo[$k],$a);
-			} elseif ($a instanceof formSelectOption) {
-				$values = $a->value;
-				$this->combo[$k] = $a->value;
-			} else {
-				$values = $a;
-				$this->combo[$k] = $a;
-			}
-			// Associate each potential value to the callback
-			foreach ($values as $v) {
-				$this->actions[$v]=$callback;
-			}
-		}
-		return $this;
-	}
-	
-    /**
-     * getCombo - returns the actions combo, useable through form::combo
-     *
-     * @access public
-	 *
-     * @return array the actions combo
-     */
-	public function getCombo() {
-		return $this->combo;
-	}
-	
-	
-    /**
-     * getIDS() - returns the list of selected entries
-     *
-     * @access public
-	 *
-     * @return array the list
-     */
-	public function getIDs() {
-		return array_keys($this->entries);
-	}
-	
-    /**
-     * getIDS() - returns the list of selected entries as HTML hidden fields string
-     *
-     * @access public
-	 *
-     * @return string the HTML code for hidden fields
-     */
-	 public function getIDsHidden() {
-		$ret = '';
-		foreach  ($this->entries as $id->$v) {
-			$ret .= form::hidden('entries[]',$id);
-		}
-		return $ret;
-	}
-	
-    /**
-     * getHiddenFields() - returns all redirection parameters as HTML hidden fields
-     *
-     * @param boolean $with_ids if true, also include ids in HTML code
-	 *
-     * @access public
-	 *
-     * @return string the HTML code for hidden fields
-     */	
-	public function getHiddenFields($with_ids = false) {
-		$ret = '';
-		foreach ($this->redir_args as $k => $v) {
-			$ret .= form::hidden(array($k),$v);
-		}
-		if ($with_ids) {
-			$ret .= $this->getIDsHidden();
-		}
-		return $ret;
-	}
-	
-	
-	/**
-     * getRS() - get record from DB Query containing requested IDs
-     *
-     * @param boolean $with_ids if true, also include ids in HTML code
-	 *
-     * @access public
-	 *
-     * @return string the HTML code for hidden fields
-     */
-	public function getRS() {
-		return $this->rs;
-	}
-	
-	/**
-     * setupRedir - setup redirection arguments
-	 *  by default, $_POST fields as defined in redirect_fields attributes
-	 *  are set into redirect_args.
-     *
-     * @param array $from input to parse fields from (usually $_POST)
-	 *
-     * @access protected
-     */
-	protected function setupRedir($from) {
-		foreach ($this->redirect_fields as $p) {
-			if (isset($from[$p])) {
-				$redir_args[$p] = $from[$p];
-			}
-		}
-	}
-
-	/**
-     * getRedirection - returns redirection URL
-     *
-     * @param array $params extra parameters to append to redirection
-	 *						must be an array : each key is the name, 
-	 *						each value is the wanted value
-     * @param boolean $with_selected_entries if true, add selected entries in url
-	 *
-     * @access public
-	 *
-     * @return string the redirection url
-     */
-	public function getRedirection($params=array(),$with_selected_entries=false) {
-		$redir_args = array_merge($params,$this->redir_args);
-		if ($with_selected_entries) {
-			$redir_args['entries'] = array_keys($this->entries);
-		}
-		return $this->uri.'?'.http_build_query($redir_args);
-	}
-
-	/**
-     * redirect - redirects to redirection page
-     *
-	 * @see getRedirection for arguments details
-	 *
-     * @access public
-     */
-	public function redirect($params=array(),$with_selected_entries=false) {
-		http::redirect($this->getRedirection($params,$with_selected_entries));
-	}	
-	
-	/**
-     * getAction - returns current action, if any
-     *
-	 * @see getRedirection for arguments details
-	 *
-     * @access public
-	 *
-     * @return string the action
-     */
-	public function getAction() {
-		return $this->action;
-	}
-
-	/**
-     * process - proceeds action handling, if any
-	 * 			this method may issue an exit() if
-	 *			an action is being processed. If it
-	 *			returns, no action has been performed
-     *
-     * @access public
-     */
-	public function process() {
-
-		$this->setupRedir($this->from);
-		$this->fetchEntries($this->from);	
-		if (isset($this->from['action'])) {
-			$this->action = $this->from['action'];
-			try {
-				$performed=false;
-				foreach ($this->actions as $k=>$v) {
-					if ($this->from['action']==$k) {
-						$performed = true;
-						call_user_func($v,$this->core,$this,$this->from);
-					}
-				}
-				if ($performed) {
-					exit;
-				}
-			} catch (Exception $e) {
-				$this->error($e);
-			}
-		}
-	}
-
-	/**
-     * getcheckboxes -returns html code for selected entries
-	 * 			as a table containing entries checkboxes
-     *
-     * @access public
-	 *
-     * @return string the html code for checkboxes
-     */
-	public function getCheckboxes() {
-		$ret = 
-			'<table class="posts-list"><tr>'.
-			'<th colspan="2">'.$this->cb_title.'</th>'.
-			'</tr>';
-		foreach ($this->entries as $id=>$title) {
-			$ret .= 
-				'<tr><td>'.
-				form::checkbox(array('entries[]'),$id,true,'','').'</td>'.
-				'<td>'.	$title.'</td></tr>';
-		}
-		$ret .= '</table>';
-		return $ret;
-	}
-	
-	/**
-     * beginPage, endPage - displays the beginning/ending of a page, if action does not redirects dirtectly
-     *
-	 * These methods are called from the actions themselves.
-	 *
-     * @param string $breadcrumb breadcrumb to display
-     * @param string $head	page header to include
-	 *
-     * @access public
-     */
-	abstract public function beginPage($breadcrumb='',$head='');
-	abstract public function endPage();
-
-	/**
-     * fetchEntries - fills-in information by requesting into db
-	 * 	this method may setup the following attributes
-	 *   * entries : list of entries (checked against permissions)
-	 *      entries ids are array keys, values contain entry description (if relevant)
-     *   * rs : record given by db request
-     * @access protected
-     */
-	 abstract protected function fetchEntries($from);
-
-}
-
Index: nc/admin/actions/class.dcactionposts.php
===================================================================
--- inc/admin/actions/class.dcactionposts.php	(revision 1808)
+++ 	(revision )
@@ -1,358 +1,0 @@
-<?php
-# -- BEGIN LICENSE BLOCK ---------------------------------------
-#
-# This file is part of 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_RC_PATH')) { return; }
-
-class dcPostsActionsPage extends dcActionsPage
-{
-	public function __construct($core,$uri) {
-		parent::__construct($core,$uri);
-		$this->redirect_fields = array('user_id','cat_id','status',
-		'selected','month','lang','sortby','order','page','nb');
-		// We could have added a behavior here, but we want default action
-		// to be setup first
-		dcDefaultPostActions::adminPostsActionsPage($core,$this);
-		$core->callBehavior('adminPostsActionsPage',$core,$this);
-
-	}
-
-	public function beginPage($breadcrumb='',$head='') {
-		dcPage::open(
-			__('Entries'),
-			
-			dcPage::jsLoad('js/_posts_actions.js').
-			$head,
-			$breadcrumb
-		);	
-		echo '<p><a class="back" href="'.$this->getRedirection(array(),true).'">'.__('Back to entries list').'</a></p>';
-	}
-	
-	public function endPage() {
-		dcPage::close();
-	}
-	
-	public function error(Exception $e) {
-		$this->core->error->add($e->getMessage());
-		$this->beginPage(dcPage::breadcrumb(
-			array(
-				html::escapeHTML($this->core->blog->name) => '',
-				__('Entries') => 'posts.php',
-				'<span class="page-title">'.__('Entries actions').'</span>' => ''
-			))
-		);
-		$this->endPage();
-	}
-	
-	protected function fetchEntries($from) {
-		if (!empty($from['entries']))
-		{
-			$entries = $from['entries'];
-			
-			foreach ($entries as $k => $v) {
-				$entries[$k] = (integer) $v;
-			}
-			
-			$params['sql'] = 'AND P.post_id IN('.implode(',',$entries).') ';
-			
-			if (!isset($from['full_content']) || empty($from['full_content'])) {
-				$params['no_content'] = true;
-			}
-			
-			if (isset($from['post_type'])) {
-				$params['post_type'] = $from['post_type'];
-			}
-			
-			$posts = $this->core->blog->getPosts($params);
-			while ($posts->fetch())	{
-				$this->entries[$posts->post_id] = $posts->post_title;
-			}
-			$this->rs = $posts;			
-		} else {
-			$this->rs = $this->core->con->select("SELECT blog_id FROM ".$this->core->prefix."blog WHERE false");;
-		}
-	}
-}
-
-class dcDefaultPostActions 
-{
-	public static function adminPostsActionsPage($core, dcPostsActionsPage $ap) {
-		if ($core->auth->check('publish,contentadmin',$core->blog->id)) {
-			$ap->addAction(
-				array(__('Status') => array(
-					__('Publish') => 'publish',
-					__('Unpublish') => 'unpublish',
-					__('Schedule') => 'schedule',
-					__('Mark as pending') => 'pending'
-				)),
-				array('dcDefaultPostActions','doChangePostStatus')
-			);
-		}
-		$ap->addAction(
-			array(__('Mark')=> array(
-				__('Mark as selected') => 'selected',
-				__('Mark as unselected') => 'unselected'
-			)),
-			array('dcDefaultPostActions','doUpdateSelectedPost')
-		);
-		$ap->addAction(
-			array(__('Change') => array(
-				__('Change category') => 'category',
-			)),
-			array('dcDefaultPostActions','doChangePostCategory')
-		);
-		$ap->addAction(
-			array(__('Change') => array(
-				__('Change language') => 'lang',
-			)),
-			array('dcDefaultPostActions','doChangePostLang')
-		);
-		if ($core->auth->check('admin',$core->blog->id))
-		{
-			$ap->addAction(
-				array(__('Change') => array(
-					__('Change author') => 'author')),
-				array('dcDefaultPostActions','doChangePostAuthor')
-			);
-		}
-		if ($core->auth->check('delete,contentadmin',$core->blog->id)) {
-			$ap->addAction(
-				array(__('Delete') => array(
-					__('Delete') => 'delete')),
-				array('dcDefaultPostActions','doDeletePost')
-			);
-		}
-	}
-
-	public static function doChangePostStatus($core, dcPostsActionsPage $ap, $post) {
-		switch ($ap->getAction()) {
-			case 'unpublish' : $status = 0; break;
-			case 'schedule' : $status = -1; break;
-			case 'pending' : $status = -2; break;
-			default : $status = 1; break;
-		}
-		$posts_ids = $ap->getIDs();
-		if (empty($posts_ids)) {
-			throw new Exception(__('No entry selected'));
-		}
-		$core->blog->updPostsStatus($posts_ids,$status);
-		
-		$ap->redirect(array('upd' => 1),true);
-	}
-	
-	public static function doUpdateSelectedPost($core, dcPostsActionsPage $ap, $post) {
-		$posts_ids = $ap->getIDs();
-		if (empty($posts_ids)) {
-			throw new Exception(__('No entry selected'));
-		}
-		$action = $ap->getAction();
-		$core->blog->updPostsSelected($posts_ids,$action == 'selected');
-		
-		$ap->redirect(array('upd' => 1),true);
-	}
-	
-	public static function doDeletePost($core, dcPostsActionsPage $ap, $post) {
-
-		$posts_ids = $ap->getIDs();
-		if (empty($posts_ids)) {
-			throw new Exception(__('No entry selected'));
-		}
-		// Backward compatibility
-		foreach($posts_ids as $post_id)
-		{
-			# --BEHAVIOR-- adminBeforePostDelete
-			$core->callBehavior('adminBeforePostDelete',(integer) $post_id);
-		}
-		
-		# --BEHAVIOR-- adminBeforePostsDelete
-		$core->callBehavior('adminBeforePostsDelete',$posts_ids);
-		
-		$core->blog->delPosts($posts_ids);
-		
-		$ap->redirect(array('del',1),false);
-	}
-
-	public static function doChangePostCategory($core, dcPostsActionsPage $ap, $post) {
-		if (isset($post['new_cat_id'])) {
-			$posts_ids = $ap->getIDs();
-			if (empty($posts_ids)) {
-				throw new Exception(__('No entry selected'));
-			}
-			$new_cat_id = $post['new_cat_id'];
-			if (!empty($post['new_cat_title']) && $core->auth->check('categories', $core->blog->id))
-			{
-				$cur_cat = $core->con->openCursor($core->prefix.'category');
-				$cur_cat->cat_title = $post['new_cat_title'];
-				$cur_cat->cat_url = '';
-				
-				$parent_cat = !empty($post['new_cat_parent']) ? $post['new_cat_parent'] : '';
-				
-				# --BEHAVIOR-- adminBeforeCategoryCreate
-				$core->callBehavior('adminBeforeCategoryCreate', $cur_cat);
-				
-				$new_cat_id = $core->blog->addCategory($cur_cat, (integer) $parent_cat);
-				
-				# --BEHAVIOR-- adminAfterCategoryCreate
-				$core->callBehavior('adminAfterCategoryCreate', $cur_cat, $new_cat_id);
-			}
-			
-			$core->blog->updPostsCategory($posts_ids, $new_cat_id);
-			
-			$ap->redirect(array('upd'=>1),true);
-		} else {
-			$ap->beginPage(
-				dcPage::breadcrumb(
-					array(
-						html::escapeHTML($core->blog->name) => '',
-						__('Entries') => 'posts.php',
-						'<span class="page-title">'.__('Change category for entries').'</span>' => ''
-			)));
-			
-			# categories list
-			# Getting categories
-			$categories_combo = dcAdminCombos::getCategoriesCombo(
-				$core->blog->getCategories(array('post_type'=>'post'))
-			);			
-			echo
-			'<form action="posts.php" method="post">'.
-			$ap->getCheckboxes().
-			'<p><label for="new_cat_id" class="classic">'.__('Category:').'</label> '.
-			form::combo('new_cat_id',$categories_combo,'');
-			
-			if ($core->auth->check('categories', $core->blog->id)) {
-				echo 
-				'<div>'.
-				'<p id="new_cat">'.__('Create a new category for the post(s)').'</p>'.
-				'<p><label for="new_cat_title">'.__('Title:').'</label> '.
-				form::field('new_cat_title',30,255,'','').'</p>'.
-				'<p><label for="new_cat_parent">'.__('Parent:').'</label> '.
-				form::combo('new_cat_parent',$categories_combo,'','').
-				'</p>'.
-				'</div>';
-			}
-			
-			echo
-			$core->formNonce().
-			form::hidden(array('action'),'category').
-			'<input type="submit" value="'.__('Save').'" /></p>'.
-			'</form>';
-			$ap->endPage();
-
-		}
-	
-	}
-	public static function doChangePostAuthor($core, dcPostsActionsPage $ap, $post) {
-		if (isset($post['new_auth_id']) && $core->auth->check('admin',$core->blog->id)) {
-			$new_user_id = $post['new_auth_id'];
-			$posts_ids = $ap->getIDs();
-			if (empty($posts_ids)) {
-				throw new Exception(__('No entry selected'));
-			}
-			if ($core->getUser($new_user_id)->isEmpty()) {
-				throw new Exception(__('This user does not exist'));
-			}
-			
-			$cur = $core->con->openCursor($core->prefix.'post');
-			$cur->user_id = $new_user_id;
-			$cur->update('WHERE post_id '.$core->con->in($posts_ids));
-			
-			$ap->redirect(array('upd' => 1),true);
-		} else {
-			$usersList = '';
-			if ($core->auth->check('admin',$core->blog->id)) {
-				$params = array(
-					'limit' => 100,
-					'order' => 'nb_post DESC'
-					);
-				$rs = $core->getUsers($params);
-				while ($rs->fetch())
-				{
-					$usersList .= ($usersList != '' ? ',' : '').'"'.$rs->user_id.'"';
-				}
-			}
-			$ap->beginPage(
-				dcPage::breadcrumb(
-					array(
-						html::escapeHTML($core->blog->name) => '',
-						__('Entries') => 'posts.php',
-						'<span class="page-title">'.__('Change author for entries').'</span>' => '')),
-					dcPage::jsLoad('js/jquery/jquery.autocomplete.js').
-					'<script type="text/javascript">'."\n".
-					"//<![CDATA[\n".
-					'usersList = ['.$usersList.']'."\n".
-					"\n//]]>\n".
-					"</script>\n"
-			);
-
-			echo
-			'<form action="posts_actions.php" method="post">'.
-			$ap->getCheckboxes().
-			'<p><label for="new_auth_id" class="classic">'.__('New author (author ID):').'</label> '.
-			form::field('new_auth_id',20,255);
-			
-			echo
-				$core->formNonce().
-				form::hidden(array('action'),'author').
-				'<input type="submit" value="'.__('Save').'" /></p>'.
-				'</form>';
-			$ap->endPage();
-		}
-	}
-	public static function doChangePostLang($core, dcPostsActionsPage $ap, $post) {
-		$posts_ids = $ap->getIDs();
-		if (empty($posts_ids)) {
-			throw new Exception(__('No entry selected'));
-		}
-		if (isset($post['new_lang'])) {
-			$new_lang = $post['new_lang'];
-			$cur = $core->con->openCursor($core->prefix.'post');
-			$cur->post_lang = $new_lang;
-			$cur->update('WHERE post_id '.$core->con->in($posts_ids));
-			
-			$ap->redirect(array('upd' => 1),true);
-		} else {
-			$ap->beginPage(
-				dcPage::breadcrumb(
-					array(
-						html::escapeHTML($core->blog->name) => '',
-						__('Entries') => 'posts.php',
-						'<span class="page-title">'.__('Change language for entries').'</span>' => ''
-			)));
-			# lang list
-			# Languages combo
-			$rs = $core->blog->getLangs(array('order'=>'asc'));
-			$all_langs = l10n::getISOcodes(0,1);
-			$lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1));
-			while ($rs->fetch()) {
-				if (isset($all_langs[$rs->post_lang])) {
-					$lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang;
-					unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]);
-				} else {
-					$lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang;
-				}
-			}
-			unset($all_langs);
-			unset($rs);
-			
-			echo
-			'<form action="posts_actions.php" method="post">'.
-			$ap->getCheckboxes().
-			
-			'<p><label for="new_lang" class="classic">'.__('Entry lang:').'</label> '.
-			form::combo('new_lang',$lang_combo,'');
-			
-			echo
-				$core->formNonce().
-				form::hidden(array('action'),'lang').
-				'<input type="submit" value="'.__('Save').'" /></p>'.
-				'</form>';
-		}
-	}
-}
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 1793)
+++ inc/admin/lib.dc.page.php	(revision 1809)
@@ -482,5 +482,6 @@
 	{
 		$mute_or_no = '';
-		if (!empty($GLOBALS['core']->blog->settings->system->jquery_migrate_mute)) {
+		if (!empty($GLOBALS['core']->blog->settings->system->jquery_migrate_mute) // for initial setting
+			|| $GLOBALS['core']->blog->settings->system->jquery_migrate_mute) {
 			$mute_or_no .=
 				'<script type="text/javascript">'."\n".
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 1806)
+++ inc/prepend.php	(revision 1719)
@@ -64,6 +64,4 @@
 $__autoload['context']				= dirname(__FILE__).'/public/lib.tpl.context.php';
 $__autoload['dcUrlHandlers']			= dirname(__FILE__).'/public/lib.urlhandlers.php';
-$__autoload['dcPostsActionsPage']			= dirname(__FILE__).'/admin/actions/class.dcactionposts.php';
-$__autoload['dcActionsPage']			= dirname(__FILE__).'/admin/actions/class.dcaction.php';
 
 # Clearbricks extensions
Index: ocales/fr/help/blowupConfig.html
===================================================================
--- locales/fr/help/blowupConfig.html	(revision 1588)
+++ 	(revision )
@@ -1,71 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>Configuration du thème Blowup</title>
-</head>
-
-<body>
-<p>En modifiant la configuration du thème Blowup, vous pouvez personnaliser votre
-thème très facilement. Pour cela, renseignez simplement les champs de configuration
-ou choisissez un style prédéfini.</p>
-
-<h4>Couleurs</h4>
-
-<p>Quand vous devez indiquer une valeur de couleur, celle-ci doit être au format
-hexadécimal. Par exemple&nbsp;: "#FF0000" donnera du rouge. Vous pouvez vous aider
-de la pipette à côté de chaque champ de couleur.</p>
-<p>Si vous manquez d'inspiration vous pouvez consulter&nbsp;:</p>
-<ul>
- <li><a href="http://fr.wikipedia.org/wiki/Liste_De_Couleurs">La liste des codes</a> (Wikipedia)</li>
- <li><a href="http://kuler.adobe.com/">Adobe Kuler</a></li>
- <li><a href="http://colorblender.com/">ColorBlender</a></li>
- <li><a href="http://www.colorcombos.com/">ColorCombos</a></li>
-</ul>
-
-<h4>Unités de mesure</h4>
-
-<p>Quand vous devez indiquer une taille, celle-ci doit être suivie d'une unité
-de mesure. Par exemple&nbsp;: "1em". Si vous n'indiquez aucune unité, la valeur
-donnée prendra des pixels comme unité par défaut.</p>
-<p>Les unités possibles sont&nbsp;:</p>
-<ul>
-  <li>px</li>
-  <li>em</li>
-  <li>ex</li>
-  <li>pt</li>
-  <li>%</li>
-</ul>
-
-<h4>Images d'en-tête</h4>
-
-<p>Vous pouvez choisir une image d'en-tête parmi une liste de nombreuses images
-afin de remplacer celle utilisée par défaut.</p>
-
-<p>En choisissant "Personnalisé..." parmi la liste d'images, vous pourrez
-déposer votre propre image. <strong>Celle-ci doit être au format JPG ou PNG et
-avoir une largeur exacte de 800 pixels.</strong></p>
-
-<p>Si vous déposez une image au format JPG, un cadre sera ajouté autours de
-l'image, ce qui n'est pas le cas avec une image au format PNG (dont la
-transparence sera également préservée).</p>
-
-<h4>Styles prédéfinis</h4>
-
-<p>Vous pouvez choisir un style prédéfini dans la liste d'option "Styles prédéfinis".
-Une fois le style choisi, vous devez valider le formulaire pour appliquer les
-changements.</p>
-
-<p>Vous pouvez ensuite modifier le style prédéfini comme bon vous semble.</p>
-
-<h4>Import / export de configuration</h4>
-
-<p>À la fin des options de Blowup, vous pouvez afficher une zone appelée "Import
-/ export de configuration". Dans cette zone de texte se trouve la configuration
-en cours d'utilisation. Vous pouvez la copier pour la partager avec d'autres.</p>
-
-<p>Pour appliquer (importer) une configuration, il suffit simplement de remplacer
-le contenu de la zone de texte par celui que vous voulez utiliser. N'oubliez pas
-de cliquer sur "appliquer le code".</p>
-
-</body>
-</html>
Index: ocales/fr/help/core_blog_pref.html
===================================================================
--- locales/fr/help/core_blog_pref.html	(revision 1573)
+++ 	(revision )
@@ -1,196 +1,0 @@
-<html>
-<head>
-  <title>Préférences du blog</title>
-</head>
-
-<body>
-
-<h4>Informations du blog</h4>
-<dl>
-  <dt>Identifiant du blog</dt>
-  <dd>Identifiant unique du blog. Obligatoire, ne peut être modifié que par un
-  super administrateur.</dd>
-  
-  <dt>Nom du blog</dt>
-  <dd>Nom du blog, obligatoire. Il peut être modifié à tout moment sans incidence sur
-  le fonctionnement du blog.</dd>
-  
-  <dt>URL du blog</dt>
-  <dd>URL complète du blog. Obligatoire, ne peut être modifiée que par un super
-  administrateur.</dd>
-  
-  <dt>Méthode de lecture de l'URL</dt>
-  <dd>Définit le mode de lecture de l'URL. PATH_INFO est conseillé, QUERY_STRING
-  doit être utilisé si le premier ne fonctionne pas. En mode PATH_INFO, l'URL du
-  blog doit se terminer par un "/" et en mode QUERY_STRING, par un "?".</dd>
-  
-  <dt>État du blog</dt>
-  <dd>
-    <ul>
-      <li><strong>en ligne</strong>&nbsp;: blog accessible aux visiteurs</li>
-      <li><strong>hors ligne</strong>&nbsp;: blog inaccessible aux visiteurs
-      mais les rédacteurs peuvent se connecter</li>
-      <li><strong>retiré</strong>&nbsp;: blog inaccessible aux visiteurs
-      comme aux rédacteurs, seuls les super-administrateurs peuvent y accéder</li>
-    </ul>
-  </dd>
-  
-  <dt>Description du blog</dt>
-  <dd>Texte libre de description du blog. Il s'agit d'un texte simple, sans
-  formatage quelconque.</dd>
-</dl>
-
-<h4>Configuration du blog</h4>
-<dl>
-  <dt>Nom de l'éditeur du blog</dt>
-  <dd>Nom de la personne responsable du contenu du blog. Peut être le propriétaire
-  ou le directeur de publication s'il existe. Cette information sera affichée dans les
-  informations du flux de syndication.</dd>
-  
-  <dt>Note de copyright</dt>
-  <dd>Note indiquant les droits de reproduction autorisés pour le blog.</dd>
-  
-  <dt>Langue par défaut</dt>
-  <dd>Langue de l'interface du blog. Si cette langue existe parmi les
-  traductions, l'interface sera traduite dans celle-ci, sinon elle apparaîtra
-  en anglais.</dd>
-  
-  <dt>Fuseau horaire du blog</dt>
-  <dd>Définit le fuseau horaire qui sera utilisé pour dater les commentaires et
-  trackbacks entrant sur le blog.</dd>
-
-  <dt>Interface XML/RPC</dt>
-  <dd>Permet à un client externe d'interagir avec votre blog via le protocole XML/RPC. À l'activation, 
-  les paramètres nécessaires au réglage du client externe sont affichés.</dd>
-    
-  <dt>Format des dates</dt>
-  <dd>Indique le format de la date d'un billet sur le blog. Voir la section
-  "formatage des dates" pour plus détails.</dd>
-  
-  <dt>Format des heures</dt>
-  <dd>Indique le format de l'heure d'un billet sur le blog. Voir la section
-  "formatage des dates" pour plus détails.</dd>
-  
-  <dt>Laisser les commentaires ouverts durant .. jours</dt>
-  <dd>Permet d'indiquer le nombre de jours durant lesquels les commentaires
-  sont possibles sur un billet après sa publication. Aucune valeur laissera
-  les commentaires toujours ouverts.</dd>
-  
-  <dt>Laisser les rétroliens ouverts durant .. jours</dt>
-  <dd>Permet d'indiquer le nombre de jours durant lesquels les rétroliens
-  sont possibles sur un billet après sa publication. Aucune valeur laissera
-  les rétroliens toujours ouverts.</dd>
-  
-  <dt>Accepter les commentaires</dt>
-  <dd>Accepter globalement les commentaires sur le blog. Ce paramètre est
-  supérieur à celui autorisant ou non les commentaires sur un billet.</dd>
-  
-  <dt>Accepter les rétroliens</dt>
-  <dd>Accepter globalement les rétroliens sur le blog. Ce paramètre est
-  supérieur à celui autorisant ou non les rétroliens sur un billet.</dd>
-  
-  <dt>Modérer les commentaires</dt>
-  <dd>Si cette option est activée, les commentaires ne seront publiés qu'après
-  l'approbation d'un rédacteur.</dd>
-  
-  <dt>Modérer les rétroliens</dt>
-  <dd>Si cette option est activée, les rétroliens ne seront publiés qu'après
-  l'approbation d'un rédacteur.</dd>
-  
-  <dt>Ajouter la relation "nofollow" aux liens des commentaires et rétroliens</dt>
-  <dd>Ajoute un attribut sur les liens des commentaires et rétroliens indiquant
-  aux robots des moteurs de recherche de ne pas les suivre. Cette mesure
-  est censée permettre de lutter contre le spam mais n'a pas encore vraiment
-  prouvé son efficacité.</dd>
-  
-  <dt>Syntaxe wiki pour les commentaires</dt>
-  <dd>Autoriser quelques éléments de la syntaxe wiki dans les commentaires.</dd>
-  
-  <dt>Afficher .. billets par page</dt>
-  <dd>Le nombre donné sera utilisé comme limite d'affichage des billets sur la
-  page d'accueil et la première page de chaque catégorie.</dd>
-  
-  <dt>Afficher des émoticônes dans les billets et commentaires</dt>
-  <dd>Remplacer certaines suites de caractères comme :-) ou ;-) par des images.</dd>
-  
-  <dt>Afficher .. billets par flux de syndication</dt>
-  <dd>Le nombre donné sera utilisé comme limite d'affichage des billets dans
-  les flux de syndication.</dd>
-  
-  <dt>Afficher .. commentaires par flux de syndication</dt>
-  <dd>Le nombre donné sera utilisé comme limite d'affichage des commentaires dans
-  les flux de syndication.</dd>
-  
-  <dt>Tronquer le flux de syndication</dt>
-  <dd>Cette option permet de ne fournir qu'un extrait des billets dans les flux
-  de syndication.</dd>
-</dl>
-
-<h4>Formatage des dates</h4>
-<p>Certains champs permettent de formater les dates avec des caractères
-particuliers dont voici la définition&nbsp;:</p>
-
-<ul>
-  <li><strong>%a</strong>&nbsp;: nom abrégé du jour de la semaine (local).</li>
-  <li><strong>%A</strong>&nbsp;: nom complet du jour de la semaine (local).</li>
-  <li><strong>%b</strong>&nbsp;: nom abrégé du mois (local).</li>
-  <li><strong>%B</strong>&nbsp;: nom complet du mois (local).</li>
-  <li><strong>%c</strong>&nbsp;: représentation préférée pour les dates et
-  heures, en local.</li>
-  <li><strong>%C</strong>&nbsp;: numéro de siècle (l'année, divisée par 100 et
-  arrondie entre 00 et 99)</li>
-  <li><strong>%d</strong>&nbsp;: jour du mois en numérique (intervalle 01 à
-  31)</li>
-  <li><strong>%D</strong>&nbsp;: identique à %m/%d/%y</li>
-  <li><strong>%e</strong>&nbsp;: numéro du jour du mois. Les chiffres sont
-  précédés d'un espace (de ' 1' à '31')</li>
-  <li><strong>%g</strong>&nbsp;: identique à %G, sur 2 chiffres.</li>
-  <li><strong>%G</strong>&nbsp;: L'année sur 4 chiffres correspondant au numéro
-  de semaine (voir %V). Même format et valeur que %Y, excepté que si le numéro
-  de la semaine appartient à l'année précédente ou suivante, l'année courante
-  sera utilisé à la place.</li>
-  <li><strong>%h</strong>&nbsp;: identique à %b</li>
-  <li><strong>%H</strong>&nbsp;: heure de la journée en numérique, et sur
-  24-heures (intervalle de 00 à 23)</li>
-  <li><strong>%I</strong>&nbsp;: heure de la journée en numérique, et sur 12-
-  heures (intervalle 01 à 12)</li>
-  <li><strong>%j</strong>&nbsp;: jour de l'année, en numérique (intervalle 001 à
-  366)</li>
-  <li><strong>%m</strong>&nbsp;: mois en numérique (intervalle 1 à 12)</li>
-  <li><strong>%M</strong>&nbsp;: minute en numérique</li>
-  <li><strong>%n</strong>&nbsp;: newline character</li>
-  <li><strong>%p</strong>&nbsp;: soit `am' ou `pm' en fonction de l'heure
-  absolue, ou en fonction des valeurs enregistrées en local.</li>
-  <li><strong>%r</strong>&nbsp;: l'heure au format a.m. et p.m.</li>
-  <li><strong>%R</strong>&nbsp;: l'heure au format 24h</li>
-  <li><strong>%S</strong>&nbsp;: secondes en numérique</li>
-  <li><strong>%t</strong>&nbsp;: tabulation</li>
-  <li><strong>%T</strong>&nbsp;: l'heure actuelle (égal à %H:%M:%S)</li>
-  <li><strong>%u</strong>&nbsp;: le numéro de jour dans la semaine, de 1 à 7. (1
-  représente Lundi)</li>
-  <li><strong>%U</strong>&nbsp;: numéro de semaine dans l'année, en considérant
-  le premier dimanche de l'année comme le premier jour de la première
-  semaine.</li>
-  <li><strong>%V</strong>&nbsp;: le numéro de semaine comme défini dans l'ISO
-  8601:1988, sous forme décimale, de 01 à 53. La semaine 1 est la première
-  semaine qui a plus de 4 jours dans l'année courante, et dont Lundi est le
-  premier jour. (Utilisez %G ou %g pour les éléments de l'année qui
-  correspondent au numéro de la semaine pour le timestamp donné.)</li>
-  <li><strong>%W</strong>&nbsp;: numéro de semaine dans l'année, en considérant
-  le premier lundi de l'année comme le premier jour de la première semaine</li>
-  <li><strong>%w</strong>&nbsp;: jour de la semaine, numérique, avec Dimanche =
-  0</li>
-  <li><strong>%x</strong>&nbsp;: format préféré de représentation de la date
-  sans l'heure</li>
-  <li><strong>%X</strong>&nbsp;: format préféré de représentation de l'heure
-  sans la date</li>
-  <li><strong>%y</strong>&nbsp;: l'année, numérique, sur deux chiffres (de 00 à
-  99)</li>
-  <li><strong>%Y</strong>&nbsp;: l'année, numérique, sur quatre chiffres</li>
-  <li><strong>%Z ou %z</strong>&nbsp;: fuseau horaire, ou nom ou
-  abréviation</li>
-  <li><strong>%%</strong>&nbsp;: un caractère `%' littéral</li>
-</ul>
-
-</body>
-</html>
Index: ocales/fr/help/core_categories.html
===================================================================
--- locales/fr/help/core_categories.html	(revision 1573)
+++ 	(revision )
@@ -1,50 +1,0 @@
-<html>
-<head>
-  <title>Catégories</title>
-</head>
-
-<body>
-<h4>Liste des categories</h4>
-<dl>
-  <dt>Créer une nouvelle catégorie</dt>
-  <dd>Choisissez le nom que vous souhaitez donner à votre nouvelle catégorie
-  puis cliquer sur Enregistrer pour valider sa création. Vous pouvez choisir 
-  sa catégorie parente ou la laisser au premier niveau. Pour modifier la catégorie, 
-  cliquez sur son nom dans la liste.</dd>
-  
-  <dt>Supprimer une catégorie</dt>
-  <dd>Choisissez la catégorie que vous voulez supprimer et cliquez sur ok.
-  Une catégorie ne peut être supprimée que si elle ne contient aucun billet.</dd>
-  
-  <dt>Réordonner les catégories</dt>
-  <dd>Utilisez cette option pour placer toutes les catégories au même niveau.
-  Si vous voulez modifier l'ordre des catégories plus précisément, cliquez sur le nom de chacune d'entre elles 
-  et choisissez sa catégorie parente ou sa position par rapport à ses voisines.</dd>
-</dl>
-
-<h4>Modifier une catégorie</h4>
-<dl>
-  <dt>Titre</dt>
-  <dd>Choisissez le nom que vous souhaitez donner à votre nouvelle catégorie
-  puis cliquer sur Enregistrer pour valider sa création.</dd>
-  
-  <dt>URL</dt>
-  <dd>DotClear crée une url par défaut de la catégorie, qui sera ainsi
-  accessible avec un chemin de la forme
-  <strong>http://monblog.tld/category/Ma-categorie</strong>. En cliquant sur le
-  petit verrou situé à la droite, vous pouvez la modifier comme il vous
-  plaira.</dd>
-  
-  <dt>Description</dt>
-  <dd>Le contenu de ce champ de description sera affiché lors de la sélection
-  d'une catégorie dans le blog. Vous pouvez le remplir avec toute forme de
-  contenu (paragraphes, listes, etc.) Le format du texte de la description est
-  HTML.</dd>
-  
-  <dt>Déplacer cette catégorie</dt>
-  <dd>Vous pouvez déplacer la catégorie dans n'importe quelle autre, qui deviendra sa parente. 
-  Vous pouvez aussi spécifier sa position par rapport à ses voisines en la plaçant avant ou après l'une d'elles.</dd>
-</dl>
-
-</body>
-</html>
Index: ocales/fr/help/core_comments.html
===================================================================
--- locales/fr/help/core_comments.html	(revision 1573)
+++ 	(revision )
@@ -1,59 +1,0 @@
-<html>
-<head>
-  <title>Commentaires</title>
-</head>
-
-<body>
-<h4>Filtres de la liste des commentaires</h4>
-<dl>
-  <dt>Type :</dt>
-  <dd>Aucun ou commentaires ou rétroliens.</dd>
-  
-  <dt>État :</dt>
-  <dd><ul>
-    <li><strong>indésirable</strong> : reconnu comme spam ;</li>
-    <li><strong>en attente</strong> : en attente de modération ;</li>
-    <li><strong>non publié</strong> : hors ligne ;</li>
-    <li><strong>publié</strong> : en ligne.</li>
-  </ul></dd>
-  
-  <dt>Trier par :</dt>
-  <dd>Choisir : date, ou titre du billet, ou auteur ou état, puis indiquez si vous
-  souhaitez que les résultats s'affichent par ordre croissant ou décroissant.</dd>
-  
-  <dt>Trier</dt>
-  <dd>Indique l'ordre dans lequel on souhaite effectuer le tri.</dd>
-  
-  <dt>Auteur du commentaire.</dt>
-  <dd>Recherche indifféremment avec des minuscules ou majuscules. On peut chercher
-  sur une partie du nom en utilisant le caractère joker
-  <strong>*</strong>.</dd>
-  
-  <dt>Commentaires par page :</dt>
-  <dd>Détermine le nombre de commentaires affichés par page de cette liste.</dd>
-</dl>
-
-<h4>Modifier ou ajouter un commentaire</h4>
-<dl>
-  <dt>Auteur :</dt>
-  <dd>Nom de l'auteur. Ce champ est obligatoire.</dd>
-  
-  <dt>Email :</dt>
-  <dd>Adresse mail de l'auteur du commmentaire.</dd>
-  
-  <dt>Site web :</dt>
-  <dd>URL du site ou du blog de l'auteur du commentaire.</dd>
-  
-  <dt>État :</dt>
-  <dd><ul>
-    <li><strong>indésirable</strong> : reconnu comme spam ;</li>
-    <li><strong>en attente</strong> : en attente de modération ;</li>
-    <li><strong>non publié</strong> : hors ligne</li>
-    <li><strong>publié</strong> : en ligne</li>
-  </ul></dd>
-  
-  <dt>Commentaire :</dt>
-  <dd>Contenu du commentaire. Ce champ utilise la syntaxe HTML.</dd>
-</dl>
-</body>
-</html>
Index: ocales/fr/help/core_main.html
===================================================================
--- locales/fr/help/core_main.html	(revision 1793)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<html>
-<head>
-  <title></title> <!-- Laissez le titre vide -->
-</head>
-
-<body>
-<h3>Bienvenue</h3>
-<ul>
-	<li><a href="help.php?page=core_user_pref">Préférences utilisateur</a></li>
-</ul>
-<h3>Blog</h3>
-<ul>
-	<li><a href="help.php?page=core_post">Édition de billet</a></li>
-	<li><a href="help.php?page=core_posts">Gestion des billets</a></li>
-	<li><a href="help.php?page=core_wiki">Syntaxe wiki</a></li>
-	<li><a href="help.php?page=core_comments">Gestion des commentaires et rétroliens</a></li>
-	<li><a href="help.php?page=core_categories">Gestion des catégories</a></li>
-	<li><a href="help.php?page=core_media">Gestionnaire de médias</a></li>
-	<li><a href="help.php?page=core_blog_pref">Paramètres du blog</a></li>
-	<li><a href="help.php?page=themeEditor">Éditeur de thème</a></li>
-	<li><a href="help.php?page=blowupConfig">Configuration du thème par défaut (Blowup)</a></li>
-</ul>
-<h3>Système</h3>
-<ul>
-	<li><a href="help.php?page=core_user">Création et gestion d'un utilisateur</a></li>
-</ul>
-<h3>Développeur</h3>
-<ul>
-	<li><a href="_charte.html">Charte des pages de l'administration</a></li>
-</ul>
-
-</body>
-</html>
Index: ocales/fr/help/core_media.html
===================================================================
--- locales/fr/help/core_media.html	(revision 1580)
+++ 	(revision )
@@ -1,103 +1,0 @@
-<html>
-<head>
-  <title>Médiathèque</title>
-</head>
-
-<body>
-
-<h4>Liste des médias</h4>
-<p>La page principale de la médiathèque présente la liste des fichiers
-(médias) disponibles pour le blog en cours d'utilisation.</p>
-
-<p>Il est possible d'afficher les médias dans des répertoires ou sous
-répertoires en cliquant sur leurs icônes ou leurs noms.</p>
-
-<p>Les fichiers son au format MP3 sont présentés avec un lecteur permettant
-d'en prendre immédiatement connaissance. Ce lecteur nécessite un lecteur (ou
-plugin) Flash sur votre navigateur.</p>
-
-<p>Les images sont affichées avec une miniature quand cela est possible.</p>
-
-<h4>Ajouter des fichiers</h4>
-<dl>
-  <dt>Choisissez un fichier</dt>
-  <dd>Permet de choisir un fichier sur son disque dur pour l'envoyer sur le
-  blog. Si le fichier dépasse la taille maximale, il ne pourra être envoyé.</dd>
-  
-  <dt>Titre</dt>
-  <dd>Titre optionnel du fichier à envoyer.</dd>
-  
-  <dt>Privé</dt>
-  <dd>Indique que le fichier envoyé n'est visible que par son propriétaire tant
-  qu'il n'est pas publié sur le blog.</dd>
-</dl>
-
-<dl>
-  <dt>Interface avancée</dt>
-  <dd>Permet de choisir plusieurs fichiers à la fois sur son disque dur pour les envoyer sur le
-  blog. Si un des fichiers dépasse la taille maximale, il ne pourra être envoyé.</dd>
-</dl>
-
-<h4>Nouveau répertoire</h4>
-<p>Ce formulaire permet de créer un nouveau répertoire dans le répertoire en
-cours d'utilisation. Indiquez simplement un nom comme vous le feriez sur votre
-ordinateur.</p>
-
-<h4>Détails du média</h4>
-<p>La page individuelle d'un média présente un ensemble d'informations sur
-celui-ci et permet d'effectuer quelques opérations.</p>
-
-<dl>
-  <dt>Nom du fichier</dt>
-  <dd>Changer le nom du fichier en cours.</dd>
-  
-  <dt>Titre du fichier</dt>
-  <dd>Changer ou donner un titre au fichier en cours.</dd>
-  
-  <dt>Date du fichier</dt>
-  <dd>Changer la date du fichier.</dd>
-  
-  <dt>Privé</dt>
-  <dd>Changer le caractère privé ou non du média.</dd>
-  
-  <dt>Nouveau répertoire</dt>
-  <dd>Permet de changer l'emplacement du fichier.</dd>
-  
-  <dt>Changer le fichier</dt>
-  <dd>Ce formulaire permet de changer le fichier tout en conservant ses
-  attributs (nom, titre...). Comme toujours, il ne peut dépasser la taille
-  maximalle indiquée.</dd>
-</dl>
-
-<h4>Cas particulier des images</h4>
-<p>Lors de l'ajout d'une image, jusqu'à quatre versions de celle-ci peuvent
-être disponibles (selon la taille de l'image d'origine)&nbsp;:</p>
-<ul>
-  <li><strong>carrée</strong>&nbsp;: image carrée de 48 pixels de côté,</li>
-  <li><strong>miniature</strong>&nbsp;: image réduite à 100 pixels sur son plus grand côté,</li>
-  <li><strong>petite</strong>&nbsp;: image réduite à 240 pixels sur son plus grand côté,</li>
-  <li><strong>moyenne</strong>&nbsp;: image réduite à 500 pixes sur son plus grand côté,</li>
-  <li><strong>originale</strong>&nbsp;: image originale non transformée.</li>
-</ul>
-<p>Les tailles par défaut des versions miniature, petite et moyenne, peuvent être modifiées dans les paramètres du blog</p>
-
-<h4>Attacher un fichier à un billet</h4>
-<p>Vous pouvez attacher un fichier à un billet très facilement. Commencez par
-créer un nouveau billet et enregistrez-le. Cliquez alors sur "ajouter un fichier
-au billet" pour ouvrir la médiathèque.</p>
-
-<p>En cliquant sur l'icône [+] (Attacher un fichier au billet) vous pourrez
-joindre le fichier à votre billet.</p>
-
-<p>Les fichiers attachés à un billet seront visibles sur la page individuelle
-du billet, sous la forme d'une liste après le contenu du billet. Les fichiers
-MP3 seront automatiquement accompagnés d'un lecteur en Flash permettant la
-lecture directe du fichier.</p>
-
-<h4>Podcast et diffusion de fichiers musicaux</h4>
-<p>Tous les fichiers attachés à un billet seront présents dans les fils RSS de
-vos billets, vous permettant ainsi de réaliser des podcast de n'importe quel
-type de fichier.</p>
-
-</body>
-</html>
Index: ocales/fr/help/core_post.html
===================================================================
--- locales/fr/help/core_post.html	(revision 1580)
+++ 	(revision )
@@ -1,112 +1,0 @@
-<html>
-<head>
-  <title>Rédaction d'un billet</title>
-</head>
-
-<body>
-
-<h4>Rédaction du billet</h4>
-
-<dl>
-  <dt>Titre du billet</dt>
-  <dd>Inscrivez le titre du billet. Ce champ est obligatoire.</dd>
-  
-  <dt>Extrait</dt>
-  <dd>Le contenu de ce champ s'affichera dans les pages présentant les listes de
-  billets telles que la page d'accueil ou le tri sur une catégorie, suivi d'un
-  lien « Lire la suite ». Il figurera également au début du billet dans le
-  contexte de l'affichage du billet seul. Si vous ne remplissez pas ce champ, le
-  champ <em>Contenu</em> sera intégralement affiché dès la page d'accueil.</dd>
-  
-  <dt>Contenu</dt>
-  <dd>Le contenu du billet. Ce champ est obligatoire.</dd>
-  
-  <dt>Notes</dt>
-  <dd>Cette zone de texte sert à la prise de notes ou pense-bête divers. Elle ne
-  sera jamais affichée sur le blog.</dd>
-  
-  <dt>Catégorie</dt>
-  <dd>La catégorie de votre billet. Pour créer une nouvelle catégorie, rendez vous
-  dans la section "catégories". Vous pouvez n'affecter
-  votre billet à aucune catégorie en choisissant la ligne vide.</dd>
-  
-  <dt>État du billet</dt>
-  <dd>Permet de choisir l'état du billet après enregistrement&nbsp;:
-    <ul>
-    <li><strong>en attente</strong>&nbsp;: en attente de publication.</li>
-    <li><strong>programmé</strong>&nbsp;: le billet sera mis en ligne aux date et heure
-    indiquées dans le champ <em>Publié le</em>.</li>
-    <li><strong>non publié</strong>&nbsp;: billet hors ligne.</li>
-    <li><strong>publié</strong>&nbsp;: billet en ligne.</li>
-    </ul>
-  </dd>
-  
-  <dt>Publié le</dt>
-  <dd>Permet de modifier la date et l'heure de publication du billet. Si vous avez
-  choisi le statut <em>programmé</em> il sera mis en ligne aux date et heure
-  définis dans ce champ.</dd>
-  
-  <dt>Format du texte</dt>
-  <dd>Permet de choisir la syntaxe de saisie du billet. Le wiki est une syntaxe
-  simplifiée et sera converti en xhtml valide ; à moins que vous maîtrisiez
-  parfaitement le xhtml nous vous conseillons de la choisir de préférence.
-  Consultez la référence de la syntaxe Wiki pour plus
-  d'informations.</dd>
-  
-  <dt>Accepter les commentaires</dt>
-  <dd>Cochez ou décochez la case selon que vous souhaitez permettre ou interdire
-  les commentaires sur le billet en particulier. L'option pour permettre ou
-  autoriser de façon générale les commentaires se situe dans le menu Préférences
-  du blog.</dd>
-  
-  <dt>Accepter les rétroliens</dt>
-  <dd>Un rétrolien permet de signaler un billet dans les commentaires d'un autre
-  blog. Cochez ou décochez la case selon que vous souhaitez permettre ou interdire
-  les rétroliens sur le billet. L'option pour permettre ou autoriser de façon
-  générale les rétroliens se situe dans le menu Préférences du blog.</dd>
-  
-  <dt>Billet sélectionné</dt>
-  <dd>Les billets marqués comme sélectionnés apparaîtront dans le menu de votre
-  blog, sous l'intitulé « A retenir ».</dd>
-  
-  <dt>Mot de passe du billet</dt>
-  <dd>Permet de déterminer un mot de passe d'accès à un billet dans le blog. Un
-  billet protégé par mot de passe ne sera visible nulle part sur votre blog, vous
-  pourrez en donner l'adresse à vos lecteurs en vous rendant sur le lien
-  <em>voir le billet</em>.</dd>
-  
-  <dt>URL spécifique</dt>
-  <dd>Ce champ permet de choisir une URL pour un billet autre que celle par défaut
-  après avoir cliqué sur le petit verrou placé à sa droite. Si vous essayez
-  d'utiliser une URL déjà existante, celle-ci se verra incrémentée d'un chiffre.</dd>
-  
-  <dt>Langue du billet</dt>
-  <dd>Code langue de votre billet. Par défaut, il s'agit du code de votre
-  langue. Vous pouvez le changer, par le code d'une autre langue, par
-  exemple "en", "fr-qc". Ce code est libre, il sera utilisé lors de l'affichage
-  des billets.</dd>
-  
-  <dt>Pièces jointes</dt>
-  <dd>Les pièces jointes sont tous les médias attachés au billet. Le lien
-  d'ajout d'une pièce jointe permet de choisir un fichier à ajouter au billet.
-  Pensez à sauvegarder votre billet avant de choisir une pièce jointe. Consultez
-  l'aide de la médiathèque pour plus de détails.</dd>
-</dl>
-
-<h4>Commentaires</h4>
-<dl>
-  <dt>Liste les commentaires</dt>
-  <dd>Depuis l'onglets <em>Commentaires</em> vous pouvez lire et changer l'état
-  des commentaires de votre billet. Suivant vos permissions, vous pouvez modifier,
-  mettre en ligne ou hors ligne, supprimer ou classer comme commentaire
-  indésirable.</dd>
-  
-  <dt>Ajouter un commentaire</dt>
-  <dd>Depuis l'onglet <em>Ajouter un commentaire</em> vous pouvez répondre
-  directement à un commentaire sans passer par votre blog. Cette interface vous
-  permet également de saisir votre commentaire en xhtml, sans limitation. Vous
-  devrez remplir les champs de la même manière qu'en modifiant un commentaire</dd>
-</dl>
-
-</body>
-</html>
Index: ocales/fr/help/core_posts.html
===================================================================
--- locales/fr/help/core_posts.html	(revision 1573)
+++ 	(revision )
@@ -1,65 +1,0 @@
-<html>
-<head>
-  <title>Gestion des billets</title>
-</head>
-
-<body>
-
-<h4>Filtres de la liste des billets</h4>
-
-<dl>
-  <dt>Auteur</dt>
-  <dd>Permet de filtrer les billets par auteur.</dd>
-  
-  <dt>Catégorie</dt>
-  <dd>Filtrer les billets par catégorie.</dd>
-  
-  <dt>État</dt>
-  <dd><ul>
-    <li><strong>en attente</strong>&nbsp;: en attente de publication.</li>
-    <li><strong>programmé</strong>&nbsp;: le billet sera mis en ligne aux date et heure
-    indiquées dans le champ <em>Publié le</em>.</li>
-    <li><strong>non publié</strong>&nbsp;: billet hors ligne.</li>
-    <li><strong>publié</strong>&nbsp;: billet en ligne.</li>
-  </ul></dd>
-  
-  <dt>Sélectionné</dt>
-  <dd>Aucun, billet marqué comme sélectionné ou non sélectionné.</dd>
-  
-  <dt>Mois</dt>
-  <dd>Filtre les billets d'un mois d'une année donné.</dd>
-  
-  <dt>Langue</dt>
-  <dd>Filtre les billets selon la langue indiquée dans le champ langue du
-  billet.</dd>
-  
-  <dt>Trier par</dt>
-  <dd>Permet de trier les résultats de filtrage selon la date, le titre,
-  la catégorie, l'auteur, l'état de publication ou l'état de sélection.</dd>
-  
-  <dt>Trier</dt>
-  <dd>Indique l'ordre dans lequel on souhaite effectuer le tri.</dd>
-  
-  <dt>Billets par page</dt>
-  <dd>Nombre de billets à afficher par page de résultat.</dd>
-</dl>
-
-<h4>Actions par lot sur les billets</h4>
-<p>Il est possible d'effectuer un ensemble d'actions sur plusieurs billets, d'un
-seul coup. Les actions possibles dépendent des permissions de l'utilisateur.</p>
-
-<ul>
-  <li><strong>Publier</strong>&nbsp;: mettre le billet en ligne,</li>
-  <li><strong>Hors ligne</strong>&nbsp;: mettre le billet hors ligne,</li>
-  <li><strong>Programmer</strong>&nbsp;: programmer le billet pour mise en ligne à la date de
-  publication,</li>
-  <li><strong>En attente</strong>&nbsp;: en attente de publication,</li>
-  <li><strong>Changer de catégorie</strong>&nbsp;: envoie sur la liste des catégories pour
-  changer celle des billets sélectionnés,</li>
-  <li><strong>Changer l'auteur</strong>&nbsp;: permet de changer l'auteur du billet en indiquant
-  l'identifiant de l'utilisateur qui deviendra le nouvel auteur,</li>
-  <li><strong>Supprimer</strong>&nbsp;: supprime le billet (cette opération est irréversible).</li>
-</ul>
-
-</body>
-</html>
Index: ocales/fr/help/core_trackbacks.html
===================================================================
--- locales/fr/help/core_trackbacks.html	(revision 1614)
+++ 	(revision )
@@ -1,34 +1,0 @@
-<html>
-<head>
-  <title>Rédaction d'un billet</title>
-</head>
-
-<body>
-
-<h4>Rétroliens</h4>
-<p>Pour envoyer un rétrolien cliquez sur le lien <em>Faire des rétroliens</em>.
-Si vous ne voyez pas ce lien, vérifiez que votre billet est bien dans l'état
-<em>publié</em>.</p>
-
-<dl>
-  <dt>URLs à rétrolier</dt>
-  <dd>Indiquez ici la ou les URL que vous aurez relevé dans le billet vers lequel
-  vous souhaitez envoyer un rétrolien.</dd>
-  
-  
-  <dt>Envoyer l'extrait</dt>
-  <dd>Par défaut, ce champ comporte le début de votre billet. C'est ce qui sera
-  envoyé vers le blog que vous rétroliez avec un lien vers votre billet complet.
-  Vous pouvez modifier le contenu de cette "accroche" en saisissant directement le
-  texte de votre choix dans ce champ.</dd>
-  
-  
-  <dt>Découverte automatique des URLs à rétrolier</dt>
-  <dd>Si votre billet comporte des liens vers des billets précis et si la
-  plate-forme du blog destinataire est configurée pour le permettre, cette
-  fonction découvrira automatiquement les URLs spécifiques d'envoi de
-  rétrolien.</dd>
-</dl>
-
-</body>
-</html>
Index: ocales/fr/help/core_user.html
===================================================================
--- locales/fr/help/core_user.html	(revision 1609)
+++ 	(revision )
@@ -1,74 +1,0 @@
-<html>
-<head>
-  <title>Utilisateur</title>
-</head>
-
-<body>
-
-<h4>Informations utilisateur</h4>
-<dl>
-  <dt>Identifiant (login)</dt>
-  <dd>Il doit être composé d'au moins 2 caractères (lettres non accentuées, chiffres ou symboles, pas d'espace). Ce champ est obligatoire.</dd>
-
-  <dt>Mot de passe</dt>
-  <dd>Indiquez deux fois le mot de passe dans les champs <em>Mot de passe</em> et <em>Confirmer le mot de
-  passe</em>. Le mot de passe doit être long d'au moins 6 caractères.
-  Ces deux champs sont obligatoires.</dd>
-  
-  <dt>Nom, Prénom</dt>
-  <dd>Si le pseudonyme n'est pas renseigné, le nom de l'auteur qui sera affiché
-  sera composé des nom et prénom renseignés dans ces champs.</dd>
-
-  <dt>Pseudonyme</dt>
-  <dd>Vous pouvez choisir ici le pseudonyme sous lequel vos billets seront signés. S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd>
-
-  <dt>Email</dt>
-  <dd>Cette adresse sera utilisée lors de la régénération du mot de passe depuis la fenêtre d'authentification de dotclear.</dd>
-
-  <dt>URL</dt>
-  <dd>Indique le site web de l'utilisateur. S'il est indiqué, le nom du rédacteur
-  d'un billet sera présenté comme un lien vers le site donné.</dd>
-  
-  <dt>Format d'édition préféré</dt>
-  <dd>Choix de la syntaxe par défaut pour la saisie des billets. Le wiki est une
-  syntaxe simplifiée et sera converti en xhtml valide&nbsp;; à moins que vous ne
-  maîtrisiez parfaitement le xhtml, nous vous conseillons le choix du wiki.</dd>
-  
-  <dt>État des billets par défaut</dt>
-  <dd>Le statut par défaut des billets peut être déterminé à&nbsp;:
-    <ul>
-      <li><strong>en attente :</strong> le statut de publication n'a pas encore
-      été décidé.</li>
-      <li><strong>programmé :</strong> le billet sera mis en ligne aux date et
-      heure indiquées dans le champ <em>Publié le</em>.</li>
-      <li><strong>non publié :</strong> billet hors ligne.</li>
-      <li><strong>publié :</strong> billet en ligne.</li>
-    </ul>
-  </dd>
-
-  <dt>Taille de la zone d'édition</dt>
-  <dd>Fixe la hauteur de la zone d'édtion du billet. Par défaut ce paramètre est
-  réglé à la valeur 24.</dd>
-  
-  <dt>Langue de l'utilisateur</dt>
-  <dd>Indique la langue dans laquelle on souhaite publier ses billets. Si la
-  traduction existe, l'interface sera également traduite dans cette langue.</dd>
-
-  <dt>Fuseau horaire de l'utilisateur</dt>
-  <dd>Ce choix déterminera l'affichage de l'heure de publication des billets.</dd>
-
-  <dt>Changement de mot de passe requis à la prochaine connexion</dt>
-  <dd>Cocher cette case permettra au nouvel utilisateur de choisir par lui-même son mot de passe à sa première connexion.</dd>
-
-  <dt>Super administrateur</dt>
-  <dd>Ce choix attribuera toutes les permissions au profil utilisateur sur l'ensemble des blogs de l'installation.</dd>
-</dl>
-
-<h4>Mots-clés</h4>
-<dl>
-  <dt>Format de la liste des mots-clés</dt>
-  <dd>Ce choix permet, dans la page d'édition d'un billet, d'afficher tous les mots-clés
-  disponibles ou seulement les plus utilisés.</dd>
-</dl>
-</body>
-</html>
Index: ocales/fr/help/core_user_pref.html
===================================================================
--- locales/fr/help/core_user_pref.html	(revision 1580)
+++ 	(revision )
@@ -1,91 +1,0 @@
-<html>
-<head>
-  <title>Préférences utilisateur</title>
-</head>
-
-<body>
-
-<h4>Mon profil</h4>
-<dl>
-  <dt>Nom, Prénom</dt>
-  <dd>Si le pseudonyme n'est pas renseigné, le nom de l'auteur qui sera affiché
-  sera composé des noms et prénoms renseignés dans ces champs.</dd>
-  
-  <dt>Pseudonyme</dt>
-  <dd>Vous pouvez choisir ici le nom sous lequel vos billets seront signés. S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd>
-  
-  <dt>Email</dt>
-  <dd>Adresse à laquelle devront être envoyées les notifications de nouveaux
-  commentaires par email.</dd>
-  
-  <dt>URL</dt>
-  <dd>Indique le site web de l'utilisateur. S'il est indiqué, le nom du rédacteur
-  d'un billet sera présenté comme un lien vers le site donné.</dd>
-  
-  <dt>Langue de l'utilisateur</dt>
-  <dd>Indique la langue dans laquelle on souhaite publier ses billets. Si la
-  traduction existe, l'interface sera également traduite dans cette langue.</dd>
-  
-  <dt>Fuseau horaire de l'utilisateur</dt>
-  <dd>Ce choix déterminera l'affichage de l'heure de publication des billets.</dd>
-  
-  <dt>Changer le mot de passe</dt>
-  <dd>Pour changer votre mot de passe, indiquez deux fois le nouveau mot de passe 
-  dans les champs <em>Nouveau mot de passe</em> et <em>Confirmer le mot de 
-  passe</em>. Le mot de passe doit être long d'au moins 6 caractères. 
-  Si aucun mot de passe n'est spécifié, il ne sera pas changé.</dd>
-</dl>
-  
-<h4>Mes options</h4>
-<dl> 
-  <dt>Format d'édition préféré</dt>
-  <dd>Choix de la syntaxe par défaut pour la saisie des billets. Le wiki est une
-  syntaxe simplifiée et sera converti en xhtml valide&nbsp;; à moins que vous ne
-  maîtrisiez parfaitement le xhtml, nous vous conseillons le choix du wiki.</dd>
-  
-  <dt>État des billets par défaut</dt>
-  <dd>Le statut par défaut des billets peut être déterminé à&nbsp;:
-    <ul>
-      <li><strong>en attente :</strong> le statut de publication n'a pas encore
-      été décidé.</li>
-      <li><strong>programmé :</strong> le billet sera mis en ligne aux date et
-      heure indiquées dans le champ <em>Publié le</em>.</li>
-      <li><strong>non publié :</strong> billet hors ligne.</li>
-      <li><strong>publié :</strong> billet en ligne.</li>
-    </ul>
-  </dd>
-  
-  <dt>Taille de la zone d'édition</dt>
-  <dd>Fixe la hauteur de la zone d'édtion du billet. Par défaut ce paramètre est
-  réglé à la valeur 24.</dd>
-  
-  <dt>Activer l'éditeur visuel</dt>
-  <dd>Permet d'activer ou non l'éditeur visuel des billets et des catégories.</dd>
-  
-  <dt>Activer l'interface avancée de la médiathèque</dt>
-  <dd>Cette option permet d'envoyer plusieurs fichiers à la fois sur le serveur.
-  Nécessite la présence du plugin Flash dans votre navigateur.</dd>
-  
-  <dt>Modules du tableau de bord</dt>
-  <dd>Les choix opérés dans cette zone détermineront l'affichage de 
-  ces blocs sur le tableau de bord.</dd>
-  
-  <dt>Format de la liste de tags</dt>
-  <dd>Ce choix permet, dans la page d'édition d'un billet, d'afficher tous les tags 
-  disponibles ou seulement les plus utilisés.</dd>
-</dl>
-<h4>Mes favoris</h4>
-<dl>
-  <dt>Mes favoris</dt>
-  <dd>Cette zone affiche les favoris actuellement utilisés. Ils peuvent être réordonnés 
-  au moyen de la souris si javascript est activé dans votre navigateur. Sinon, une case 
-  permet d'attribuer à chaque favori un numéro d'ordre. Lorsque vous avez terminé, n'oubliez 
-  pas d'enregistrer vos modifications. Vous pouvez aussi sélectionner les favoris à supprimer
-  du tableau de bord.</dd>
-  
-  <dt>Favoris disponibles</dt>
-  <dd>Tous les plugins permettant d'être mis en favoris sont listés ici. 
-  Cochez les cases correspondantes aux favoris que vous souhaitez utiliser, puis ajoutez-les.</dd>
-</dl>
-</body>
-</html>
Index: ocales/fr/help/core_wiki.html
===================================================================
--- locales/fr/help/core_wiki.html	(revision 1573)
+++ 	(revision )
@@ -1,85 +1,0 @@
-<html>
-<head>
-  <title>Référence de la syntaxe Wiki</title>
-</head>
-
-<body>
-
-<h4>Référence de la syntaxe Wiki</h4>
-
-<p>La syntaxe Wiki est une manière d'écrire du texte avec un jeu de balises
-réduit au minimum, permettant de couvrir les besoins les plus courants
-(titres, paragraphes, citations, listes...).</p>
-
-<dl>
-<dt>Éléments de bloc</dt>
-<dd>
-<ul>
-  <li>Laissez une ligne vide entre chaque bloc de même nature.</li>
-  <li><strong>Paragraphe</strong>&nbsp;: texte libre, terminé par une ligne
-  vide si suivi d'un second paragraphe.</li>
-  <li><strong>Titre</strong>&nbsp;: <code>!!! titre</code>, <code>!! titre</code>
-  ou <code>! titre</code> pour des titres plus ou moins importants.</li>
-  <li><strong>Trait horizontal</strong>&nbsp;: <code>----</code></li>
-  <li><strong>Listes</strong>&nbsp;: lignes débutant par <code>*</code> pour des
-  listes à puce ou <code>#</code> pour des listes numérotées. Vous pouvez faire
-  des listes imbriquées en mélangeant les codes de liste. Par exemple&nbsp;:
-<pre>
-* item 1
-** item 1.1
-* item 2
-*# item 2.1
-...
-</pre>
-  </li>
-  <li><strong>Texte préformaté</strong>&nbsp;: espace avant chaque ligne de texte.</li>
-  <li><strong>Bloc de citation</strong>&nbsp;: <code>&gt;</code> devant chaque
-  ligne de texte.</li>
-</ul>
-</dd>
-
-<dt>Éléments de formatage</dt>
-<dd>
-<ul>
-  <li><strong>Emphase</strong>&nbsp;: deux apostrophes <code>''texte''</code></li>
-  <li><strong>Forte emphase</strong>&nbsp;: deux soulignés <code>__texte__</code></li>
-  <li><strong>Retour forcé à la ligne</strong>&nbsp;: <code>%%%</code></li>
-  <li><strong>Insertion</strong>&nbsp;: deux plus <code>++texte++</code></li>
-  <li><strong>Suppression</strong>&nbsp;: deux moins <code>--texte--</code></li>
-  <li><strong>Lien</strong>&nbsp;: <code>[url]</code>, <code>[nom|url]</code>,
-    <code>[nom|url|langue]</code> ou <code>[nom|url|langue|titre]</code></li>
-  <li><strong>Image</strong>&nbsp;:
-    <code>((url|texte alternatif))</code>,
-    <code>((url|texte alternatif|position))</code> ou
-    <code>((url|texte alternatif|position|description longue))</code>.
-    <br />La position peut prendre les valeurs L ou G (gauche), R ou D (droite) ou C (centré).</li>
-  <li><strong>Ancre</strong>&nbsp;: <code>~ancre~</code></li>
-  <li><strong>Acronyme</strong>&nbsp;: <code>??acronyme|titre??</code></li>
-  <li><strong>Code HTML en ligne</strong>: deux apostrophes inversées <code>``code html``</code></li>
-  <li><strong>Citation en ligne</strong>&nbsp;: <code>{{citation}}</code>,
-    <code>{{citation|langue}}</code> ou <code>{{citation|langue|url}}</code></li>
-  <li><strong>Code</strong>&nbsp;: <code>@@code ici@@</code></li>
-  <li><strong>Note de bas de page</strong>&nbsp;: <code>$$Corps de la note$$</code></li>
-</ul>
-</dd>
-
-<dt>Empêcher le formatage du texte</dt>
-<dd>Pour insérer un caractère sans que celui-ci soit reconnu comme un caractère
-de formatage, ajoutez le caractère <code>\</code> avant celui-ci. Par exemple&nbsp;:
-<code>\[texte entre crochet qui n'est pas un lien\]</code>
-</dd>
-
-<dt>Insérer du code HTML</dt>
-<dd>Vous pouvez ponctuellement avoir besoin d'insérer du code HTML dans votre
-texte au format Wiki. Pour cela, utilisez le code suivant&nbsp;:
-<pre>
-///html
-&lt;p style="color:red"&gt;mon texte en rouge&lt;/p&gt;
-///
-</pre>
-</dd>
-</dl>
-
-
-</body>
-</html>
Index: locales/fr/help/index.html
===================================================================
--- locales/fr/help/index.html	(revision 1799)
+++ locales/fr/help/index.html	(revision 1799)
@@ -0,0 +1,29 @@
+<html>
+<head>
+  <title></title> <!-- Laissez le titre vide -->
+</head>
+
+<body>
+
+<div class="multi-part" id="first-step" title="Prise en main de l'interface">
+<h3>Personnalisation de l'interface</h3>
+<p></p>
+</div>
+
+<div class="multi-part" id="aides-pages" title="Ades contextuelles">
+<h3>Les aides contextuelles</h3>
+</div>
+
+<div class="multi-part" id="doc" title="Documentation">
+<h3>La documentation en ligne</h3>
+</div>
+
+<div class="multi-part" id="guide-dev" title="Pour les développeurs">
+<h3>Développeurs : charte de l'administration</h3>
+<ul>
+	<li><a href="_charte.html">Charte des pages de l'administration</a></li>
+</ul>
+</div>
+
+</body>
+</html>
Index: ocales/fr/help/themeEditor.html
===================================================================
--- locales/fr/help/themeEditor.html	(revision 989)
+++ 	(revision )
@@ -1,39 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>Éditeur de thème</title>
-</head>
-
-<body>
-<p>L'éditeur de thème vous permet de modifier les fichiers template, les feuilles
-de style et les fichiers JavaScript de votre thème en cours d'utilisation.</p>
-
-<p>La liste des fichiers est divisée en trois parties&nbsp;:</p>
-<ul>
-  <li>Fichiers template : les templates</li>
-  <li>Fichiers CSS : les feuilles de style</li>
-  <li>Fichiers JavaScript</li>
-</ul>
-
-<p>Une puce jaune contre le nom de chaque fichier indique que celui-ci fait partie
-du thème. Une puce rouge indique qu'il se trouve dans le thème parent. 
-Une puce noire indique qu'il se trouve dans le thème "default".</p>
-
-<p>Si vous modifiez un fichier se trouvant dans le thème "default", celui-ci
-sera copié dans votre thème en cours d'utilisation.</p>
-
-<p>Pour modifier un fichier, cliquez sur son nom, le contenu s'affichera alors
-dans une zone d'édition. Si le fichier peut-être écrit vous pourrez sauvegarder
-celui-ci en cliquant sur "enregistrer".</p>
-
-<p>Les modifications sont immédiatement appliquées lors de la sauvegarde, soyez
-vigilants.</p>
-
-<p>Pour éditer vos templates, n'hésitez pas à consultez la
-<a href="http://doc.dotclear.net/2.0/resources/templates">liste des marqueurs
-de template</a>.</p>
-
-<p>Notez que vous pouvez activer la coloration syntaxique dans vos préférences (onglet « Mes options »).</p>
-
-</body>
-</html>
Index: locales/lt/help/blowupConfig.html
===================================================================
--- locales/lt/help/blowupConfig.html	(revision 1280)
+++ locales/lt/help/blowupConfig.html	(revision 1803)
Index: locales/lt/help/core_blog_pref.html
===================================================================
--- locales/lt/help/core_blog_pref.html	(revision 813)
+++ locales/lt/help/core_blog_pref.html	(revision 1803)
Index: locales/lt/help/core_categories.html
===================================================================
--- locales/lt/help/core_categories.html	(revision 813)
+++ locales/lt/help/core_categories.html	(revision 1803)
Index: locales/lt/help/core_comments.html
===================================================================
--- locales/lt/help/core_comments.html	(revision 813)
+++ locales/lt/help/core_comments.html	(revision 1803)
Index: locales/lt/help/core_media.html
===================================================================
--- locales/lt/help/core_media.html	(revision 813)
+++ locales/lt/help/core_media.html	(revision 1803)
Index: locales/lt/help/core_post.html
===================================================================
--- locales/lt/help/core_post.html	(revision 813)
+++ locales/lt/help/core_post.html	(revision 1803)
Index: locales/lt/help/core_posts.html
===================================================================
--- locales/lt/help/core_posts.html	(revision 813)
+++ locales/lt/help/core_posts.html	(revision 1803)
Index: plugins/blogroll/_users_actions.js
===================================================================
--- plugins/blogroll/_users_actions.js	(revision 1502)
+++ plugins/blogroll/_users_actions.js	(revision 1802)
Index: plugins/daInstaller/locales/en/help/da_installer.html
===================================================================
--- plugins/daInstaller/locales/en/help/da_installer.html	(revision 1573)
+++ plugins/daInstaller/locales/en/help/da_installer.html	(revision 1802)
Index: plugins/daInstaller/locales/fr/help/da_installer.html
===================================================================
--- plugins/daInstaller/locales/fr/help/da_installer.html	(revision 1573)
+++ plugins/daInstaller/locales/fr/help/da_installer.html	(revision 1802)
Index: plugins/daInstaller/style.css
===================================================================
--- plugins/daInstaller/style.css	(revision 1046)
+++ plugins/daInstaller/style.css	(revision 1802)
Index: lugins/dclegacy/_admin.php
===================================================================
--- plugins/dclegacy/_admin.php	(revision 1806)
+++ 	(revision )
@@ -1,42 +1,0 @@
-<?php
-# -- BEGIN LICENSE BLOCK ---------------------------------------
-#
-# This file is part of 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; }
-
-$GLOBALS['core']->addBehavior('adminPostsActionsPage',array('dcLegacyPosts','adminPostsActionsPage'));
-
-/* Handle deprecated behaviors : 
-    * adminPostsActionsCombo
-	* adminPostsActionsHeaders
-	* adminPostsActionsContent
-*/
-class dcLegacyPosts
-{
-	public static function adminPostsActionsPage($core, dcPostsActionsPage $as) {
-		$stub_actions = new ArrayObject();
-		$core->callBehavior('adminPostsActionsCombo',array($stub_actions));
-		if (!empty($stub_actions)) {
-			$as->addAction($stub_actions,array('dcLegacyPosts','onActionLegacy'));
-		}
-	}
-	
-	public static function onActionLegacy($core, dcPostsActionsPage $as, $post) {
-		$core->callBehavior('adminPostsActions',$core,$as->getRS(),$as->getAction(),$as->getRedirection());
-		$as->beginPage('',
-			dcPage::jsLoad('js/jquery/jquery.autocomplete.js').
-			dcPage::jsMetaEditor().
-			$core->callBehavior('adminPostsActionsHeaders'),'');
-		$core->callBehavior('adminPostsActionsContent',$core,$as->getAction(),$as->getHiddenFields(true));
-		$as->endPage();
-	
-	}
-}
-?>
Index: lugins/dclegacy/_define.php
===================================================================
--- plugins/dclegacy/_define.php	(revision 1806)
+++ 	(revision )
@@ -1,23 +1,0 @@
-<?php
-# -- BEGIN LICENSE BLOCK ---------------------------------------
-#
-# This file is part of 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_RC_PATH')) { return; }
-
-$this->registerModule(
-	/* Name */			"dcLegacy",
-	/* Description*/		"Legacy modules for dotclear",
-	/* Author */			"dc Team",
-	/* Version */			'1.0',
-	array(
-		'priority' =>		500
-	)
-);
-?>
Index: plugins/maintenance/locales/en/help/maintenance.html
===================================================================
--- plugins/maintenance/locales/en/help/maintenance.html	(revision 1573)
+++ plugins/maintenance/locales/en/help/maintenance.html	(revision 1802)
Index: plugins/maintenance/locales/fr/help/maintenance.html
===================================================================
--- plugins/maintenance/locales/fr/help/maintenance.html	(revision 1605)
+++ plugins/maintenance/locales/fr/help/maintenance.html	(revision 1802)
Index: plugins/pages/_install.php
===================================================================
--- plugins/pages/_install.php	(revision 1529)
+++ plugins/pages/_install.php	(revision 1802)
Index: plugins/pages/_users_actions.js
===================================================================
--- plugins/pages/_users_actions.js	(revision 1503)
+++ plugins/pages/_users_actions.js	(revision 1802)
Index: plugins/pages/locales/en/help/page.html
===================================================================
--- plugins/pages/locales/en/help/page.html	(revision 1573)
+++ plugins/pages/locales/en/help/page.html	(revision 1802)
Index: plugins/pages/locales/en/help/pages.html
===================================================================
--- plugins/pages/locales/en/help/pages.html	(revision 198)
+++ plugins/pages/locales/en/help/pages.html	(revision 1802)
Index: plugins/pages/locales/fr/help/page.html
===================================================================
--- plugins/pages/locales/fr/help/page.html	(revision 1573)
+++ plugins/pages/locales/fr/help/page.html	(revision 1802)
Index: plugins/pages/locales/fr/help/pages.html
===================================================================
--- plugins/pages/locales/fr/help/pages.html	(revision 198)
+++ plugins/pages/locales/fr/help/pages.html	(revision 1802)
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 1797)
+++ plugins/tags/_admin.php	(revision 1609)
@@ -236,9 +236,9 @@
 			)).
 			'<form action="'.$form_uri.'" method="post">'.
-			//$hidden_fields->getEntries().
+			$hidden_fields->getEntries().
 			'<div><label for="new_tags" class="area">'.__('Tags to add:').'</label> '.
 			form::textarea('new_tags',60,3).
 			'</div>'.
-			$hidden_fields.
+			$hidden_fields->getHidden().
 			$core->formNonce().
 			form::hidden(array('action'),'tags').
