Index: .hgsubstate
===================================================================
--- .hgsubstate	(revision 138)
+++ .hgsubstate	(revision 55)
@@ -1,1 +1,1 @@
-43d339c0455203dfc0cc82601c43c2d2cb57e09b inc/libs/clearbricks
+8859cc5a74a0a4e2cf71307786b69f35126c6b2c inc/libs/clearbricks
Index: admin/auth.php
===================================================================
--- admin/auth.php	(revision 133)
+++ admin/auth.php	(revision 73)
@@ -365,6 +365,6 @@
 			echo '<legend>'.__('Safe mode login').'</legend>';
 			echo 
-				'<p class="form-note info">'.
-				__('This mode allows you to login without activating any of your plugins. This may be useful to solve compatibility problems').'&nbsp;<br />'.
+				'<p class="form-note">'.
+				__('This mode allows you to login without activating any of your plugins. This may be useful to solve compatibility problems').'&nbsp;'.
 				__('Disable or delete any plugin suspected to cause trouble, then log out and log back in normally.').
 				'</p>';
Index: admin/blog.php
===================================================================
--- admin/blog.php	(revision 133)
+++ admin/blog.php	(revision 38)
@@ -78,6 +78,6 @@
 	'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').' '.
 	form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</label></p>'.
-	'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p> '.
-	'<p class="form-note warn">'.__('Please note that changing your blog ID may require changes in your public index.php file.').'</p>'.
+	'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').' '.
+	__('Please note that changing your blog ID may require changes in your public index.php file.').'</p>'.
 	
 	'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog name:').' '.
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 133)
+++ admin/blog_pref.php	(revision 122)
@@ -268,6 +268,6 @@
 		'<p><label for="blog_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').
 		form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</label></p>'.
-		'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p> '.
-		'<p class="form-note warn">'.__('Please note that changing your blog ID may require changes in your public index.php file.').'</p>';
+		'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').' '.
+		__('Please note that changing your blog ID may require changes in your public index.php file.').'</p>';
 	}
 	
Index: admin/index.php
===================================================================
--- admin/index.php	(revision 142)
+++ admin/index.php	(revision 130)
@@ -44,4 +44,36 @@
 
 # Check dashboard module prefs
+$core->auth->user_prefs->loadPrefs();
+	
+	// Set favorites menu
+	$ws = $core->auth->user_prefs->addWorkspace('favorites');
+	$count = 0;
+	foreach ($ws->dumpPrefs() as $k => $v) {
+		// User favorites only
+		if (!$v['global']) {
+			$count++;
+			$fav = unserialize($v['value']);
+			$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
+				preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
+				(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+		}
+	}	
+	if (!$count) {
+		// Global favorites if any
+		foreach ($ws->dumpPrefs() as $k => $v) {
+			$count++;
+			$fav = unserialize($v['value']);
+			$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
+				preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
+				(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+		}
+	}
+	if (!$count) {
+		// No user or global favorites, add "new entry" fav
+		$_menu['Favorites']->addItem(__('New entry'),'post.php','images/menu/edit.png',
+			preg_match('/post.php$/',$_SERVER['REQUEST_URI']),
+			$core->auth->check('usage,contentadmin',$core->blog->id),'menu-new-post',null);
+	}
+$core->auth->user_prefs->addWorkspace('dashboard');
 if (!$core->auth->user_prefs->dashboard->prefExists('doclinks')) {
 	if (!$core->auth->user_prefs->dashboard->prefExists('doclinks',true)) {
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 133)
+++ admin/media.php	(revision 68)
@@ -328,5 +328,4 @@
 	echo
 	'<div class="col"><h3 id="add-file">'.__('Add files').'</h3>'.
-	'<p class="form-note info">'.__('Please take care to publish media that you own and that are not protected by copyright.').'</p>'.
 	'<form id="media-upload" class="clear" action="'.html::escapeURL($page_url).'" method="post" enctype="multipart/form-data">'.
 	'<div>'.form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE).
@@ -344,4 +343,5 @@
 	'</fieldset>'.
 	'</form>'.
+	'<p class="form-note">'.__('Please take care to publish media that you own and that are not protected by copyright.').'</p>'.
 	'</div>';
 	
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 133)
+++ admin/preferences.php	(revision 115)
@@ -487,5 +487,5 @@
 
 echo '<div id="default-favs"><h3>'.__('Default favorites').'</h3>';
-echo '<p class="form-note info clear">'.__('Those favorites are displayed when My Favorites list is empty.').'</p>';
+echo '<p class="form-note clear">'.__('Those favorites are displayed when My Favorites list is empty.').'</p>';
 $count = 0;
 foreach ($ws->dumpPrefs() as $k => $v) {
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 133)
+++ admin/style/default.css	(revision 131)
@@ -272,6 +272,6 @@
 	float: left;
 	overflow: hidden;
-	padding: 1em 2% 1em 0;
-	width: 70%;
+	padding: 1em 1%;
+	width: 66%;
 }
 #dashboard-main.fullwidth {
