Index: CHANGELOG
===================================================================
--- CHANGELOG	(revision 2879)
+++ CHANGELOG	(revision 2898)
@@ -1,2 +1,8 @@
+Dotclear 2.7.3 - 2015-01-06
+===========================================================
+* Restore advanced edition of category description (as in 2.6)
+* Various bug fixes
+* Some cosmetic adjustments
+
 Dotclear 2.7.2 - 2014-12-25
 ===========================================================
Index: Makefile
===================================================================
--- Makefile	(revision 2896)
+++ Makefile	(revision 2801)
@@ -67,5 +67,4 @@
 	find ./$(DIST)/ -type d -name '.git' | xargs -r rm -rf
 	find ./$(DIST)/ -type f -name '.*ignore' | xargs -r rm -rf
-	find ./$(DIST)/ -type f -name '.flow' | xargs -r rm -rf
 
 	## Create digest
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 2900)
+++ admin/blog_pref.php	(revision 2858)
@@ -160,155 +160,128 @@
 
 # Update a blog
-if ($blog_id && $core->auth->check('admin',$blog_id))
+if ($blog_id && !empty($_POST) && $core->auth->check('admin',$blog_id))
 {
-	if (isset($_POST['save_blog'])) {
-		$cur = $core->con->openCursor($core->prefix.'blog');
-		if ($core->auth->isSuperAdmin()) {
-			$cur->blog_id = $_POST['blog_id'];
-			$cur->blog_url = preg_replace('/\?+$/','?',$_POST['blog_url']);
-			if (in_array($_POST['blog_status'],$status_combo)) {
-				$cur->blog_status = (integer) $_POST['blog_status'];
+	$cur = $core->con->openCursor($core->prefix.'blog');
+	if ($core->auth->isSuperAdmin()) {
+		$cur->blog_id = $_POST['blog_id'];
+		$cur->blog_url = preg_replace('/\?+$/','?',$_POST['blog_url']);
+		if (in_array($_POST['blog_status'],$status_combo)) {
+			$cur->blog_status = (integer) $_POST['blog_status'];
+		}
+	}
+	$cur->blog_name = $_POST['blog_name'];
+	$cur->blog_desc = $_POST['blog_desc'];
+
+	$media_img_t_size = abs((integer) $_POST['media_img_t_size']);
+	if ($media_img_t_size < 0) { $media_img_t_size = 100; }
+
+	$media_img_s_size = abs((integer) $_POST['media_img_s_size']);
+	if ($media_img_s_size < 0) { $media_img_s_size = 240; }
+
+	$media_img_m_size = abs((integer) $_POST['media_img_m_size']);
+	if ($media_img_m_size < 0) { $media_img_m_size = 448; }
+
+	$nb_post_for_home = abs((integer) $_POST['nb_post_for_home']);
+	if ($nb_post_for_home <= 1) { $nb_post_for_home = 1; }
+
+	$nb_post_per_page = abs((integer) $_POST['nb_post_per_page']);
+	if ($nb_post_per_page <= 1) { $nb_post_per_page = 1; }
+
+	$nb_post_per_feed = abs((integer) $_POST['nb_post_per_feed']);
+	if ($nb_post_per_feed <= 1) { $nb_post_per_feed = 1; }
+
+	$nb_comment_per_feed = abs((integer) $_POST['nb_comment_per_feed']);
+	if ($nb_comment_per_feed <= 1) { $nb_comment_per_feed = 1; }
+
+	try
+	{
+		if ($cur->blog_id != null && $cur->blog_id != $blog_id) {
+			$rs = $core->getBlog($cur->blog_id);
+
+			if ($rs) {
+				throw new Exception(__('This blog ID is already used.'));
 			}
 		}
-		$cur->blog_name = $_POST['blog_name'];
-		$cur->blog_desc = $_POST['blog_desc'];
-
-		$media_img_t_size = abs((integer) $_POST['media_img_t_size']);
-		if ($media_img_t_size < 0) { $media_img_t_size = 100; }
-
-		$media_img_s_size = abs((integer) $_POST['media_img_s_size']);
-		if ($media_img_s_size < 0) { $media_img_s_size = 240; }
-
-		$media_img_m_size = abs((integer) $_POST['media_img_m_size']);
-		if ($media_img_m_size < 0) { $media_img_m_size = 448; }
-
-		$nb_post_for_home = abs((integer) $_POST['nb_post_for_home']);
-		if ($nb_post_for_home <= 1) { $nb_post_for_home = 1; }
-
-		$nb_post_per_page = abs((integer) $_POST['nb_post_per_page']);
-		if ($nb_post_per_page <= 1) { $nb_post_per_page = 1; }
-
-		$nb_post_per_feed = abs((integer) $_POST['nb_post_per_feed']);
-		if ($nb_post_per_feed <= 1) { $nb_post_per_feed = 1; }
-
-		$nb_comment_per_feed = abs((integer) $_POST['nb_comment_per_feed']);
-		if ($nb_comment_per_feed <= 1) { $nb_comment_per_feed = 1; }
-
-		try
-		{
-			if ($cur->blog_id != null && $cur->blog_id != $blog_id) {
-				$rs = $core->getBlog($cur->blog_id);
-
-				if ($rs) {
-					throw new Exception(__('This blog ID is already used.'));
-				}
+
+		# --BEHAVIOR-- adminBeforeBlogUpdate
+		$core->callBehavior('adminBeforeBlogUpdate',$cur,$blog_id);
+
+		if (!preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$_POST['lang'])) {
+			throw new Exception(__('Invalid language code'));
+		}
+
+		$core->updBlog($blog_id,$cur);
+
+		# --BEHAVIOR-- adminAfterBlogUpdate
+		$core->callBehavior('adminAfterBlogUpdate',$cur,$blog_id);
+
+		if ($cur->blog_id != null && $cur->blog_id != $blog_id) {
+			if ($blog_id == $core->blog->id) {
+				$core->setBlog($cur->blog_id);
+				$_SESSION['sess_blog_id'] = $cur->blog_id;
+				$blog_settings = $core->blog->settings;
+			} else {
+				$blog_settings = new dcSettings($core,$cur->blog_id);
 			}
 
-			# --BEHAVIOR-- adminBeforeBlogUpdate
-			$core->callBehavior('adminBeforeBlogUpdate',$cur,$blog_id);
-
-			if (!preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$_POST['lang'])) {
-				throw new Exception(__('Invalid language code'));
-			}
-
-			$core->updBlog($blog_id,$cur);
-
-			# --BEHAVIOR-- adminAfterBlogUpdate
-			$core->callBehavior('adminAfterBlogUpdate',$cur,$blog_id);
-
-			if ($cur->blog_id != null && $cur->blog_id != $blog_id) {
-				if ($blog_id == $core->blog->id) {
-					$core->setBlog($cur->blog_id);
-					$_SESSION['sess_blog_id'] = $cur->blog_id;
-					$blog_settings = $core->blog->settings;
-				} else {
-					$blog_settings = new dcSettings($core,$cur->blog_id);
-				}
-
-				$blog_id = $cur->blog_id;
-			}
-
-
-			$blog_settings->addNameSpace('system');
-
-			$blog_settings->system->put('editor',$_POST['editor']);
-			$blog_settings->system->put('copyright_notice',$_POST['copyright_notice']);
-			$blog_settings->system->put('post_url_format',$_POST['post_url_format']);
-			$blog_settings->system->put('lang',$_POST['lang']);
-			$blog_settings->system->put('blog_timezone',$_POST['blog_timezone']);
-			$blog_settings->system->put('date_format',$_POST['date_format']);
-			$blog_settings->system->put('time_format',$_POST['time_format']);
-			$blog_settings->system->put('comments_ttl',abs((integer) $_POST['comments_ttl']));
-			$blog_settings->system->put('trackbacks_ttl',abs((integer) $_POST['trackbacks_ttl']));
-			$blog_settings->system->put('allow_comments',!empty($_POST['allow_comments']));
-			$blog_settings->system->put('allow_trackbacks',!empty($_POST['allow_trackbacks']));
-			$blog_settings->system->put('comments_pub',empty($_POST['comments_pub']));
-			$blog_settings->system->put('trackbacks_pub',empty($_POST['trackbacks_pub']));
-			$blog_settings->system->put('comments_nofollow',!empty($_POST['comments_nofollow']));
-			$blog_settings->system->put('wiki_comments',!empty($_POST['wiki_comments']));
-			$blog_settings->system->put('comment_preview_optional',!empty($_POST['comment_preview_optional']));
-			$blog_settings->system->put('enable_xmlrpc',!empty($_POST['enable_xmlrpc']));
-			$blog_settings->system->put('note_title_tag',$_POST['note_title_tag']);
-			$blog_settings->system->put('nb_post_for_home',$nb_post_for_home);
-			$blog_settings->system->put('nb_post_per_page',$nb_post_per_page);
-			$blog_settings->system->put('use_smilies',!empty($_POST['use_smilies']));
-			$blog_settings->system->put('inc_subcats',!empty($_POST['inc_subcats']));
-			$blog_settings->system->put('media_img_t_size',$media_img_t_size);
-			$blog_settings->system->put('media_img_s_size',$media_img_s_size);
-			$blog_settings->system->put('media_img_m_size',$media_img_m_size);
-			$blog_settings->system->put('media_img_title_pattern',$_POST['media_img_title_pattern']);
-			$blog_settings->system->put('media_img_use_dto_first',!empty($_POST['media_img_use_dto_first']));
-			$blog_settings->system->put('media_img_no_date_alone',!empty($_POST['media_img_no_date_alone']));
-			$blog_settings->system->put('media_img_default_size',$_POST['media_img_default_size']);
-			$blog_settings->system->put('media_img_default_alignment',$_POST['media_img_default_alignment']);
-			$blog_settings->system->put('media_img_default_link',!empty($_POST['media_img_default_link']));
-			$blog_settings->system->put('nb_post_per_feed',$nb_post_per_feed);
-			$blog_settings->system->put('nb_comment_per_feed',$nb_comment_per_feed);
-			$blog_settings->system->put('short_feed_items',!empty($_POST['short_feed_items']));
-			if (isset($_POST['robots_policy'])) {
-				$blog_settings->system->put('robots_policy',$_POST['robots_policy']);
-			}
-			$blog_settings->system->put('jquery_version',$_POST['jquery_version']);
-			$blog_settings->system->put('prevents_clickjacking',!empty($_POST['prevents_clickjacking']));
-
-			# --BEHAVIOR-- adminBeforeBlogSettingsUpdate
-			$core->callBehavior('adminBeforeBlogSettingsUpdate',$blog_settings);
-
-			if ($core->auth->isSuperAdmin() && in_array($_POST['url_scan'],$url_scan_combo)) {
-				$blog_settings->system->put('url_scan',$_POST['url_scan']);
-			}
-			dcPage::addSuccessNotice(__('Blog has been successfully updated.'));
-
-			http::redirect(sprintf($redir,$blog_id));
-			exit;
-		}
-		catch (Exception $e)
-		{
-			$core->error->add($e->getMessage());
-		}
-	} elseif (isset($_POST['enable']) && is_array($_POST['enable'])) {
-		$blog_settings->addNamespace('pluginsactivated');
-		foreach ($_POST['enable'] as $id => $desc) {
-			if ($core->plugins->moduleExists($id) && 
-				($blog_settings->pluginsactivated->get($id) !== null) &&
-				$core->plugins->moduleInfo($id,'perblog_activation')) {
-				$blog_settings->pluginsactivated->put($id,true);
-			}
-		}
-		dcPage::addSuccessNotice(__('Plugin successfully enabled.'));
-		http::redirect(sprintf($redir,$blog_id)."#plugins");
-		exit;
-	} elseif (isset($_POST['disable']) && is_array($_POST['disable'])) {
-		$blog_settings->addNamespace('pluginsactivated');
-		foreach ($_POST['disable'] as $id => $desc) {
-			if ($core->plugins->moduleExists($id) && 
-				($blog_settings->pluginsactivated->get($id) !== null) &&
-				$core->plugins->moduleInfo($id,'perblog_activation')) {
-				$blog_settings->pluginsactivated->put($id,false);
-			}
-		}
-		dcPage::addSuccessNotice(__('Plugin successfully disabled.'));
-		http::redirect(sprintf($redir,$blog_id)."#plugins");
-		exit;
+			$blog_id = $cur->blog_id;
+		}
+
+
+		$blog_settings->addNameSpace('system');
+
+		$blog_settings->system->put('editor',$_POST['editor']);
+		$blog_settings->system->put('copyright_notice',$_POST['copyright_notice']);
+		$blog_settings->system->put('post_url_format',$_POST['post_url_format']);
+		$blog_settings->system->put('lang',$_POST['lang']);
+		$blog_settings->system->put('blog_timezone',$_POST['blog_timezone']);
+		$blog_settings->system->put('date_format',$_POST['date_format']);
+		$blog_settings->system->put('time_format',$_POST['time_format']);
+		$blog_settings->system->put('comments_ttl',abs((integer) $_POST['comments_ttl']));
+		$blog_settings->system->put('trackbacks_ttl',abs((integer) $_POST['trackbacks_ttl']));
+		$blog_settings->system->put('allow_comments',!empty($_POST['allow_comments']));
+		$blog_settings->system->put('allow_trackbacks',!empty($_POST['allow_trackbacks']));
+		$blog_settings->system->put('comments_pub',empty($_POST['comments_pub']));
+		$blog_settings->system->put('trackbacks_pub',empty($_POST['trackbacks_pub']));
+		$blog_settings->system->put('comments_nofollow',!empty($_POST['comments_nofollow']));
+		$blog_settings->system->put('wiki_comments',!empty($_POST['wiki_comments']));
+		$blog_settings->system->put('comment_preview_optional',!empty($_POST['comment_preview_optional']));
+		$blog_settings->system->put('enable_xmlrpc',!empty($_POST['enable_xmlrpc']));
+		$blog_settings->system->put('note_title_tag',$_POST['note_title_tag']);
+		$blog_settings->system->put('nb_post_for_home',$nb_post_for_home);
+		$blog_settings->system->put('nb_post_per_page',$nb_post_per_page);
+		$blog_settings->system->put('use_smilies',!empty($_POST['use_smilies']));
+		$blog_settings->system->put('inc_subcats',!empty($_POST['inc_subcats']));
+		$blog_settings->system->put('media_img_t_size',$media_img_t_size);
+		$blog_settings->system->put('media_img_s_size',$media_img_s_size);
+		$blog_settings->system->put('media_img_m_size',$media_img_m_size);
+		$blog_settings->system->put('media_img_title_pattern',$_POST['media_img_title_pattern']);
+		$blog_settings->system->put('media_img_use_dto_first',!empty($_POST['media_img_use_dto_first']));
+		$blog_settings->system->put('media_img_no_date_alone',!empty($_POST['media_img_no_date_alone']));
+		$blog_settings->system->put('media_img_default_size',$_POST['media_img_default_size']);
+		$blog_settings->system->put('media_img_default_alignment',$_POST['media_img_default_alignment']);
+		$blog_settings->system->put('media_img_default_link',!empty($_POST['media_img_default_link']));
+		$blog_settings->system->put('nb_post_per_feed',$nb_post_per_feed);
+		$blog_settings->system->put('nb_comment_per_feed',$nb_comment_per_feed);
+		$blog_settings->system->put('short_feed_items',!empty($_POST['short_feed_items']));
+		if (isset($_POST['robots_policy'])) {
+			$blog_settings->system->put('robots_policy',$_POST['robots_policy']);
+		}
+		$blog_settings->system->put('jquery_version',$_POST['jquery_version']);
+		$blog_settings->system->put('prevents_clickjacking',!empty($_POST['prevents_clickjacking']));
+
+		# --BEHAVIOR-- adminBeforeBlogSettingsUpdate
+		$core->callBehavior('adminBeforeBlogSettingsUpdate',$blog_settings);
+
+		if ($core->auth->isSuperAdmin() && in_array($_POST['url_scan'],$url_scan_combo)) {
+			$blog_settings->system->put('url_scan',$_POST['url_scan']);
+		}
+		dcPage::addSuccessNotice(__('Blog has been successfully updated.'));
+
+		http::redirect(sprintf($redir,$blog_id));
+	}
+	catch (Exception $e)
+	{
+		$core->error->add($e->getMessage());
 	}
 }
@@ -367,5 +340,6 @@
 
 	echo
-	'<div class="fieldset"><h4>'.__('Blog details').'</h4>';
+	'<div class="fieldset"><h4>'.__('Blog details').'</h4>'.
+	$core->formNonce();
 
 	if ($core->auth->isSuperAdmin())
@@ -671,7 +645,6 @@
 
 	echo
-	'<p><input type="submit" accesskey="s" name="save_blog" value="'.__('Save').'" />'.
+	'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 	(!$standalone ? form::hidden('id',$blog_id) : '').
-	$core->formNonce().
 	'</p>'.
 	'</form>';
@@ -800,61 +773,5 @@
 	}
 
-
 	echo '</div>';
-
-	#
-	# Per-blog activated plugins
-	$plugins = $core->plugins->getModules();
-	$plugins_activation = array();
-
-	foreach ($plugins as $id => $p) {
-		if ($core->plugins->moduleInfo($id,'perblog_activation')) {
-			$plugins_activation[$id]=$core->blog->settings->pluginsactivated->get($id);
-		}
-	}
-	echo
-	'<div class="multi-part" id="plugins" title="'.__('Plugins').'">'.
-	'<h3 class="out-of-screen-if-js">'.__('Plugins').'</h3>'.
-	'<div class="fieldset"><h4>'.__('Plugins activation for this blog').'</h4>';
-	if (!count($plugins_activation)) {
-		echo '<p>'.__('No per-blog plugins configured for this blog').'</p>';
-	} else {
-		echo
-			'<form action="'.$core->adminurl->getBase('admin.blog.pref').'" method="POST">'.
-			'<table><thead>'.
-			'<th class="first nowrap">'.__('Plugin').'</th>'.
-			'<th class="first nowrap maximal">'.__('Description').'</th>'.
-			'<th class="nowrap">'.__('Status').'</th>'.
-			'<th class="minimal nowrap">'.__('Action').'</th>'.
-			'</thead>';
-		foreach ($plugins_activation as $id => $enabled) {
-			echo 
-				'<tr><td>'.$core->plugins->moduleInfo($id,'name').'</td>'.
-				'<td>'.$core->plugins->moduleInfo($id,'desc').'</td>';
-
-			if ($enabled) {
-				echo
-					'<td>'.__('Enabled').'</td>'.
-					'<td><input type="submit" class="reset" name="disable['.$id.']" value="'.__('Disable for this blog').'"/></td>';
-			} else {
-				echo
-					'<td>'.__('Disabled').'</td>'.
-					'<td><input type="submit" name="enable['.$id.']" value="'.__('Enable for this blog').'"/></td>';
-			}
-			'</tr>';
-		}
-
-		echo 
-			'</table>'.
-			'<p><input type="submit" accesskey="s" name="save_plugins" value="'.__('Save').'" />'.
-				(!$standalone ? form::hidden('id',$blog_id) : '').
-				$core->formNonce().
-				$core->adminurl->getHiddenFormFields('admin.blog');
-			'</p>'.
-			'</form>';
-	}
-	echo '</div>';
-	echo '</div>';
-
 }
 
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 2852)
+++ admin/category.php	(revision 2891)
@@ -174,8 +174,10 @@
 $elements[$title] = '';
 
