Index: plugins/aboutConfig/_admin.php
===================================================================
--- plugins/aboutConfig/_admin.php	(revision 1294)
+++ plugins/aboutConfig/_admin.php	(revision 1179)
@@ -12,5 +12,5 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$_menu['System']->addItem('about:config','plugin.php?p=aboutConfig','index.php?pf=aboutConfig/icon.png',
+$_menu['Plugins']->addItem('about:config','plugin.php?p=aboutConfig','index.php?pf=aboutConfig/icon.png',
 		preg_match('/plugin.php\?p=aboutConfig(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin());
Index: plugins/aboutConfig/index.php
===================================================================
--- plugins/aboutConfig/index.php	(revision 1358)
+++ plugins/aboutConfig/index.php	(revision 1179)
@@ -85,5 +85,5 @@
 	
 	return
-	'<tr class="line">'.
+	'<tr>'.
 	'<td scope="raw"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
@@ -97,5 +97,10 @@
   <title>about:config</title>
   <?php echo dcPage::jsPageTabs($part); ?>
-  <script type="text/javascript">
+  <style type="text/css">
+  table.settings { border: 1px solid #999; margin-bottom: 2em; }
+  table.settings th { background: #f5f5f5; color: #444; padding-top: 0.3em; padding-bottom: 0.3em; }
+  p.anchor-nav {float: right; }
+  </style>
+	<script type="text/javascript">
 	//<![CDATA[
 	$(function() {
@@ -115,10 +120,4 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('about:config').'</span>' => ''
-	));
 if (!empty($_GET['upd'])) {
 	dcPage::message(__('Configuration successfully updated'));
@@ -129,10 +128,10 @@
 }
 ?>
-
-<div id="local" class="multi-part" title="<?php echo sprintf(__('Settings for %s'),html::escapeHTML($core->blog->name)); ?>">
-
-
-<?php
-$table_header = '<table class="settings" id="%s"><caption class="as_h3">%s</caption>'.
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title">about:config</span></h2>
+
+<div id="local" class="multi-part" title="<?php echo __('blog settings'); ?>">
+
+<?php 
+$table_header = '<table class="settings" id="%s"><caption>%s</caption>'.
 '<thead>'.
 '<tr>'."\n".
Index: plugins/antispam/antispam.js
===================================================================
--- plugins/antispam/antispam.js	(revision 1423)
+++ plugins/antispam/antispam.js	(revision 1130)
@@ -6,5 +6,5 @@
 		$(this).css({'cursor':'auto'});
 	});
-	$('#filters-list-form').submit(function() {
+	$('#filters-form').submit(function() {
 		var order=[];
 		$("#filters-list tr td input.position").each(function() {
Index: plugins/antispam/index.php
===================================================================
--- plugins/antispam/index.php	(revision 1423)
+++ plugins/antispam/index.php	(revision 1207)
@@ -123,10 +123,6 @@
 if ($filter_gui !== false)
 {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			$page_name => $p_url,
-			'<span class="page-title">'.sprintf(__('%s filter configuration'),$filter->name).'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_name.'</a>'.
+		' &rsaquo; <span class="page-title">'.sprintf(__('%s configuration'),$filter->name).'</span></h2>';
 
 	echo $filter_gui;
@@ -134,9 +130,5 @@
 else
 {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.$page_name.'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_name.'</span></h2>';
 
 	# Information
@@ -178,5 +170,5 @@
 	# Filters
 	echo
-	'<form action="'.$p_url.'" method="post" id="filters-list-form">';
+	'<form action="'.$p_url.'" method="post" class="fieldset" id="filters-form">';
 
 	if (!empty($_GET['upd'])) {
@@ -186,5 +178,5 @@
 	echo
 	'<table class="dragable">'.
-	'<caption class="as_h3">'.__('Available spam filters').'</caption>'.
+	'<caption>'.__('Available spam filters').'</caption>'.
 	'<thead><tr>'.
 	'<th>'.__('Order').'</th>'.
Index: plugins/antispam/style.css
===================================================================
--- plugins/antispam/style.css	(revision 1330)
+++ plugins/antispam/style.css	(revision 0)
@@ -8,4 +8,5 @@
 	margin: 0.5em 0;
 	padding-left: 16px;
+	/*background: url(index.php?pf=antispam/feed.png) no-repeat center left;*/
 	background-color: transparent;
 	background-position: center left;
Index: plugins/attachments/_admin.php
===================================================================
--- plugins/attachments/_admin.php	(revision 1398)
+++ plugins/attachments/_admin.php	(revision 1179)
@@ -12,16 +12,10 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$core->addBehavior ('adminPostFormItems',array('attachmentAdmin','adminPostFormItems'));
+$core->addBehavior ('adminPostFormSidebar',array('attachmentAdmin','adminPostFormSidebar'));
 $core->addBehavior ('adminPostAfterForm',array('attachmentAdmin','adminPostAfterForm'));
-$core->addBehavior('adminPostHeaders',array('attachmentAdmin','postHeaders'));
 
 class attachmentAdmin
 {
-	public static function postHeaders()
-	{
-		return 
-		'<script type="text/javascript" src="index.php?pf=attachments/js/post.js"></script>';
-	}
-	public static function adminPostFormItems($main,$sidebar,$post) 
+	public static function adminPostFormSidebar($post) 
 	{
 		if ($post !== null)
@@ -29,5 +23,6 @@
 			$core =& $GLOBALS['core'];
 			$post_media = $core->media->getPostMedia($post->post_id);
-			$item = '<h5 class="clear s-attachments">'.__('Attachments').'</h5>';
+			echo
+			'<h3 class="clear">'.__('Attachments').'</h3>';
 			foreach ($post_media as $f)
 			{
@@ -36,6 +31,6 @@
 					$ftitle = substr($ftitle,0,16).'...';
 				}
-				$item .=
-				'<div class="media-item s-attachments">'.
+				echo
+				'<div class="media-item">'.
 				'<a class="media-icon" href="media_item.php?id='.$f->media_id.'">'.
 				'<img src="'.$f->media_icon.'" alt="" title="'.$f->basename.'" /></a>'.
@@ -58,8 +53,8 @@
 			
 			if (empty($post_media)) {
-				$item .= '<p class="form-note s-attachments">'.__('No attachment.').'</p>';
-			} 
-			$item .= '<p class="s-attachments"><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
-			$sidebar['metas-box']['items']['attachments']= $item;
+				echo '<p>'.__('No attachment.').'</p>';
+			} else {
+			}
+			echo '<p><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
 		}
 	}
Index: plugins/attachments/_public.php
===================================================================
--- plugins/attachments/_public.php	(revision 1280)
+++ plugins/attachments/_public.php	(revision 1221)
@@ -40,12 +40,16 @@
 		"<?php\n".
 		'if ($_ctx->posts !== null && $core->media) {'."\n".
-			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
+		'$_ctx->attachments = staticRecord::newFromArray($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
 		"?>\n".
 		
-		'<?php foreach ($_ctx->attachments as $attach_i => $attach_f) : '.
-		'$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'.
-		'$_ctx->file_url = $attach_f->file_url; ?>'.
+		'<?php $attach_i = 0; ?>'. // LEGACY
+		'<?php while ($_ctx->attachments->fetch()) : ?>'.
+		
+		'<?php $GLOBALS[\'attach_i\'] = $attach_i; $attach_f = $_ctx->attachments->row(); $GLOBALS[\'attach_f\'] = $attach_f;'. // LEGACY
+		'$_ctx->file_url = $attach_f->file_url; ?>'. // LEGACY
 		$content.
-		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
+		'<?php $attach_i++; ?>'. // LEGACY
+		'<?php endwhile; '.
+		'$_ctx->attachments = null; ?>'.
 		
 		"<?php } ?>\n";
@@ -60,5 +64,5 @@
 	{
 		return
-		"<?php if (\$attach_i == 0) : ?>".
+		"<?php if (\$_ctx->attachments->isStart()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -71,5 +75,5 @@
 	{
 		return
-		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
+		"<?php if (\$_ctx->attachments->isEnd()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -93,15 +97,15 @@
 		if (isset($attr['is_image'])) {
 			$sign = (boolean) $attr['is_image'] ? '' : '!';
-			$if[] = $sign.'$attach_f->media_image';
+			$if[] = $sign.'$_ctx->attachments->media_image';
 		}
 		
 		if (isset($attr['has_thumb'])) {
 			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
-			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
+			$if[] = $sign.'isset($_ctx->attachments->media_thumb[\'sq\'])';
 		}
 		
 		if (isset($attr['is_mp3'])) {
 			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
-			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
+			$if[] = '$_ctx->attachments->type '.$sign.' "audio/mpeg3"';
 		}
 		
@@ -109,7 +113,7 @@
 			$sign = (boolean) $attr['is_flv'] ? '' : '!';
 			$if[] = $sign.
-				'($attach_f->type == "video/x-flv" || '.
-				'$attach_f->type == "video/mp4" || '.
-				'$attach_f->type == "video/x-m4v")';
+				'($_ctx->attachments->type == "video/x-flv" || '.
+				'$_ctx->attachments->type == "video/mp4" || '.
+				'$_ctx->attachments->type == "video/x-m4v")';
 		}
 		
@@ -127,5 +131,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->type').'; ?>';
 	}
 	
@@ -136,5 +140,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_type').'; ?>';
 	}
 	
@@ -145,5 +149,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->basename').'; ?>';
 	}
 	
@@ -158,7 +162,7 @@
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
 		if (!empty($attr['full'])) {
-			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
-		}
-		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
+			return '<?php echo '.sprintf($f,'$_ctx->attachments->size').'; ?>';
+		}
+		return '<?php echo '.sprintf($f,'files::size($_ctx->attachments->size)').'; ?>';
 	}
 	
@@ -169,5 +173,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_title').'; ?>';
 	}
 	
@@ -180,6 +184,6 @@
 		return
 		'<?php '.
-		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
-			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
+		'if (isset($_ctx->attachments->media_thumb[\'sq\'])) {'.
+			'echo '.sprintf($f,'$_ctx->attachments->media_thumb[\'sq\']').';'.
 		'}'.
 		'?>';
@@ -192,5 +196,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->file_url').'; ?>';
 	}
 	
Index: plugins/attachments/js/post.js
===================================================================
--- plugins/attachments/js/post.js	(revision 1393)
+++ 	(revision )
@@ -1,5 +1,0 @@
-$(function() {
-	$('h5.s-attachments').toggleWithLegend($('.s-attachments').not('h5'),{
-		cookie: 'dcx_attachments'
-	});
-});
Index: plugins/blogroll/_admin.php
===================================================================
--- plugins/blogroll/_admin.php	(revision 1296)
+++ plugins/blogroll/_admin.php	(revision 1179)
@@ -25,5 +25,5 @@
 }
 
-$_menu['Blog']->addItem(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon-small.png',
+$_menu['Plugins']->addItem(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon-small.png',
                 preg_match('/plugin.php\?p=blogroll(&.*)?$/',$_SERVER['REQUEST_URI']),
                 $core->auth->check('usage,contentadmin',$core->blog->id));
Index: plugins/blogroll/edit.php
===================================================================
--- plugins/blogroll/edit.php	(revision 1358)
+++ plugins/blogroll/edit.php	(revision 1179)
@@ -95,12 +95,4 @@
 
 <body>
-<?php
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => $p_url
-		));
-?>
-
 <?php echo '<p><a href="'.$p_url.'">'.__('Return to blogroll').'</a></p>'; ?>
 
Index: plugins/blogroll/index.php
===================================================================
--- plugins/blogroll/index.php	(revision 1358)
+++ plugins/blogroll/index.php	(revision 1179)
@@ -177,11 +177,5 @@
 
 <body>
-<?php
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => ''
-		));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title"><?php echo __('Blogroll'); ?></span></h2>
 
 <?php
Index: plugins/blowupConfig/_public.php
===================================================================
--- plugins/blowupConfig/_public.php	(revision 1436)
+++ plugins/blowupConfig/_public.php	(revision 1179)
@@ -23,7 +23,172 @@
 	public static function publicHeadContent($core)
 	{
-		$url = blowupConfig::publicCssUrlHelper();
-		if ($url) {
-			echo '<link rel="stylesheet" href="'.$url.'" type="text/css" />';
+		echo '<style type="text/css">'."\n".self::blowUpStyleHelper()."\n</style>\n";
+	}
+
+	public static function blowUpStyleHelper()
+	{
+		$s = $GLOBALS['core']->blog->settings->themes->blowup_style;
+
+		if ($s === null) {
+			return;
+		}
+
+		$s = @unserialize($s);
+		if (!is_array($s)) {
+			return;
+		}
+
+		$css = array();
+
+		/* Sidebar position
+		---------------------------------------------- */
+		if ($s['sidebar_position'] == 'left') {
+			$css['#wrapper']['background-position'] = '-300px 0';
+			$css['#main']['float'] = 'right';
+			$css['#sidebar']['float'] = 'left';
+		}
+
+		/* Properties
+		---------------------------------------------- */
+		self::prop($css,'body','background-color',$s['body_bg_c']);
+
+		self::prop($css,'body','color',$s['body_txt_c']);
+		self::prop($css,'.post-tags li a:link, .post-tags li a:visited, .post-info-co a:link, .post-info-co a:visited','color',$s['body_txt_c']);
+		self::prop($css,'#page','font-size',$s['body_txt_s']);
+		self::prop($css,'body','font-family',blowupConfig::fontDef($s['body_txt_f']));
+
+		self::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']);
+
+		if (!$s['blog_title_hide'])
+		{
+			self::prop($css,'#top h1 a','color',$s['blog_title_c']);
+			self::prop($css,'#top h1','font-size',$s['blog_title_s']);
+			self::prop($css,'#top h1','font-family',blowupConfig::fontDef($s['blog_title_f']));
+
+			if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') {
+				$css['#top h1'][$s['blog_title_a']] = '0px';
+				$css['#top h1']['width'] = 'auto';
+			}
+
+			if ($s['blog_title_p'])
+			{
+				$_p = explode(':',$s['blog_title_p']);
+				$css['#top h1']['top'] = $_p[1].'px';
+				if ($s['blog_title_a'] != 'center') {
+					$_a = $s['blog_title_a'] == 'right' ? 'right' : 'left';
+					$css['#top h1'][$_a] = $_p[0].'px';
+				}
+			}
+		}
+		else
+		{
+			self::prop($css,'#top h1 span','text-indent','-5000px');
+			self::prop($css,'#top h1','top','0px');
+			$css['#top h1 a'] = array(
+				'display' => 'block',
+				'height' => $s['top_height'] ? ($s['top_height']-10).'px' : '120px',
+				'width' => '800px'
+			);
+		}
+		self::prop($css,'#top','height',$s['top_height']);
+
+		self::prop($css,'.day-date','color',$s['date_title_c']);
+		self::prop($css,'.day-date','font-family',blowupConfig::fontDef($s['date_title_f']));
+		self::prop($css,'.day-date','font-size',$s['date_title_s']);
+
+		self::prop($css,'a','color',$s['body_link_c']);
+		self::prop($css,'a:visited','color',$s['body_link_v_c']);
+		self::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']);
+
+		self::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']);
+		self::prop($css,'#comment-form input.preview','color',$s['body_link_c']);
+		self::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']);
+		self::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']);
+		self::prop($css,'#comment-form input.submit','color',$s['body_link_c']);
+		self::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']);
+		self::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']);
+
+		self::prop($css,'#sidebar','font-family',blowupConfig::fontDef($s['sidebar_text_f']));
+		self::prop($css,'#sidebar','font-size',$s['sidebar_text_s']);
+		self::prop($css,'#sidebar','color',$s['sidebar_text_c']);
+
+		self::prop($css,'#sidebar h2','font-family',blowupConfig::fontDef($s['sidebar_title_f']));
+		self::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']);
+		self::prop($css,'#sidebar h2','color',$s['sidebar_title_c']);
+
+		self::prop($css,'#sidebar h3','font-family',blowupConfig::fontDef($s['sidebar_title2_f']));
+		self::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']);
+		self::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']);
+
+		self::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']);
+		self::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']);
+		self::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']);
+
+		self::prop($css,'#sidebar li a','color',$s['sidebar_link_c']);
+		self::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']);
+		self::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']);
+		self::prop($css,'#search input','color',$s['sidebar_link_c']);
+		self::prop($css,'#search .submit','color',$s['sidebar_link_c']);
+		self::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']);
+		self::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']);
+
+		self::prop($css,'.post-title','color',$s['post_title_c']);
+		self::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']);
+		self::prop($css,'.post-title','font-family',blowupConfig::fontDef($s['post_title_f']));
+		self::prop($css,'.post-title','font-size',$s['post_title_s']);
+
+		self::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']);
+		self::prop($css,'#comments dd','color',$s['post_comment_c']);
+		self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']);
+		self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']);
+
+		self::prop($css,'#prelude, #prelude a','color',$s['prelude_c']);
+
+		self::prop($css,'#footer p','background-color',$s['footer_bg_c']);
+		self::prop($css,'#footer p','color',$s['footer_c']);
+		self::prop($css,'#footer p','font-size',$s['footer_s']);
+		self::prop($css,'#footer p','font-family',blowupConfig::fontDef($s['footer_f']));
+		self::prop($css,'#footer p a','color',$s['footer_l_c']);
+
+		/* Images
+		------------------------------------------------------ */
+		self::backgroundImg($css,'body',$s['body_bg_c'],'body-bg.png');
+		self::backgroundImg($css,'body',$s['body_bg_g'] != 'light','body-bg.png');
+		self::backgroundImg($css,'body',$s['prelude_c'],'body-bg.png');
+		self::backgroundImg($css,'#top',$s['body_bg_c'],'page-t.png');
+		self::backgroundImg($css,'#top',$s['body_bg_g'] != 'light','page-t.png');
+		self::backgroundImg($css,'#top',$s['uploaded'] || $s['top_image'],'page-t.png');
+		self::backgroundImg($css,'#footer',$s['body_bg_c'],'page-b.png');
+		self::backgroundImg($css,'#comments dt',$s['post_comment_bg_c'],'comment-t.png');
+		self::backgroundImg($css,'#comments dd',$s['post_comment_bg_c'],'comment-b.png');
+		self::backgroundImg($css,'#comments dt.me',$s['post_commentmy_bg_c'],'commentmy-t.png');
+		self::backgroundImg($css,'#comments dd.me',$s['post_commentmy_bg_c'],'commentmy-b.png');
+
+		$res = '';
+		foreach ($css as $selector => $values) {
+			$res .= $selector." {\n";
+			foreach ($values as $k => $v) {
+				$res .= $k.':'.$v.";\n";
+			}
+			$res .= "}\n";
+		}
+
+		$res .= $s['extra_css'];
+
+		return $res;
+	}
+
+	protected static function prop(&$css,$selector,$prop,$value)
+	{
+		if ($value) {
+			$css[$selector][$prop] = $value;
+		}
+	}
+
+	protected static function backgroundImg(&$css,$selector,$value,$image)
+	{
+		$file = blowupConfig::imagesPath().'/'.$image;
+		if ($value && file_exists($file)){
+			$css[$selector]['background-image'] = 'url('.blowupConfig::imagesURL().'/'.$image.')';
 		}
 	}
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 1436)
+++ plugins/blowupConfig/index.php	(revision 1179)
@@ -15,5 +15,4 @@
 
 $can_write_images = blowupConfig::canWriteImages();