@@ -319,6 +319,7 @@
 #dashboard-items {
 	float: left;
-	width: 27%;
+	width: 29%;
 	overflow: hidden;
+	margin-left: 2%;
 	padding-bottom: 1em;
 	padding-top: 3em;
@@ -1074,19 +1075,10 @@
 }
 p.form-note {
-	font-style:italic;
+	font-style:normal;
+	background: #eef url(info.png) no-repeat .2em .2em;
+	border: 1px solid #99f;
+	padding: .2em 1em .1em 24px;
 	margin-top: -.7em;
 	color: #666;
-}
-p.form-note.warn, p.form-note.info {
-	font-style: normal;
-	padding: .2em 1em .1em 24px;
-}
-p.form-note.warn {
-	background: #ffd url(warning.png) no-repeat .2em .2em;
-	border: 1px solid #f0c020;
-}
-p.form-note.info {
-	background: #eef url(info.png) no-repeat .2em .2em;
-	border: 1px solid #99f;
 }
 .form-note a {border-bottom: 1px solid #99f;}
@@ -1196,5 +1188,5 @@
 	text-align: center;
 	text-decoration: none;
-	padding: .1em .5em;
+	padding: .1em .75em .1em;
 	text-shadow: 0 1px 1px rgba(0,0,0,.3);
 	-webkit-border-radius: .2em;
Index: admin/user.php
===================================================================
--- admin/user.php	(revision 125)
+++ admin/user.php	(revision 144)
@@ -312,4 +312,5 @@
 }
 
+dcPage::helpBlock('core_user');
 dcPage::close();
 ?>
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 140)
+++ inc/admin/prepend.php	(revision 106)
@@ -292,34 +292,4 @@
 		$core->auth->isSuperAdmin() ||
 		$core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->blog_count > 1);
-
-		// Set favorites menu
-		$ws = $core->auth->user_prefs->addWorkspace('favorites');
-		$count = 0;
-		foreach ($ws->dumpPrefs() as $k => $v) {
-			// User favorites only
-			if (!$v['global']) {
-				$count++;
-				$fav = unserialize($v['value']);
-				$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
-					preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
-					(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
-			}
-		}	
-		if (!$count) {
-			// Global favorites if any
-			foreach ($ws->dumpPrefs() as $k => $v) {
-				$count++;
-				$fav = unserialize($v['value']);
-				$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
-					preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
-					(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
-			}
-		}
-		if (!$count) {
-			// No user or global favorites, add "new entry" fav
-			$_menu['Favorites']->addItem(__('New entry'),'post.php','images/menu/edit.png',
-				preg_match('/post.php$/',$_SERVER['REQUEST_URI']),
-				$core->auth->check('usage,contentadmin',$core->blog->id),'menu-new-post',null);
-		}
-}
+	}
 ?>
Index: inc/core/class.dc.core.php
===================================================================
--- inc/core/class.dc.core.php	(revision 136)
+++ inc/core/class.dc.core.php	(revision 0)
@@ -1424,19 +1424,25 @@
 	public function countAllComments()
 	{
-	
-		$updCommentReq = 'UPDATE '.$this->prefix.'post P '.
-			'SET nb_comment = ('.
-				'SELECT COUNT(C.comment_id) from '.$this->prefix.'comment C '.
-				'WHERE C.post_id = P.post_id AND C.comment_trackback <> 1 '.
-				'AND C.comment_status = 1 '.
-			')';
-		$updTrackbackReq = 'UPDATE '.$this->prefix.'post P '.
-			'SET nb_trackback = ('.
-				'SELECT COUNT(C.comment_id) from '.$this->prefix.'comment C '.
-				'WHERE C.post_id = P.post_id AND C.comment_trackback = 1 '.
-				'AND C.comment_status = 1 '.
-			')';
-		$this->con->execute($updCommentReq);
-		$this->con->execute($updTrackbackReq);
+		$strReq = 'SELECT COUNT(comment_id) AS nb, post_id '.
+				'FROM '.$this->prefix.'comment '.
+				'WHERE comment_trackback %s 1 '.
+				'AND comment_status = 1 '.
+				'GROUP BY post_id ';
+		
+		$rsC = $this->con->select(sprintf($strReq,'<>'));
+		$rsT = $this->con->select(sprintf($strReq,'='));
+		
+		$cur = $this->con->openCursor($this->prefix.'post');
+		while ($rsC->fetch()) {
+			$cur->nb_comment = (integer) $rsC->nb;
+			$cur->update('WHERE post_id = '.(integer) $rsC->post_id);
+			$cur->clean();
+		}
+		
+		while ($rsT->fetch()) {
+			$cur->nb_trackback = (integer) $rsT->nb;
+			$cur->update('WHERE post_id = '.(integer) $rsT->post_id);
+			$cur->clean();
+		}
 	}
 	