+$category_editor = $core->auth->getOption('editor');
+
 dcPage::open($title,
 	dcPage::jsConfirmClose('category-form').
-	dcPage::jsLoad('js/_category.js'),
-	$core->callBehavior('adminPostEditor').
+	dcPage::jsLoad('js/_category.js').
+	$core->callBehavior('adminPostEditor',$category_editor['xhtml'],'category',array('#cat_desc')),
 	dcPage::breadcrumb($elements)
 );
Index: admin/js/_category.js
===================================================================
--- admin/js/_category.js	(revision 2614)
+++ admin/js/_category.js	(revision 2891)
@@ -2,5 +2,5 @@
 	dotclear.hideLockable();
 
-	if ($.isFunction('jsToolBar')) {
+	if ($.isFunction(jsToolBar)) {
 		var tbCategory = new jsToolBar(document.getElementById('cat_desc'));
 		tbCategory.draw('xhtml');
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 2873)
+++ admin/media.php	(revision 2889)
@@ -17,5 +17,5 @@
 dcPage::check('media,media_admin');
 
-$post_id = !empty($_GET['post_id']) ? (integer) $_GET['post_id'] : null;
+$post_id = !empty($_REQUEST['post_id']) ? (integer) $_REQUEST['post_id'] : null;
 if ($post_id) {
 	$post = $core->blog->getPosts(array('post_id'=>$post_id,'post_type'=>''));
@@ -73,5 +73,5 @@
 }
 
-$popup = (integer) !empty($_GET['popup']);
+$popup = (integer) !empty($_REQUEST['popup']);
 
 $page_url_params = new ArrayObject(array('popup' => $popup,'post_id' => $post_id));
@@ -616,5 +616,5 @@
 	}
 	$res =