-$can_write_css = blowupConfig::canWriteCss();
 
 if ($core->error->flag()) {
@@ -189,9 +188,4 @@
 			$blowup_user['prelude_c'] = blowupConfig::adjustColor($_POST['prelude_c']);
 			blowupConfig::createImages($blowup_user,$uploaded);
-		}
-
-		if ($can_write_css)
-		{
-			blowupConfig::createCss($blowup_user);
 		}
 
@@ -227,12 +221,7 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Blowup configuration').'</span>' => ''
-	));
-
-echo
+echo
+'<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Blowup configuration').'</span></h2>'.
 '<p><a class="back" href="blog_theme.php">'.__('back').'</a></p>';
 
Index: plugins/blowupConfig/lib/class.blowup.config.php
===================================================================
--- plugins/blowupConfig/lib/class.blowup.config.php	(revision 1436)
+++ plugins/blowupConfig/lib/class.blowup.config.php	(revision 1179)
@@ -141,246 +141,4 @@
 	}
 
-	public static function cssPath()
-	{
-		global $core;
-		return path::real($core->blog->public_path).'/blowup-css';
-	}
-
-	public static function cssURL()
-	{
-		global $core;
-		return $core->blog->settings->system->public_url.'/blowup-css';
-	}
-
-	public static function canWriteCss($create=false)
-	{
-		global $core;
-
-		$public = path::real($core->blog->public_path);
-		$css = self::cssPath();
-
-		if (!is_dir($public)) {
-			$core->error->add(__('The \'public\' directory does not exist.'));
-			return false;
-		}
-
-		if (!is_dir($css)) {
-			if (!is_writable($public)) {
-				$core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public'));
-				return false;
-			}
-			if ($create) {
-				files::makeDir($css);
-			}
-			return true;
-		}
-
-		if (!is_writable($css)) {
-			$core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public/blowup-css'));
-			return false;
-		}
-
-		return true;
-	}
-
-	public static function createCss($s)
-	{
-		global $core;
-		
-		if ($s === null) {
-			return;
-		}
-
-		$css = array();
-
-		/* Sidebar position
-		---------------------------------------------- */
-		if ($s['sidebar_position'] == 'left') {
-			$css['#wrapper']['background-position'] = '-300px 0';
-			$css['#main']['float'] = 'right';
-			$css['#sidebar']['float'] = 'left';
-		}
-
-		/* Properties
-		---------------------------------------------- */
-		self::prop($css,'body','background-color',$s['body_bg_c']);
-
-		self::prop($css,'body','color',$s['body_txt_c']);
-		self::prop($css,'.post-tags li a:link, .post-tags li a:visited, .post-info-co a:link, .post-info-co a:visited','color',$s['body_txt_c']);
-		self::prop($css,'#page','font-size',$s['body_txt_s']);
-		self::prop($css,'body','font-family',self::fontDef($s['body_txt_f']));
-
-		self::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']);
-
-		if (!$s['blog_title_hide'])
-		{
-			self::prop($css,'#top h1 a','color',$s['blog_title_c']);
-			self::prop($css,'#top h1','font-size',$s['blog_title_s']);
-			self::prop($css,'#top h1','font-family',self::fontDef($s['blog_title_f']));
-
-			if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') {
-				$css['#top h1'][$s['blog_title_a']] = '0px';
-				$css['#top h1']['width'] = 'auto';
-			}
-
-			if ($s['blog_title_p'])
-			{
-				$_p = explode(':',$s['blog_title_p']);
-				$css['#top h1']['top'] = $_p[1].'px';
-				if ($s['blog_title_a'] != 'center') {
-					$_a = $s['blog_title_a'] == 'right' ? 'right' : 'left';
-					$css['#top h1'][$_a] = $_p[0].'px';
-				}
-			}
-		}
-		else
-		{
-			self::prop($css,'#top h1 span','text-indent','-5000px');
-			self::prop($css,'#top h1','top','0px');
-			$css['#top h1 a'] = array(
-				'display' => 'block',
-				'height' => $s['top_height'] ? ($s['top_height']-10).'px' : '120px',
-				'width' => '800px'
-			);
-		}
-		self::prop($css,'#top','height',$s['top_height']);
-
-		self::prop($css,'.day-date','color',$s['date_title_c']);
-		self::prop($css,'.day-date','font-family',self::fontDef($s['date_title_f']));
-		self::prop($css,'.day-date','font-size',$s['date_title_s']);
-
-		self::prop($css,'a','color',$s['body_link_c']);
-		self::prop($css,'a:visited','color',$s['body_link_v_c']);
-		self::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']);
-
-		self::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']);
-		self::prop($css,'#comment-form input.preview','color',$s['body_link_c']);
-		self::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']);
-		self::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']);
-		self::prop($css,'#comment-form input.submit','color',$s['body_link_c']);
-		self::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']);
-		self::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']);
-
-		self::prop($css,'#sidebar','font-family',self::fontDef($s['sidebar_text_f']));
-		self::prop($css,'#sidebar','font-size',$s['sidebar_text_s']);
-		self::prop($css,'#sidebar','color',$s['sidebar_text_c']);
-
-		self::prop($css,'#sidebar h2','font-family',self::fontDef($s['sidebar_title_f']));
-		self::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']);
-		self::prop($css,'#sidebar h2','color',$s['sidebar_title_c']);
-
-		self::prop($css,'#sidebar h3','font-family',self::fontDef($s['sidebar_title2_f']));
-		self::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']);
-		self::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']);
-
-		self::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']);
-		self::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']);
-		self::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']);
-
-		self::prop($css,'#sidebar li a','color',$s['sidebar_link_c']);
-		self::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']);
-		self::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']);
-		self::prop($css,'#search input','color',$s['sidebar_link_c']);
-		self::prop($css,'#search .submit','color',$s['sidebar_link_c']);
-		self::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']);
-		self::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']);
-
-		self::prop($css,'.post-title','color',$s['post_title_c']);
-		self::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']);
-		self::prop($css,'.post-title','font-family',self::fontDef($s['post_title_f']));
-		self::prop($css,'.post-title','font-size',$s['post_title_s']);
-
-		self::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']);
-		self::prop($css,'#comments dd','color',$s['post_comment_c']);
-		self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']);
-		self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']);
-
-		self::prop($css,'#prelude, #prelude a','color',$s['prelude_c']);
-
-		self::prop($css,'#footer p','background-color',$s['footer_bg_c']);
-		self::prop($css,'#footer p','color',$s['footer_c']);
-		self::prop($css,'#footer p','font-size',$s['footer_s']);
-		self::prop($css,'#footer p','font-family',self::fontDef($s['footer_f']));
-		self::prop($css,'#footer p a','color',$s['footer_l_c']);
-
-		/* Images
-		------------------------------------------------------ */
-		self::backgroundImg($css,'body',$s['body_bg_c'],'body-bg.png');
-		self::backgroundImg($css,'body',$s['body_bg_g'] != 'light','body-bg.png');
-		self::backgroundImg($css,'body',$s['prelude_c'],'body-bg.png');
-		self::backgroundImg($css,'#top',$s['body_bg_c'],'page-t.png');
-		self::backgroundImg($css,'#top',$s['body_bg_g'] != 'light','page-t.png');
-		self::backgroundImg($css,'#top',$s['uploaded'] || $s['top_image'],'page-t.png');
-		self::backgroundImg($css,'#footer',$s['body_bg_c'],'page-b.png');
-		self::backgroundImg($css,'#comments dt',$s['post_comment_bg_c'],'comment-t.png');
-		self::backgroundImg($css,'#comments dd',$s['post_comment_bg_c'],'comment-b.png');
-		self::backgroundImg($css,'#comments dt.me',$s['post_commentmy_bg_c'],'commentmy-t.png');
-		self::backgroundImg($css,'#comments dd.me',$s['post_commentmy_bg_c'],'commentmy-b.png');
-
-		$res = '';
-		foreach ($css as $selector => $values) {
-			$res .= $selector." {\n";
-			foreach ($values as $k => $v) {
-				$res .= $k.':'.$v.";\n";
-			}
-			$res .= "}\n";
-		}
-
-		$res .= $s['extra_css'];
-
-		if (!self::canWriteCss(true)) {
-			throw new Exception(__('Unable to create css file.'));
-		}
-
-		# erase old css file
-		self::dropCss($core->blog->settings->system->theme);
-
-		# create new css file into public blowup-css subdirectory
-		self::writeCss($core->blog->settings->system->theme, $res);
-
-		return $res;
-	}
-
-	protected static function prop(&$css,$selector,$prop,$value)
-	{
-		if ($value) {
-			$css[$selector][$prop] = $value;
-		}
-	}
-
-	protected static function backgroundImg(&$css,$selector,$value,$image)
-	{
-		$file = self::imagesPath().'/'.$image;
-		if ($value && file_exists($file)){
-			$css[$selector]['background-image'] = 'url('.self::imagesURL().'/'.$image.')';
-		}
-	}
-
-	private static function writeCss($theme,$css)
-	{
-		file_put_contents(self::cssPath().'/'.$theme.'.css', $css);
-	}
-	
-	public static function dropCss($theme)
-	{
-		$file = path::real(self::cssPath().'/'.$theme.'.css');
-		if (is_writable(dirname($file))) {
-			@unlink($file);
-		}
-	}
-
-	public static function publicCssUrlHelper()
-	{
-		$theme = $GLOBALS['core']->blog->settings->system->theme;
-		$url = blowupConfig::cssURL();
-		$path = blowupConfig::cssPath();
-
-		if (file_exists($path.'/'.$theme.'.css')) {
-			return $url.'/'.$theme.'.css';
-		}
-
-		return null;
-	}
-
 	public static function imagesPath()
 	{
Index: plugins/daInstaller/inc/lib.da.installer.ui.php
===================================================================
--- plugins/daInstaller/inc/lib.da.installer.ui.php	(revision 1416)
+++ plugins/daInstaller/inc/lib.da.installer.ui.php	(revision 1046)
@@ -64,5 +64,5 @@
 				'</table>';
 			
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 			$blocks = explode('%s',$html_block);
 			echo $blocks[0];
@@ -81,5 +81,5 @@
 			}
 			echo $blocks[1];
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 		}
 	}
