Index: inc/admin/class.dc.menu.php
===================================================================
--- inc/admin/class.dc.menu.php	(revision 0)
+++ inc/admin/class.dc.menu.php	(revision 3)
@@ -25,15 +25,15 @@
 	}
 	
-	public function addItem($title,$url,$img,$active,$show=true,$id=null)
+	public function addItem($title,$url,$img,$active,$show=true,$id=null,$class=null)
 	{
 		if($show) {
-			$this->items[] = $this->itemDef($title,$url,$img,$active,$id);
+			$this->items[] = $this->itemDef($title,$url,$img,$active,$id,$class);
 		}
 	}
 	
-	public function prependItem($title,$url,$img,$active,$show=true,$id=null)
+	public function prependItem($title,$url,$img,$active,$show=true,$id=null,$class=null)
 	{
 		if ($show) {
-			array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id));
+			array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id,$class));
 		}
 	}
@@ -65,5 +65,5 @@
 	}
 	
-	protected function itemDef($title,$url,$img,$active,$id=null)
+	protected function itemDef($title,$url,$img,$active,$id=null,$class=null)
 	{
 		if (is_array($url)) {
@@ -76,5 +76,5 @@
 		
 		return
-		'<li'.(($active) ? ' class="active"' : '').
+		'<li'.(($active || $class) ? ' class="'.(($active) ? 'active ' : '').(($class) ? $class : '').'"' : '').
 		(($id) ? ' id="'.$id.'"' : '').
 		(($img) ? ' style="background-image: url('.$img.');"' : '').
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 37)
+++ inc/admin/lib.dc.page.php	(revision 42)
@@ -122,7 +122,10 @@
 		'<form action="index.php" method="post"><div>'.
 		$blog_box.
-		' - <a href="'.$core->blog->url.'" class="button">'.__('View site').'</a>'.
-		' - '.__('User:').' <strong>'.$core->auth->userID().'</strong>'.
-		' - <a href="index.php?logout=1" class="logout">'.__('Logout').'</a>'.
+		'<a href="'.$core->blog->url.'"onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'.
+		'</div></form>'.
+		'</div>'.
+		'<div id="info-box2"><form action="index.php" method="post><div>"'.
+		' '.__('User:').' <strong>'.$core->auth->userID().'</strong>'.
+		' - <a href="index.php?logout=1" class="logout">'.__('Logout').' <img src="images/logout.png" alt="" /></a>'.
 		'</div></form>'.
 		'</div>';
@@ -166,6 +169,7 @@
 		echo
 		'</div>'."\n".		// End of #main-menu
-		'<div id="footer"><p><img src="images/dotclear_pw.png" alt="Dotclear" /> '.
-		sprintf(__('Thank you for using %s.'),'<a href="http://dotclear.org/">Dotclear</a>').
+		'<div id="footer"><p>'.
+		sprintf(__('Thank you for using %s.'),'<a href="http://dotclear.org/">Dotclear '.DC_VERSION.'</a>').
+		' <span class="credit"> (Icons by <a href="http://dryicons.com/">Dryicons</a>)</span>'.
 		'</p></div>'."\n".
 		"</div>\n";		// End of #wrapper
@@ -332,5 +336,5 @@
 		
 		echo
-		'<div id="help"><hr /><div class="help-content"><h2>'.__('Help').'</h2>'.
+		'<div id="help"><hr /><div class="help-content clear"><h2>'.__('Help').'</h2>'.
 		$content.
 		'</div></div>';
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 0)
+++ inc/admin/prepend.php	(revision 3)
@@ -138,4 +138,13 @@
 		http::redirect('auth.php');
 	}
+
+/*	
+	# Check add to my fav fired
+	if (!empty($_REQUEST['add-favorite'])) {
+		$redir = $_SERVER['REQUEST_URI'];
+		# Extract admin page from URI
+		# TO BE COMPLETED
+	}
+*/
 }
 
@@ -159,7 +168,56 @@
 	}
 	unset($hfiles,$locales_root);