-	'<div class="'.$class.'"><p><a class="media-icon media-link" href="'.$link.'">'.
+	'<div class="'.$class.'"><p><a class="media-icon media-link" href="'.rawurldecode($link).'">'.
 	'<img src="'.$f->media_icon.'" alt="" />'.$fname.'</a></p>';
 
Index: admin/media_item.php
===================================================================
--- admin/media_item.php	(revision 2872)
+++ admin/media_item.php	(revision 2889)
@@ -17,5 +17,5 @@
 $tab = empty($_REQUEST['tab']) ? '' : $_REQUEST['tab'];
 
-$post_id = !empty($_GET['post_id']) ? (integer) $_GET['post_id'] : null;
+$post_id = !empty($_REQUEST['post_id']) ? (integer) $_REQUEST['post_id'] : null;
 if ($post_id) {
 	$post = $core->blog->getPosts(array('post_id'=>$post_id));
@@ -28,5 +28,5 @@
 
 $file = null;
-$popup = (integer) !empty($_GET['popup']);
+$popup = (integer) !empty($_REQUEST['popup']);
 $plugin_id = isset($_REQUEST['plugin_id']) ? html::sanitizeURL($_REQUEST['plugin_id']) : '';
 $page_url_params = array('popup' => $popup,'post_id' => $post_id);
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 2899)
+++ admin/preferences.php	(revision 2853)
@@ -352,4 +352,26 @@
 );
 