Index: plugins/daInstaller/index.php
===================================================================
--- plugins/daInstaller/index.php	(revision 1358)
+++ plugins/daInstaller/index.php	(revision 1237)
@@ -255,14 +255,6 @@
 '</head>'.
 '<body>'.
-
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('DotAddict.org Installer').'</span>' => ''
-	)).
-
-infoMessages();
-
-echo
+infoMessages().
+'<h2 class="page-title">'.__('DotAddict.org Installer').'</h2>'.
 '<p>'.__('Install and update your extensions live from DotAddict.org').'</p>';
 
Index: plugins/importExport/inc/class.dc.import.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.import.flat.php	(revision 1298)
+++ plugins/importExport/inc/class.dc.import.flat.php	(revision 939)
@@ -184,12 +184,12 @@
 		'<p>'.sprintf(__('This will import a single blog backup as new content in the current blog: %s.'),html::escapeHTML($this->core->blog->name)).'</p>'.
 		
-		'<p><label for="up_single_file" class="classic">'.__('Upload a backup file').
-		' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.' </label>'.
-		' <input type="file" id="up_single_file" name="up_single_file" size="20" />'.
+		'<p><label for="up_single_file">'.__('Upload a backup file').
+		' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.'</label>'.
+		'<input type="file" id="up_single_file" name="up_single_file" size="20" />'.
 		'</p>';
 		
 		if ($has_files) {
 			echo 
-			'<p><label for="public_single_file" class="classic">'.__('or pick up a local file in your public directory').' '.
+			'<p><label for="public_single_file">'.__('or pick up a local file in your public directory').' '.
 			form::combo('public_single_file',$public_files).
 			'</label></p>';
@@ -211,8 +211,8 @@
 			'<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data" id="formfull">'.
 			'<fieldset><legend>'.__('Multiple blogs').'</legend>'.
-			'<p class="warning">'.__('This will reset all the content of your database, except users.').'</p>'.
-			
-			'<p><label for="up_full_file" class="classic">'.__('Upload a backup file').' '.
-			' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.' </label>'.
+			'<p>'.__('This will reset all the content of your database, except users.').'</p>'.
+			
+			'<p><label for="up_full_file">'.__('Upload a backup file').
+			' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.'</label>'.
 			'<input type="file" id="up_full_file" name="up_full_file" size="20" />'.
 			'</p>';
@@ -220,5 +220,5 @@
 			if ($has_files) {
 				echo 
-				'<p><label for="public_full_file" class="classic">'.__('or pick up a local file in your public directory').' </label>'.
+				'<p><label for="public_full_file">'.__('or pick up a local file in your public directory').'</label>'.
 				form::combo('public_full_file',$public_files).
 				'</p>';
Index: plugins/importExport/index.php
===================================================================
--- plugins/importExport/index.php	(revision 1358)
+++ plugins/importExport/index.php	(revision 840)
@@ -74,12 +74,7 @@
 
 if ($type && $module !== null) {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			$title => $p_url,
-			'<span class="page-title">'.html::escapeHTML($module->name).'</span>' => ''
-		));
-
 	echo
+	'<h2><a href="'.$p_url.'">'.$title.'</a>'.
+	' &rsaquo; <span class="page-title">'.html::escapeHTML($module->name).'</span></h2>'.
 	'<div id="ie-gui">';
 	
@@ -89,11 +84,6 @@
 }
 else {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.$title.'</span>' => ''
-		));
-
 	echo