Index: inc/core/class.dc.prefs.php
===================================================================
--- inc/core/class.dc.prefs.php	(revision 141)
+++ inc/core/class.dc.prefs.php	(revision 106)
@@ -42,9 +42,5 @@
 		$this->table = $core->prefix.'pref';
 		$this->user_id =& $user_id;
-		try {$this->loadPrefs();} catch (Exception $e) {
-			if (version_compare($core->getVersion('core'),'2.3','>')) {
-				trigger_error($e->getMessage());
-			}
-		}
+		//~ $this->loadPrefs();
 	}
 	
@@ -52,5 +48,5 @@
 	Retrieves all workspaces (and their prefs) from database, with one query. 
 	*/
-	private function loadPrefs()
+	public function loadPrefs()
 	{
 		$strReq = 'SELECT user_id, pref_id, pref_value, '.
@@ -63,6 +59,5 @@
 			$rs = $this->con->select($strReq);
 		} catch (Exception $e) {
-			//~ trigger_error(__('Unable to retrieve workspaces:').' '.$this->con->error(), E_USER_ERROR);
-			//~ throw new Exception(__('Unable to retrieve workspaces:').' '.$this->con->error(), E_USER_ERROR);
+			trigger_error(__('Unable to retrieve workspaces:').' '.$this->con->error(), E_USER_ERROR);
 			throw $e;
 		}
Index: inc/core/class.dc.workspace.php
===================================================================
--- inc/core/class.dc.workspace.php	(revision 141)
+++ inc/core/class.dc.workspace.php	(revision 33)
@@ -46,9 +46,5 @@
 		$this->user_id =& $user_id;
 		
-		try {$this->getPrefs($rs);} catch (Exception $e) {
-			if (version_compare($core->getVersion('core'),'2.3','>')) {
-				trigger_error($e->getMessage());
-			}
-		}
+		$this->getPrefs($rs);
 	}
 	
@@ -67,6 +63,5 @@
 				$rs = $this->con->select($strReq);
 			} catch (Exception $e) {
-				//~ trigger_error(__('Unable to retrieve prefs:').' '.$this->con->error(), E_USER_ERROR);
-				throw $e;
+				trigger_error(__('Unable to retrieve prefs:').' '.$this->con->error(), E_USER_ERROR);
 			}
 		}
Index: locales/en/resources.php
===================================================================
--- locales/en/resources.php	(revision 0)
+++ locales/en/resources.php	(revision 144)
@@ -29,4 +29,5 @@
 	'core_posts' => dirname(__FILE__).'/help/posts.html',
 	'core_user_pref' => dirname(__FILE__).'/help/user_pref.html',
+	'core_user' => dirname(__FILE__).'/help/user.html',
 	'core_wiki' => dirname(__FILE__).'/help/wiki.html'
 );
Index: locales/es/date.po
===================================================================
--- locales/es/date.po	(revision 135)
+++ locales/es/date.po	(revision 0)
@@ -21,7 +21,4 @@
 msgid "%Y-%m-%d %H:%M"
 msgstr "%d/%m/%Y %H:%M"
-
-msgid "%A %e %B %Y"
-msgstr "%A %e de %B de %Y"
 
 msgid "_Jan"
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 132)
+++ locales/fr/main.po	(revision 115)
@@ -956,5 +956,5 @@
 
 msgid "Last Name:"
-msgstr "Nom :"
+msgstr "Nom"
 
 msgid "Username and password"
Index: themes/blueSilence/_define.php
===================================================================
--- themes/blueSilence/_define.php	(revision 134)
+++ themes/blueSilence/_define.php	(revision 0)
@@ -14,5 +14,5 @@
 $this->registerModule(
 	/* Name */			"Blue Silence",
-	/* Description*/		"Dotclear Theme",
+	/* Description*/		"Default Dotclear Theme",
 	/* Author */			"Marco / marcarea.com",
 	/* Version */			'1.0'
Index: themes/default/_define.php
===================================================================
--- themes/default/_define.php	(revision 134)
+++ themes/default/_define.php	(revision 0)
@@ -14,5 +14,5 @@
 $this->registerModule(
 	/* Name */			"Blowup",
-	/* Description*/		"Default Dotclear theme, fully customizable",
+	/* Description*/		"Fully customizable theme",
 	/* Author */			"Marco & Olivier",
 	/* Version */			'1.0'