+if (!empty($_GET['upd'])) {
+	dcPage::success(__('Personal information has been successfully updated.'));
+}
+if (!empty($_GET['updated'])) {
+	dcPage::success(__('Personal options has been successfully updated.'));
+}
+if (!empty($_GET['db-updated'])) {
+	dcPage::success(__('Dashboard options has been successfully updated.'));
+}
+if (!empty($_GET['append'])) {
+	dcPage::success(__('Favorites have been successfully added.'));
+}
+if (!empty($_GET['neworder'])) {
+	dcPage::success(__('Favorites have been successfully updated.'));
+}
+if (!empty($_GET['removed'])) {
+	dcPage::success(__('Favorites have been successfully removed.'));
+}
+if (!empty($_GET['replaced'])) {
+	dcPage::success(__('Default favorites have been successfully updated.'));
+}
+
 # User profile
 echo '<div class="multi-part" id="user-profile" title="'.__('My profile').'">';
Index: inc/admin/actions/class.dcaction.php
===================================================================
--- inc/admin/actions/class.dcaction.php	(revision 2566)
+++ inc/admin/actions/class.dcaction.php	(revision 2888)
@@ -223,5 +223,5 @@
 		foreach ($this->redirect_fields as $p) {
 			if (isset($from[$p])) {
-				$redir_args[$p] = $from[$p];
+				$this->redir_args[$p] = $from[$p];
 			}
 		}