+	'<h2 class="page-title">'.$title.'</h2>'.
 	'<h3>'.__('Import').'</h3>'.listImportExportModules($core,$modules['import']).
 	'<h3>'.__('Export').'</h3>'.listImportExportModules($core,$modules['export']);
Index: plugins/maintenance/index.php
===================================================================
--- plugins/maintenance/index.php	(revision 1358)
+++ plugins/maintenance/index.php	(revision 1179)
@@ -69,11 +69,5 @@
 
 <body>
-<?php
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.__('Maintenance').'</span>' => ''
-		));
-?>
+<h2 class="page-title"><?php echo __('Maintenance'); ?></h2>
 
 <?php
Index: plugins/pages/_install.php
===================================================================
--- plugins/pages/_install.php	(revision 1440)
+++ plugins/pages/_install.php	(revision 1440)
@@ -0,0 +1,46 @@
+<?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;}
+
+# Create first page
+$core->setBlog('default');
+
+$core->blog->settings->addNamespace('pages');
+$core->blog->settings->pages->put('firstpage',false, 'boolean');
+
+$params = array(
+	'post_type' => 'page',
+	'no_content' => true
+);
+$counter = $core->blog->getPosts($params,true);
+
+If( $counter->f(0) == 0 && !$core->blog->settings->pages->get('firstpage') ) {
+	
+	$core->blog->settings->pages->put('firstpage',true);
+
+	$cur = $core->con->openCursor($core->prefix.'post');
+	$cur->user_id = $core->auth->userID();
+	$cur->post_type = 'page';
+	$cur->post_format = 'xhtml';
+	$cur->post_lang = $core->blog->settings->system->lang;
+	$cur->post_title = __('Page de démonstration');
+	$cur->post_content = __('<h3>Créer une nouvelle page</h3><p>Cliquez sur le lien <strong>Pages</strong> situé sur le <strong>Tableau de bord</strong> ou dans la section <strong>Blog</strong> du menu latéral. La liste des pages s\'affiche. Cliquez sur le bouton <strong>Nouvelle page</strong> en haut de la page pour créer une page. vous retrouvez alors la même interface que pour éditer les <a href="http://fr.dotclear.org/documentation/2.0/usage/entries" class="wikilink1" title="2.0:usage:entries">billets</a> mais sans catégorie ni tags.</p>');
+	$cur->post_content_xhtml = $cur->post_content;
+	$cur->post_excerpt = __('<p>Les pages sont des contenus indépendants des billets. Elles servent par exemple à créer des pages <em>À propos</em> ou <em>Mentions légales</em> qui ont vocation à être toujours accessibles, contrairement aux billets progressivement remplacés par les nouveaux billets.</p>');
+	$cur->post_excerpt_xhtml = $cur->post_excerpt;
+	$cur->post_status = 1;
+	$cur->post_open_comment = 0;
+	$cur->post_open_tb = 0;
+	$post_id = $core->blog->addPost($cur);
+	
+}
Index: plugins/pages/list.php
===================================================================
--- plugins/pages/list.php	(revision 1416)
+++ plugins/pages/list.php	(revision 1179)
@@ -44,5 +44,5 @@
 			}
 			
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 			
 			$blocks = explode('%s',$html_block);