+
+	# Standard favorites
+	$_fav = new ArrayObject();
+
+	# [] : Title, URL, small icon, large icon, permissions, id, class
+	# NB : '*' in permissions means any, null means super admin only
+	
+	$_fav['prefs'] = new ArrayObject(array('prefs',__('My preferences'),'preferences.php',
+		'images/menu/user-pref.png','images/menu/user-pref-b.png',
+		'*',null,null));
+
+	$_fav['new_post'] = new ArrayObject(array('new_post',__('New entry'),'post.php',
+		'images/menu/edit.png','images/menu/edit-b.png',
+		'usage,contentadmin',null,'menu-new-post'));
+	$_fav['posts'] = new ArrayObject(array('posts',__('Entries'),'posts.php',
+		'images/menu/entries.png','images/menu/entries-b.png',
+		'usage,contentadmin',null,null));
+	$_fav['comments'] = new ArrayObject(array('comments',__('Comments'),'comments.php',
+		'images/menu/comments.png','images/menu/comments-b.png',
+		'usage,contentadmin',null,null));
+	$_fav['search'] = new ArrayObject(array('search',__('Search'),'search.php',
+		'images/menu/search.png','images/menu/search-b.png',
+		'usage,contentadmin',null,null));
+	$_fav['categories'] = new ArrayObject(array('categories',__('Categories'),'categories.php',
+		'images/menu/categories.png','images/menu/categories-b.png',
+		'categories',null,null));
+	$_fav['media'] = new ArrayObject(array('media',__('Media manager'),'media.php',
+		'images/menu/media.png','images/menu/media-b.png',
+		'media,media_admin',null,null));
+	$_fav['blog_pref'] = new ArrayObject(array('blog_pref',__('Blog settings'),'blog_pref.php',
+		'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
+		'admin',null,null));
+	$_fav['blog_theme'] = new ArrayObject(array('blog_theme',__('Blog appearance'),'blog_theme.php',
+		'images/menu/themes.png','images/menu/blog-theme-b.png',
+		'admin',null,null));
+
+	$_fav['blogs'] = new ArrayObject(array('blogs',__('Blogs'),'blogs.php',
+		'images/menu/blogs.png','images/menu/blogs-b.png',
+		'usage,contentadmin',null,null));
+	$_fav['users'] = new ArrayObject(array('users',__('Users'),'users.php',
+		'images/menu/users.png','images/menu/users-b.png',
+		null,null,null));
+	$_fav['plugins'] = new ArrayObject(array('plugins',__('Plugins'),'plugins.php',
+		'images/menu/plugins.png','images/menu/plugins-b.png',
+		null,null,null));
+	$_fav['langs'] = new ArrayObject(array('langs',__('Languages'),'langs.php',
+		'images/menu/langs.png','images/menu/langs-b.png',
+		null,null,null));
 	
 	# Menus creation
 	$_menu['Dashboard'] = new dcMenu('dashboard-menu',null);
+	$_menu['Favorites'] = new dcMenu('favorites-menu','My favorites');
 	$_menu['Blog'] = new dcMenu('blog-menu','Blog');
 	$_menu['System'] = new dcMenu('system-menu','System');
@@ -168,4 +226,7 @@
 	# Loading plugins
 	$core->plugins->loadModules(DC_PLUGINS_ROOT,'admin',$_lang);
+
+	# Loading favorites info from plugins
+	$core->callBehavior('adminDashboardFavs', $core, $_fav);
 	
 	# Set menu titles
@@ -174,5 +235,16 @@
 	$_menu['Blog']->title = __('Blog');
 	$_menu['Plugins']->title = __('Plugins');
-	
+	$_menu['Favorites']->title = __('My favorites');
+
+/*	
+	if (!preg_match('/index.php$/',$_SERVER['REQUEST_URI'])) {
+		# Admin index can't be add in fav's
+		$_menu['Dashboard']->prependItem(__('Add this page to my favorites'),'#','images/menu/add_to_favorites.png',
+			false,$core->auth->check('usage,contentadmin',$core->blog->id),'fav-add');
+	}
+*/
+	$_menu['Dashboard']->prependItem(__('My preferences'),'preferences.php','images/menu/user-pref.png',
+		preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
+		true);
 	$_menu['Dashboard']->prependItem(__('Dashboard'),'index.php','images/menu/dashboard.png',
 		preg_match('/index.php$/',$_SERVER['REQUEST_URI']),
@@ -181,4 +253,7 @@
 	$_menu['Blog']->prependItem(__('Blog appearance'),'blog_theme.php','images/menu/themes.png',
 		preg_match('/blog_theme.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
+		$core->auth->check('admin',$core->blog->id));
+	$_menu['Blog']->prependItem(__('Blog settings'),'blog_pref.php','images/menu/blog-pref.png',
+		preg_match('/blog_pref.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->check('admin',$core->blog->id));
 	$_menu['Blog']->prependItem(__('Media manager'),'media.php','images/menu/media.png',
@@ -217,4 +292,35 @@
 		$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);
+	}
+	
 }
 ?>