Index: inc/core/class.dc.modules.php
===================================================================
--- inc/core/class.dc.modules.php	(revision 2900)
+++ inc/core/class.dc.modules.php	(revision 2708)
@@ -117,7 +117,4 @@
 		foreach ($this->modules as $id => $m)
 		{
-			if ($m['perblog_activation'] && !$this->core->blog->settings->pluginsactivated->get($id)) {
-				continue;
-			}
 			if (file_exists($m['root'].'/_prepend.php'))
 			{
@@ -187,6 +184,5 @@
 				'priority' => 1000,
 				'standalone_config' => false,
-				'type' => null,
-				'perblog_activation' => false
+				'type' => null
 			), $properties
 		);
@@ -211,10 +207,4 @@
 				return;
 			}
-		}
-
-		$this->core->blog->settings->addNamespace("pluginsactivated");
-		# Per-blog activation settings
-		if ($properties['perblog_activation'] && ($this->core->blog->settings->pluginsactivated->get($this->id) === null)) {
-			$this->core->blog->settings->pluginsactivated->put($this->id,false,"boolean",sprintf(__('plugin "%s" activated'),$this->id),true,true);
 		}
 
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 2883)
+++ inc/prepend.php	(revision 2884)
@@ -140,5 +140,5 @@
 # Constants
 define('DC_ROOT',path::real(dirname(__FILE__).'/..'));