@@ -57,5 +57,5 @@
 			echo $blocks[1];
 			
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 		}
 	}
@@ -177,11 +177,5 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Pages').'</span>' => ''
-	));
-
-echo
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Pages').'</span></h2>'.
 '<p class="top-add"><a class="button add" href="'.$p_url.'&amp;act=page">'.__('New page').'</a></p>';
 
Index: plugins/pages/page.php
===================================================================
--- plugins/pages/page.php	(revision 1358)
+++ plugins/pages/page.php	(revision 1239)
@@ -302,4 +302,5 @@
   dcPage::jsToolBar().
   dcPage::jsModal().
+  dcPage::jsMetaEditor().
   dcPage::jsLoad('js/_post.js').
   dcPage::jsConfirmClose('entry-form','comment-form').
@@ -315,32 +316,4 @@
 <?php
 
-if ($post_id) {
-	switch ($post_status) {
-		case 1:
-			$img_status = sprintf($img_status_pattern,__('published'),'check-on.png');
-			break;
-		case 0:
-			$img_status = sprintf($img_status_pattern,__('unpublished'),'check-off.png');
-			break;
-		case -1:
-			$img_status = sprintf($img_status_pattern,__('scheduled'),'scheduled.png');
-			break;
-		case -2:
-			$img_status = sprintf($img_status_pattern,__('pending'),'check-wrn.png');
-			break;
-		default:
-			$img_status = '';
-	}
-	$edit_entry_title = '&ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
-} else {
-	$edit_entry_title = $page_title;
-}
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Pages') => $p_url,
-		'<span class="page-title">'.$edit_entry_title.'</span>' => ''
-	));
-
 if (!empty($_GET['upd'])) {
 	dcPage::message(__('Page has been successfully updated.'));
@@ -366,6 +339,29 @@
 }
 
+echo '<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="'.$p_url.'">'.__('Pages').'</a> &rsaquo; <span class="page-title">'.$page_title; 
+	if ($post_id) {
+		switch ($post_status) {
+			case 1:
+				$img_status = sprintf($img_status_pattern,__('published'),'check-on.png');
+				break;
+			case 0:
+				$img_status = sprintf($img_status_pattern,__('unpublished'),'check-off.png');
+				break;
+			case -1:
+				$img_status = sprintf($img_status_pattern,__('scheduled'),'scheduled.png');
+				break;
+			case -2:
+				$img_status = sprintf($img_status_pattern,__('pending'),'check-wrn.png');
+				break;
+			default:
+				$img_status = '';
+		}
+		echo ' &ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
+	}
+echo	'</span></h2>';
+
 if ($post_id && $post->post_status == 1) {
-	echo '<p><a class="preview_link" href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this page on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
+	echo '<p><a href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this page on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
 }
 
@@ -374,7 +370,7 @@
 if ($post_id)
 {
-	echo '<p class="nav_prevnext">';
+	echo '<p>';
 	if ($prev_link) { echo $prev_link; }
-	if ($next_link && $prev_link) { echo ' | '; }
+	if ($next_link && $prev_link) { echo ' - '; }
 	if ($next_link) { echo $next_link; }
 	
Index: plugins/pings/_admin.php
===================================================================
--- plugins/pings/_admin.php	(revision 1398)
+++ plugins/pings/_admin.php	(revision 1179)
@@ -33,5 +33,5 @@
 
 $core->addBehavior('adminPostHeaders',array('pingsBehaviors','pingJS'));
-$core->addBehavior('adminPostFormItems',array('pingsBehaviors','pingsFormItems'));
+$core->addBehavior('adminPostFormSidebar',array('pingsBehaviors','pingsForm'));
 $core->addBehavior('adminAfterPostCreate',array('pingsBehaviors','doPings'));
 $core->addBehavior('adminAfterPostUpdate',array('pingsBehaviors','doPings'));
Index: plugins/pings/index.php
===================================================================
--- plugins/pings/index.php	(revision 1358)
+++ plugins/pings/index.php	(revision 1179)
@@ -51,10 +51,5 @@
 <body>
 <?php
-
-echo dcPage::breadcrumb(
-	array(
-		__('Plugins') => '',
-		'<span class="page-title">'.__('Pings configuration').'</span>' => ''
-	));
+echo '<h2 class="page-title">'.__('Pings configuration').'</h2>';
 
 if (!empty($_GET['up'])) {
Index: plugins/pings/lib.pings.php
===================================================================
--- plugins/pings/lib.pings.php	(revision 1398)
+++ plugins/pings/lib.pings.php	(revision 1179)
@@ -41,5 +41,5 @@
 	}
 	
-	public static function pingsFormItems($main,$sidebar,$post)
+	public static function pingsForm($post)
 	{
 		$core =& $GLOBALS['core'];
@@ -59,9 +59,9 @@
 		}
 		
-		$item = '<h5 class="ping-services">'.__('Pings').'</h5>';
+		echo '<h3 class="ping-services">'.__('Pings:').'</h3>';
 		$i = 0;
 		foreach ($pings_uris as $k => $v)
 		{
-			$item .=
+			echo
 			'<p class="ping-services"><label for="pings_do-'.$i.'" class="classic">'.
 			form::checkbox(array('pings_do[]','pings_do-'.$i),html::escapeHTML($v),in_array($v,$pings_do)).' '.
@@ -69,6 +69,4 @@
 			$i++;
 		}
-		$sidebar['options-box']['items']['pings']=$item;
-		
 	}
 	
Index: plugins/pings/post.js
===================================================================
--- plugins/pings/post.js	(revision 1365)
+++ plugins/pings/post.js	(revision 0)
@@ -12,5 +12,5 @@
 			$('p.ping-services:last').after(p.append(a));
 		}
-		$('h5.ping-services').toggleWithLegend($('p.ping-services'),{
+		$('h3.ping-services').toggleWithLegend($('p.ping-services'),{
 			cookie: 'dcx_ping_services'
 		});
Index: plugins/simpleMenu/_admin.php
===================================================================
--- plugins/simpleMenu/_admin.php	(revision 1292)
+++ plugins/simpleMenu/_admin.php	(revision 1179)
@@ -25,5 +25,5 @@
 }
 
-$_menu['Blog']->addItem(__('Simple menu'),'plugin.php?p=simpleMenu','index.php?pf=simpleMenu/icon-small.png',
+$_menu['Plugins']->addItem(__('Simple menu'),'plugin.php?p=simpleMenu','index.php?pf=simpleMenu/icon-small.png',
                 preg_match('/plugin.php\?p=simpleMenu(&.*)?$/',$_SERVER['REQUEST_URI']),
                 $core->auth->check('usage,contentadmin',$core->blog->id));
Index: plugins/simpleMenu/index.php
===================================================================
--- plugins/simpleMenu/index.php	(revision 1358)
+++ plugins/simpleMenu/index.php	(revision 1179)
@@ -368,19 +368,4 @@
 <?php
 
-if ($step) {
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			$page_title => $p_url,
-			'<span class="page-title">'.__('Add item').'</span>' => ''
-		));
-} else {
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.$page_title.'</span>' => ''
-		));
-}
-
 if (!empty($_GET['added'])) {
 	dcPage::message(__('Menu item has been successfully added.'));
@@ -396,7 +381,9 @@
 }
 