-define('DC_VERSION','2.8-dev');
+define('DC_VERSION','2.7.3');
 define('DC_DIGESTS',dirname(__FILE__).'/digests');
 define('DC_L10N_ROOT',dirname(__FILE__).'/../locales');
Index: inc/public/class.dc.template.php
===================================================================
--- inc/public/class.dc.template.php	(revision 2864)
+++ inc/public/class.dc.template.php	(revision 2886)
@@ -1118,11 +1118,12 @@
 				// nb of entries per page specified in template -> regular pagination
 				$p .= "\$params['limit'] = ".$lastn.";\n";
-				$p .= "\$_ctx->nb_entry_first_page = \$_ctx->nb_entry_per_page = ".$lastn.";\n";
+				$p .= "\$nb_entry_first_page = \$nb_entry_per_page = ".$lastn.";\n";
 			} else {
 				// nb of entries per page not specified -> use ctx settings
+				$p .= "\$nb_entry_first_page=\$_ctx->nb_entry_first_page; \$nb_entry_per_page = \$_ctx->nb_entry_per_page;\n";
 				$p .= "if ((\$core->url->type == 'default') || (\$core->url->type == 'default-page')) {\n";
-				$p .= "    \$params['limit'] = (\$_page_number == 1 ? \$_ctx->nb_entry_first_page : \$_ctx->nb_entry_per_page);\n";
+				$p .= "    \$params['limit'] = (\$_page_number == 1 ? \$nb_entry_first_page : \$nb_entry_per_page);\n";
 				$p .= "} else {\n";
-				$p .= "    \$params['limit'] = \$_ctx->nb_entry_per_page;\n";
+				$p .= "    \$params['limit'] = \$nb_entry_per_page;\n";
 				$p .= "}\n";
 			}