-if ($step)
+if ($step) 
 {
 	// Formulaire d'ajout d'un item
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_title.'</a> &rsaquo; <span class="page-title">'.__('Add item').'</span></h2>';
+	
 	switch ($step) {
 		case 1:
@@ -467,6 +454,10 @@
 // Liste des items
 if (!$step) {
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
+}
+
+if (!$step) {
 	echo '<form id="menuitemsappend" action="'.$p_url.'&add=1" method="post">';
-	echo '<p class="top-add">'.$core->formNonce().'<input class="button add" type="submit" name="appendaction" value="'.__('Add an item').'" /></p>';
+	echo '<p>'.$core->formNonce().'<input class="add" type="submit" name="appendaction" value="'.__('Add an item').'" /></p>';
 	echo '</form>';
 }
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 1398)
+++ plugins/tags/_admin.php	(revision 1239)
@@ -18,8 +18,10 @@
 require dirname(__FILE__).'/_widgets.php';
 
-$core->addBehavior('adminPostFormItems',array('tagsBehaviors','tagsField'));
+$core->addBehavior('adminPostFormSidebar',array('tagsBehaviors','tagsField'));
 
 $core->addBehavior('adminAfterPostCreate',array('tagsBehaviors','setTags'));
 $core->addBehavior('adminAfterPostUpdate',array('tagsBehaviors','setTags'));
+
+$core->addBehavior('adminPageHeaders',array('tagsBehaviors','pageHeaders'));
 
 $core->addBehavior('adminPostHeaders',array('tagsBehaviors','postHeaders'));
@@ -71,5 +73,5 @@
 	}
 	
-	public static function tagsField($main,$sidebar,$post)
+	public static function tagsField($post)
 	{
 		$meta =& $GLOBALS['core']->meta;
@@ -80,7 +82,8 @@
 			$value = ($post) ? $meta->getMetaStr($post->post_meta,'tag') : '';
 		}
-		$sidebar['metas-box']['items']['post_tags']=
-		'<h5><label class="s-tags" for="post_tags">'.__('Tags').'</label></h5>'.
-		'<div class="p s-tags" id="tags-edit">'.form::textarea('post_tags',20,3,$value,'maximal').'</div>';
+		
+		echo
+		'<h3><label for="post_tags">'.__('Tags:').'</label></h3>'.
+		'<div class="p" id="tags-edit">'.form::textarea('post_tags',20,3,$value,'maximal').'</div>';
 	}
 	
@@ -98,4 +101,33 @@
 			}
 		}
+	}
+
+	public static function pageHeaders()
+	{
+		$tag_url = $GLOBALS['core']->blog->url.$GLOBALS['core']->url->getURLFor('tag');
+		
+		$opts = $GLOBALS['core']->auth->getOptions();
+		$type = isset($opts['tag_list_format']) ? $opts['tag_list_format'] : 'more';
+		
+		return 
+		'<script type="text/javascript" src="index.php?pf=tags/js/jquery.autocomplete.js"></script>'.
+		'<script type="text/javascript" src="index.php?pf=tags/js/page.js"></script>'.
+		'<script type="text/javascript">'."\n".
+		"//<![CDATA[\n".
+		"metaEditor.prototype.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag=';\n".
+		"metaEditor.prototype.meta_type = '".html::escapeJS($type)."';\n".
+		"metaEditor.prototype.text_confirm_remove = '".html::escapeJS(__('Are you sure you want to remove this %s?'))."';\n".
+		"metaEditor.prototype.text_add_meta = '".html::escapeJS(__('Add a %s to this entry'))."';\n".
+		"metaEditor.prototype.text_choose = '".html::escapeJS(__('Choose from list'))."';\n".
+		"metaEditor.prototype.text_all = '".html::escapeJS(__('all'))."';\n".
+		"metaEditor.prototype.text_separation = '';\n".
+		"jsToolBar.prototype.elements.tag.title = '".html::escapeJS(__('Tag'))."';\n".
+		"jsToolBar.prototype.elements.tag.url = '".html::escapeJS($tag_url)."';\n".
+		"dotclear.msg.tags_autocomplete = '".html::escapeJS(__('used in %e - frequency %p%'))."';\n".
+		"dotclear.msg.entry = '".html::escapeJS(__('entry'))."';\n".
+		"dotclear.msg.entries = '".html::escapeJS(__('entries'))."';\n".
+		"\n//]]>\n".
+		"</script>\n".
+		'<link rel="stylesheet" type="text/css" href="index.php?pf=tags/style.css" />';
 	}
 	
Index: plugins/tags/_define.php
===================================================================
--- plugins/tags/_define.php	(revision 1392)
+++ plugins/tags/_define.php	(revision 1179)
@@ -18,6 +18,5 @@
 	/* Version */			'1.2',
 	array(
-		'permissions' =>	'usage,contentadmin',
-		'priority' =>		998
+		'permissions' =>	'usage,contentadmin'
 	)
 );
Index: plugins/tags/js/page.js
===================================================================
--- plugins/tags/js/page.js	(revision 1240)
+++ plugins/tags/js/page.js	(revision 1240)
@@ -0,0 +1,70 @@
+$(function () {
+    $('#edit-entry').onetabload(function () {
+        var tags_edit = $('#tags-edit');
+        var post_id = $('#id');
+        var meta_field = null;
+        if (tags_edit.length > 0) {
+            post_id = (post_id.length > 0) ? post_id.get(0).value : false;
+            if (post_id == false) {
+                meta_field = $('<input type="hidden" name="post_tags" />');
+                meta_field.val($('#post_tags').val());
+            }
+            var mEdit = new metaEditor(tags_edit, meta_field, 'tag');
+            mEdit.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag=';
+            mEdit.displayMeta('tag', post_id);
+            window.dc_tag_editor = mEdit;
+        }
+    });
+});
+jsToolBar.prototype.elements.tagSpace = {
+    type: 'space'
+};
+jsToolBar.prototype.elements.tag = {
+    type: 'button',
+    title: 'Keyword',
+    fn: {}
+};
+jsToolBar.prototype.elements.tag.context = 'post';
+jsToolBar.prototype.elements.tag.icon = 'index.php?pf=tags/img/tag-add.png';
+jsToolBar.prototype.elements.tag.fn.wiki = function () {
+    this.encloseSelection('', '', function (str) {
+        if (str == '') {
+            window.alert(dotclear.msg.no_selection);
+            return '';
+        }
+        if (str.indexOf(',') != -1) {
+            return str;
+        } else {
+            return '[' + str + '|tag:' + str + ']';
+        }
+    });
+};
+jsToolBar.prototype.elements.tag.fn.xhtml = function () {
+    var url = this.elements.tag.url;
+    this.encloseSelection('', '', function (str) {
+        if (str == '') {
+            window.alert(dotclear.msg.no_selection);
+            return '';
+        }
+        if (str.indexOf(',') != -1) {
+            return str;
+        } else {
+            return '<a href="' + this.stripBaseURL(url + '/' + str) + '">' + str + '</a>';
+        }
+    });
+};
+jsToolBar.prototype.elements.tag.fn.wysiwyg = function () {
+    var t = this.getSelectedText();
+    if (t == '') {
+        window.alert(dotclear.msg.no_selection);
+        return;
+    }
+    if (t.indexOf(',') != -1) {
+        return;
+    }
+    var n = this.getSelectedNode();
+    var a = document.createElement('a');
+    a.href = this.stripBaseURL(this.elements.tag.url + '/' + t);
+    a.appendChild(n);
+    this.insertNode(a);
+};
Index: plugins/tags/js/post.js
===================================================================
--- plugins/tags/js/post.js	(revision 1392)
+++ plugins/tags/js/post.js	(revision 1112)
@@ -58,9 +58,4 @@
 		});
 	});
-			
-	$('h5 .s-tags').toggleWithLegend($('.s-tags').not('label'),{
-			cookie: 'post_tags'
-	});
-
 });
 
Index: plugins/tags/tag_posts.php
===================================================================
--- plugins/tags/tag_posts.php	(revision 1358)
+++ plugins/tags/tag_posts.php	(revision 1179)
@@ -109,12 +109,6 @@
 <body>
 
-<?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Tags') => $p_url.'&amp;m=tags',
-		'<span class="page-title">'.__('Tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'.'</span>' => ''
-	));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
+<span class="page-title"><?php echo __('Edit tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'; ?></span></h2>
 
 <?php
@@ -136,15 +130,15 @@
 		'<input type="submit" value="'.__('Rename').'" />'.
 		$core->formNonce().
-		'</p></form>';
+		'</form>';
 		# Remove tag
 		if (!$posts->isEmpty() && $core->auth->check('contentadmin',$core->blog->id)) {
 			echo
 			'<form id="tag_delete" action="'.$this_url.'" method="post">'.
-			'<p class="no-margin">'.__('Delete this tag:').
-			'</p><p><input type="submit" class="delete" name="delete" value="'.__('Delete').'" />'.
+			'<p class="no-margin">'.__('Delete this tag:').'</p>'.
+			'<input type="submit" class="delete" name="delete" value="'.__('Delete').'" />'.
 			$core->formNonce().
-			'</p></form>';
+			'</form>';
 		}
-		echo '</div>';
+		echo '</p></div>';
 	}
 	
Index: plugins/tags/tags.php
===================================================================
--- plugins/tags/tags.php	(revision 1358)
+++ plugins/tags/tags.php	(revision 1179)
@@ -20,11 +20,6 @@
 
 <body>
-<?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Tags').'</span>' => ''
-	));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
+<span class="page-title"><?php echo __('Tags'); ?></span></h2>
 
 <?php
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 1382)
+++ plugins/themeEditor/_admin.php	(revision 1179)
@@ -26,5 +26,5 @@
 	{
 		if ($id != 'default' && $core->auth->isSuperAdmin()) {
-			return '<p><a href="plugin.php?p=themeEditor" class="button">'.__('Edit theme files').'</a></p>';
+			return '<p><a href="plugin.php?p=themeEditor" class="button">'.__('Theme Editor').'</a></p>';
 		}
 	}
Index: plugins/themeEditor/index.php
===================================================================
--- plugins/themeEditor/index.php	(revision 1382)
+++ plugins/themeEditor/index.php	(revision 1179)
@@ -61,5 +61,5 @@
 <html>
 <head>
-  <title><?php echo __('Edit theme files'); ?></title>
+  <title><?php echo __('Theme Editor'); ?></title>
   <link rel="stylesheet" type="text/css" href="index.php?pf=themeEditor/style.css" />
   <script type="text/javascript">
@@ -86,12 +86,6 @@
 
 <body>
-<?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Edit theme files').'</span>' => ''
-	));
-?>
+<?php echo '<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Theme Editor').'</span></h2>'; ?>
 
 <p><strong><?php echo sprintf(__('Your current theme on this blog is "%s".'),html::escapeHTML($T['name'])); ?></strong></p>
Index: plugins/userPref/_admin.php
===================================================================
--- plugins/userPref/_admin.php	(revision 1293)
+++ plugins/userPref/_admin.php	(revision 1179)
@@ -12,5 +12,5 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$_menu['System']->addItem('user:preferences','plugin.php?p=userPref','index.php?pf=userPref/icon.png',
+$_menu['Plugins']->addItem('user:preferences','plugin.php?p=userPref','index.php?pf=userPref/icon.png',
 		preg_match('/plugin.php\?p=userPref(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin());
Index: plugins/userPref/index.php
===================================================================
--- plugins/userPref/index.php	(revision 1358)
+++ plugins/userPref/index.php	(revision 1179)
@@ -81,5 +81,5 @@
 	
 	return
-	'<tr class="line">'.
+	'<tr>'.
 	'<td scope="raw"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
@@ -93,4 +93,9 @@
   <title>user:preferences</title>
   <?php echo dcPage::jsPageTabs($part); ?>
+  <style type="text/css">
+	table.prefs { border: 1px solid #999; margin-bottom: 2em; }
+	table.prefs th { background: #f5f5f5; color: #444; padding-top: 0.3em; padding-bottom: 0.3em; }
+	p.anchor-nav {float: right; }
+  </style>
 	<script type="text/javascript">
 	//<![CDATA[
@@ -111,11 +116,4 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.__('user:preferences').'</span>' => ''
-	));
-
 if (!empty($_GET['upd'])) {
 	dcPage::message(__('Preferences successfully updated'));
@@ -126,9 +124,10 @@
 }
 ?>
-
-<div id="local" class="multi-part" title="<?php echo __('User preferences'); ?>">
+<h2><?php echo html::escapeHTML($core->auth->userID()); ?> &rsaquo; <span class="page-title">user:preferences</span></h2>
+
+<div id="local" class="multi-part" title="<?php echo __('user preferences'); ?>">
 
 <?php 
-$table_header = '<table class="prefs" id="%s"><caption class="as_h3">%s</caption>'.
+$table_header = '<table class="prefs" id="%s"><caption>%s</caption>'.
 '<thead>'.
 '<tr>'."\n".
@@ -185,5 +184,5 @@
 </div>
 
-<div id="global" class="multi-part" title="<?php echo __('Global preferences'); ?>">
+<div id="global" class="multi-part" title="<?php echo __('global preferences'); ?>">
 
 <?php
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 1280)
+++ plugins/widgets/_widgets_functions.php	(revision 1253)
@@ -29,8 +29,6 @@
 		($w->title ? '<h2><label for="q">'.html::escapeHTML($w->title).'</label></h2>' : '').
 		'<form action="'.$core->blog->url.'" method="get">'.
-		'<fieldset>'.
 		'<p><input type="text" size="10" maxlength="255" id="q" name="q" value="'.$value.'" /> '.
 		'<input type="submit" class="submit" value="ok" /></p>'.
-		'</fieldset>'.
 		'</form>'.
 		($w->content_only ? '' : '</div>');
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 1358)
+++ plugins/widgets/index.php	(revision 1179)
@@ -188,9 +188,5 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Widgets').'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Widgets').'</span></h2>';
 
 # All widgets
@@ -252,5 +248,5 @@
 'drag it from the Available widgets list on the left to one of the sidebars on the right of this page. You can order '.
 'your widgets in a sidebar by dragging them up or down. You must update sidebars to apply your changes.').'</p>'.
-'<p>'.__('Once included in a sidebar, widgets have configuration options that you can reach by clicking on the arrow next '.
+'<p>'.__('Once included in a sidebar, widgets have configuration options that you can reach by clicking on the + sign next '.
 'to their name.').'</p>'.
 '<p>'.__('Reset sidebars to get back to default widgets installation.').'</p>'.
Index: plugins/widgets/style.css
===================================================================
--- plugins/widgets/style.css	(revision 1301)
+++ plugins/widgets/style.css	(revision 665)
@@ -40,5 +40,5 @@
 
 .widgets p.widget-name {
-	background: #F0EFEA;
+	background: #E5E3DA;
 	color: #000;
 	padding: 4px;
@@ -46,5 +46,5 @@
 	border-width: 1px 1px 1px 1px;
 	border-style: solid;
-	border-color: #bbb;
+	border-color: #666;
 	font-weight: bold;
 }