@@ -1131,7 +1132,7 @@
 				// standard pagination, set offset
 				$p .= "if ((\$core->url->type == 'default') || (\$core->url->type == 'default-page')) {\n";
-				$p .= "    \$params['limit'] = array((\$_page_number == 1 ? 0 : (\$_page_number - 2) * \$_ctx->nb_entry_per_page + \$_ctx->nb_entry_first_page),\$params['limit']);\n";
+				$p .= "    \$params['limit'] = array((\$_page_number == 1 ? 0 : (\$_page_number - 2) * \$nb_entry_per_page + \$nb_entry_first_page),\$params['limit']);\n";
 				$p .= "} else {\n";
-				$p .= "    \$params['limit'] = array((\$_page_number - 1) * \$_ctx->nb_entry_per_page,\$params['limit']);\n";
+				$p .= "    \$params['limit'] = array((\$_page_number - 1) * \$nb_entry_per_page,\$params['limit']);\n";
 				$p .= "}\n";
 			} else {
Index: plugins/dcCKEditor/_define.php
===================================================================
--- plugins/dcCKEditor/_define.php	(revision 2854)
+++ plugins/dcCKEditor/_define.php	(revision 2894)
@@ -17,5 +17,7 @@
 	/* Author */			"dotclear Team",
 	/* Version */			"0.9.0",
-	/* Permissions */	    "usage,contentadmin",
-	/* Properties */	    array('type' => 'plugin')
+	array(
+		'permissions' =>	'usage,contentadmin',
+		'type'		=>		'plugin'
+	)
 );
Index: plugins/dcCKEditor/inc/dc.ckeditor.behaviors.php
===================================================================
--- plugins/dcCKEditor/inc/dc.ckeditor.behaviors.php	(revision 2869)
+++ plugins/dcCKEditor/inc/dc.ckeditor.behaviors.php	(revision 2893)
@@ -78,5 +78,5 @@
     public static function adminMediaURLParams($p) {
         if (!empty($_GET['editor'])) {
-            $p['editor']=html::sanitiseURL($_GET['editor']);
+            $p['editor'] = html::sanitizeURL($_GET['editor']);
         }
     }
Index: plugins/dcCKEditor/js/ckeditor-plugins/entrylink/plugin.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor-plugins/entrylink/plugin.js	(revision 2835)
+++ plugins/dcCKEditor/js/ckeditor-plugins/entrylink/plugin.js	(revision 2901)
@@ -24,5 +24,5 @@
 					if (element.is('a')
 					    && !element.hasClass('media-link')
-					    && element.hasClass('post')) { // link to original media @see js/popup_media.js
+					    && element.hasClass('ref-post')) { // link to original media @see js/popup_media.js
 						editor.getSelection().selectElement(element);
 
Index: plugins/dcCKEditor/js/popup_posts.js
===================================================================
--- plugins/dcCKEditor/js/popup_posts.js	(revision 2751)
+++ plugins/dcCKEditor/js/popup_posts.js	(revision 2901)
@@ -12,5 +12,5 @@
 
 		if (editor.mode=='wysiwyg') {
-			link = '<a class="post" href="'+window.opener.$.stripBaseURL($(this).attr('title'))+'">'+selected_text+'</a>';
+			link = '<a class="ref-post" href="'+window.opener.$.stripBaseURL($(this).attr('title'))+'">'+selected_text+'</a>';
 			var element = window.opener.CKEDITOR.dom.element.createFromHtml(link);
 			editor.insertElement(element);
Index: plugins/dcLegacyEditor/_define.php
===================================================================
--- plugins/dcLegacyEditor/_define.php	(revision 2878)
+++ plugins/dcLegacyEditor/_define.php	(revision 2894)
@@ -17,5 +17,7 @@
 	/* Author */			"dotclear Team",
 	/* Version */			'0.1.2',
-	/* Permissions */	    "usage,contentadmin",
-	/* Properties */	    array('type' => 'plugin')
+	array(
+		'permissions' =>	'usage,contentadmin',
+		'type'		=>		'plugin'
+	)
 );
Index: plugins/pages/_define.php
===================================================================
--- plugins/pages/_define.php	(revision 2900)
+++ plugins/pages/_define.php	(revision 2662)
@@ -18,8 +18,7 @@
 	/* Version */		'1.4',
 	array(
-		'permissions'        =>	'contentadmin,pages',
-		'priority'           =>	999,
-		'type'               =>	'plugin',
-		'perblog_activation' => true
+		'permissions' =>	'contentadmin,pages',
+		'priority' =>	999,
+		'type'		=>		'plugin'
 	)
 );
Index: plugins/themeEditor/_define.php
===================================================================
--- plugins/themeEditor/_define.php	(revision 2890)
+++ plugins/themeEditor/_define.php	(revision 2663)
@@ -16,5 +16,5 @@
 	/* Description*/		"Theme Editor",
 	/* Author */			"Olivier Meunier",
-	/* Version */			'1.2',
+	/* Version */			'1.1',
 	array(
 		'type'		=>		'plugin'
Index: plugins/themeEditor/class.themeEditor.php
===================================================================
--- plugins/themeEditor/class.themeEditor.php	(revision 2890)
+++ plugins/themeEditor/class.themeEditor.php	(revision 2862)
@@ -20,5 +20,4 @@
 	protected $tplset_theme;
 
-	protected $parent_name;
 	protected $tplset_name;
 
@@ -39,5 +38,4 @@
 			if ($parent_theme) {
 				$this->parent_theme = path::real($this->core->blog->themes_path.'/'.$parent_theme);
-				$this->parent_name = $parent_theme;
 			}
 			$tplset = $this->core->themes->moduleInfo($this->core->blog->settings->system->theme,'tplset');
@@ -80,8 +78,6 @@
 			}
 			$list .= ($list_theme != '' ? sprintf('<li class="group-file">'.__('From theme:').'<ul>%s</ul></li>',$list_theme) : '');
-			$list .= ($list_parent != '' ? sprintf('<li class="group-file">'.__('From parent:').' %s<ul>%s</ul></li>',
-				$this->parent_name,$list_parent) : '');
-			$list .= ($list_tpl != '' ? sprintf('<li class="group-file">'.__('From template set:').' %s<ul>%s</ul></li>',
-				$this->tplset_name,$list_tpl) : '');
+			$list .= ($list_parent != '' ? sprintf('<li class="group-file">'.__('From parent:').'<ul>%s</ul></li>',$list_parent) : '');
+			$list .= ($list_tpl != '' ? sprintf('<li class="group-file">'.__('From template set:').'<ul>%s</ul></li>',$list_tpl) : '');
 		} else {
 			foreach ($files as $k => $v)
Index: themes/ductile/_prepend.php
===================================================================
--- themes/ductile/_prepend.php	(revision 2567)
+++ themes/ductile/_prepend.php	(revision 2895)
@@ -11,4 +11,8 @@
 
 if (!defined('DC_RC_PATH')) { return; }
+// public part below
+
+if (!defined('DC_CONTEXT_ADMIN')) { return false; }
+// admin part below
 
 # Behaviors
