Index: inc/admin/lib.moduleslist.php
===================================================================
--- inc/admin/lib.moduleslist.php	(revision 2428)
+++ inc/admin/lib.moduleslist.php	(revision 2431)
@@ -146,6 +146,6 @@
 	public function isDeletablePath($root)
 	{
-		return $this->path_writable 
-			&& (preg_match('!^'.$this->path_pattern.'!', $root) || defined('DC_DEV') && DC_DEV) 
+		return $this->path_writable
+			&& (preg_match('!^'.$this->path_pattern.'!', $root) || defined('DC_DEV') && DC_DEV)
 			&& $this->core->auth->isSuperAdmin();
 	}
@@ -256,5 +256,5 @@
 		}
 
-		echo 
+		echo
 		'<div class="modules-search">'.
 		'<form action="'.$this->getURL().'" method="get">'.
@@ -263,10 +263,10 @@
 		'<input type="submit" value="'.__('OK').'" /> ';
 
-		if ($query) { 
-			echo 
+		if ($query) {
+			echo
 			' <a href="'.$this->getURL().'" class="button">'.__('Reset search').'</a>';
 		}
 
-		echo 
+		echo
 		'</p>'.
 		'<p class="form-note">'.
@@ -276,7 +276,7 @@
 
 		if ($query) {
-			echo 
+			echo
 			'<p class="message">'.sprintf(
-				__('Found %d result for search "%s":', 'Found %d results for search "%s":', count($this->data)), 
+				__('Found %d result for search "%s":', 'Found %d results for search "%s":', count($this->data)),
 				count($this->data), html::escapeHTML($query)
 				).
@@ -434,6 +434,6 @@
 	 * Sanitize a module.
 	 *
-	 * This clean infos of a module by adding default keys 
-	 * and clean some of them, sanitize module can safely 
+	 * This clean infos of a module by adding default keys
+	 * and clean some of them, sanitize module can safely
 	 * be used in lists.
 	 *
@@ -444,5 +444,5 @@
 		$label = empty($module['label']) ? $id : $module['label'];
 		$name = __(empty($module['name']) ? $label : $module['name']);
-		
+
 		return array_merge(
 			# Default values
@@ -521,5 +521,5 @@
 	public function displayModules($cols=array('name', 'version', 'desc'), $actions=array(), $nav_limit=false)
 	{
-		echo 
+		echo
 		'<div class="table-outer">'.
 		'<table id="'.html::escapeHTML($this->list_id).'" class="modules'.(in_array('expander', $cols) ? ' expandable' : '').'">'.
@@ -527,39 +527,39 @@
 
 		if (in_array('name', $cols)) {
-			echo 
+			echo
 			'<th class="first nowrap"'.(in_array('icon', $cols) ? ' colspan="2"' : '').'>'.__('Name').'</th>';
 		}
 
 		if (in_array('score', $cols) && $this->getSearch() !== null && defined('DC_DEBUG') && DC_DEBUG) {
-			echo 
+			echo
 			'<th class="nowrap">'.__('Score').'</th>';
 		}
 
 		if (in_array('version', $cols)) {
-			echo 
+			echo
 			'<th class="nowrap count" scope="col">'.__('Version').'</th>';
 		}
 
 		if (in_array('current_version', $cols)) {
-			echo 
+			echo
 			'<th class="nowrap count" scope="col">'.__('Current version').'</th>';
 		}
 
 		if (in_array('desc', $cols)) {
-			echo 
+			echo
 			'<th class="nowrap" scope="col">'.__('Details').'</th>';
 		}
 
 		if (in_array('distrib', $cols)) {
-			echo 
+			echo
 			'<th'.(in_array('desc', $cols) ? '' : ' class="maximal"').'></th>';
 		}
 
 		if (!empty($actions) && $this->core->auth->isSuperAdmin()) {
-			echo 
+			echo
 			'<th class="minimal nowrap">'.__('Action').'</th>';
 		}
 
-		echo 
+		echo
 		'</tr>';
 
@@ -585,14 +585,14 @@
 			}
 
-			echo 
+			echo
 			'<tr class="line" id="'.html::escapeHTML($this->list_id).'_m_'.html::escapeHTML($id).'">';
-			
+
 			$tds = 0;
 
 			if (in_array('icon', $cols)) {
 				$tds++;
-				echo 
+				echo
 				'<td class="module-icon nowrap">'.sprintf(
-					'<img alt="%1$s" title="%1$s" src="%2$s" />', 
+					'<img alt="%1$s" title="%1$s" src="%2$s" />',
 					html::escapeHTML($id), file_exists($module['root'].'/icon.png') ? 'index.php?pf='.$id.'/icon.png' : 'images/module.png'
 				).'</td>';
@@ -600,5 +600,5 @@
 
 			$tds++;
-			echo 
+			echo
 			'<td class="module-name nowrap" scope="row">'.html::escapeHTML($module['name']).'</td>';
 
@@ -606,5 +606,5 @@
 			if (in_array('score', $cols) && $this->getSearch() !== null && defined('DC_DEBUG') && DC_DEBUG) {
 				$tds++;
-				echo 
+				echo
 				'<td class="module-version nowrap count"><span class="debug">'.$module['score'].'</span></td>';
 			}
@@ -612,5 +612,5 @@
 			if (in_array('version', $cols)) {
 				$tds++;
-				echo 
+				echo
 				'<td class="module-version nowrap count">'.html::escapeHTML($module['version']).'</td>';
 			}
@@ -618,5 +618,5 @@
 			if (in_array('current_version', $cols)) {
 				$tds++;
-				echo 
+				echo
 				'<td class="module-current-version nowrap count">'.html::escapeHTML($module['current_version']).'</td>';
 			}
@@ -624,5 +624,5 @@
 			if (in_array('desc', $cols)) {
 				$tds++;
-				echo 
+				echo
 				'<td class="module-desc maximal">'.html::escapeHTML($module['desc']).'</td>';
 			}
@@ -630,9 +630,9 @@
 			if (in_array('distrib', $cols)) {
 				$tds++;
-				echo 
-				'<td class="module-distrib">'.(self::isDistributedModule($id) ? 
+				echo
+				'<td class="module-distrib">'.(self::isDistributedModule($id) ?
 					'<img src="images/dotclear_pw.png" alt="'.
 					__('Plugin from official distribution').'" title="'.
-					__('Plugin from official distribution').'" />' 
+					__('Plugin from official distribution').'" />'
 				: '').'</td>';
 			}
@@ -642,5 +642,5 @@
 
 				$tds++;
-				echo 
+				echo
 				'<td class="module-actions nowrap">'.
 
@@ -658,5 +658,5 @@
 			}
 
-			echo 
+			echo
 			'</tr>';
 
@@ -667,5 +667,5 @@
 
 				if (!empty($module['author']) || !empty($module['details']) || !empty($module['support'])) {
-					echo 
+					echo
 					'<div><ul class="mod-more">';
 
@@ -683,5 +683,5 @@
 						$more[] = '<a class="module-support" href="'.$module['support'].'">'.__('Support').'</a>';
 					}
-					
+
 					if (!empty($more)) {
 						echo
@@ -696,5 +696,5 @@
 
 				if ($config || !empty($module['section']) || !empty($module['section'])) {
-					echo 
+					echo
 					'<div><ul class="mod-more">';
 
@@ -724,9 +724,9 @@
 			$count++;
 		}
-		echo 
+		echo
 		'</table></div>';
 
 		if(!$count && $this->getSearch() === null) {
-			echo 
+			echo
 			'<p class="message">'.__('No plugins matched your search.').'</p>';
 		}
@@ -735,5 +735,5 @@
 			$buttons = $this->getGlobalActions($actions);
 
-			echo 
+			echo
 			'<form action="'.$this->getURL().'" method="post" class="global-actions-buttons">'.
 			'<div>'.
@@ -768,5 +768,5 @@
 				# Deactivate
 				case 'activate': if ($module['root_writable']) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="activate" value="'.__('Activate').'" />';
 				} break;
@@ -774,5 +774,5 @@
 				# Activate
 				case 'deactivate': if ($module['root_writable']) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="deactivate" value="'.__('Deactivate').'" class="reset" />';
 				} break;
@@ -781,5 +781,5 @@
 				case 'delete': if ($this->isDeletablePath($module['root'])) {
 					$dev = !preg_match('!^'.$this->path_pattern.'!', $module['root']) && defined('DC_DEV') && DC_DEV ? ' debug' : '';
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" class="delete '.$dev.'" name="delete" value="'.__('Delete').'" />';
 				} break;
@@ -787,5 +787,5 @@
 				# Install (from store)
 				case 'install': if ($this->path_writable) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="install" value="'.__('Install').'" />';
 				} break;
@@ -793,5 +793,5 @@
 				# Update (from store)
 				case 'update': if ($this->path_writable) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="update" value="'.__('Update').'" />';
 				} break;
@@ -829,5 +829,5 @@
 				# Deactivate
 				case 'activate': if ($this->path_writable) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="activate" value="'.__('Activate all plugins from this list').'" />';
 				} break;
@@ -835,5 +835,5 @@
 				# Activate
 				case 'deactivate': if ($this->path_writable) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="deactivate" value="'.__('Deactivate all plugins from this list').'" class="reset" />';
 				} break;
@@ -841,5 +841,5 @@
 				# Update (from store)
 				case 'update': if ($this->path_writable) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="update" value="'.__('Update all plugins from this list').'" />';
 				} break;
@@ -870,5 +870,5 @@
 	public function doActions()
 	{
-		if (empty($_POST) || !empty($_REQUEST['conf']) 
+		if (empty($_POST) || !empty($_REQUEST['conf'])
 		|| !$this->core->auth->isSuperAdmin() || !$this->isWritablePath()) {
 			return null;
@@ -1119,5 +1119,5 @@
 		}
 		# Manual actions
-		elseif (!empty($_POST['upload_pkg']) && !empty($_FILES['pkg_file']) 
+		elseif (!empty($_POST['upload_pkg']) && !empty($_FILES['pkg_file'])
 			|| !empty($_POST['fetch_pkg']) && !empty($_POST['pkg_url']))
 		{
@@ -1128,5 +1128,5 @@
 			if (!empty($_POST['upload_pkg'])) {
 				files::uploadStatus($_FILES['pkg_file']);
-				
+
 				$dest = $this->getPath().'/'.$_FILES['pkg_file']['name'];
 				if (!move_uploaded_file($_FILES['pkg_file']['tmp_name'], $dest)) {
@@ -1220,5 +1220,5 @@
 			return false;
 		}
-		
+
 		if (!empty($_REQUEST['module']) && empty($id)) {
 			$id = $_REQUEST['module'];
@@ -1343,5 +1343,5 @@
 	public function displayModules($cols=array('name', 'config', 'version', 'desc'), $actions=array(), $nav_limit=false)
 	{
-		echo 
+		echo
 		'<div id="'.html::escapeHTML($this->list_id).'" class="modules'.(in_array('expander', $cols) ? ' expandable' : '').' one-box">';
 
@@ -1371,9 +1371,9 @@
 			$distrib = self::isDistributedModule($id) ? ' dc-box' : '';
 
-			$line = 
+			$line =
 			'<div class="box '.($current ? 'medium current-theme' : 'theme').$distrib.'">';
 
 			if (in_array('name', $cols) && !$current) {
-				$line .= 
+				$line .=
 				'<h4 class="module-name">'.html::escapeHTML($module['name']).'</h4>';
 			}
@@ -1381,5 +1381,5 @@
 			# Display score only for debug purpose
 			if (in_array('score', $cols) && $this->getSearch() !== null && defined('DC_DEBUG') && DC_DEBUG) {
-				$line .= 
+				$line .=
 				'<p class="module-score debug">'.sprintf(__('Score: %s'), $module['score']).'</p>';
 			}
@@ -1399,14 +1399,14 @@
 				}
 
-				$line .= 
+				$line .=
 				'<div class="module-sshot"><img src="'.$sshot.'" alt="'.
 				sprintf(__('%s screenshot.'), html::escapeHTML($module['name'])).'" /></div>';
 			}
 
-			$line .= 
+			$line .=
 			'<div class="module-infos toggle-bloc">';
 
 			if (in_array('name', $cols) && $current) {
-				$line .= 
+				$line .=
 				'<h4 class="module-name">'.html::escapeHTML($module['name']).'</h4>';
 			}
@@ -1416,20 +1416,20 @@
 
 			if (in_array('desc', $cols)) {
-				$line .= 
+				$line .=
 				'<span class="module-desc">'.html::escapeHTML($module['desc']).'</span> ';
 			}
 
 			if (in_array('author', $cols)) {
-				$line .= 
+				$line .=
 				'<span class="module-author">'.sprintf(__('by %s'),html::escapeHTML($module['author'])).'</span> ';
 			}
 
 			if (in_array('version', $cols)) {
-				$line .= 
+				$line .=
 				'<span class="module-version">'.sprintf(__('version %s'),html::escapeHTML($module['version'])).'</span> ';
 			}
 
 			if (in_array('current_version', $cols)) {
-				$line .= 
+				$line .=
 				'<span class="module-current-version">'.sprintf(__('(current version %s)'),html::escapeHTML($module['current_version'])).'</span> ';
 			}
@@ -1437,9 +1437,9 @@
 			if (in_array('parent', $cols) && !empty($module['parent'])) {
 				if ($this->modules->moduleExists($module['parent'])) {
-					$line .= 
+					$line .=
 					'<span class="module-parent-ok">'.sprintf(__('(built on "%s")'),html::escapeHTML($module['parent'])).'</span> ';
 				}
 				else {
-					$line .= 
+					$line .=
 					'<span class="module-parent-missing">'.sprintf(__('(requires "%s")'),html::escapeHTML($module['parent'])).'</span> ';
 				}
@@ -1453,10 +1453,10 @@
 
 				if ($has_details) {
-					$line .= 
+					$line .=
 					'<a class="module-details" href="'.$module['details'].'">'.__('Details').'</a>';
 				}
 
 				if ($has_support) {
-					$line .= 
+					$line .=
 					' - <a class="module-support" href="'.$module['support'].'">'.__('Support').'</a>';
 				}
@@ -1466,11 +1466,11 @@
 			}
 
-			$line .= 
+			$line .=
 			'</p>'.
 			'</div>';
 
-			$line .= 
+			$line .=
 			'<div class="module-actions toggle-bloc">';
-			
+
 			# Plugins actions
 			if ($current) {
@@ -1481,5 +1481,5 @@
 						http::concatURL($this->core->blog->settings->system->themes_url, '/'.$id) :
 						http::concatURL($this->core->blog->url, $this->core->blog->settings->system->themes_url.'/'.$id);
-					$line .= 
+					$line .=
 					'<p><a href="'.$theme_url.'/style.css">'.__('View stylesheet').'</a></p>';
 				}
@@ -1488,10 +1488,10 @@
 
 				if (file_exists(path::real($this->core->blog->themes_path.'/'.$id).'/_config.php')) {
-					$line .= 
-					'<p><a href="'.$this->getURL('module='.$id.'&conf=1', false).'" class="button submit">'.__('Configure theme').'</a></p>';
+					$line .=
+					'<p><a href="'.$this->getURL('module='.$id.'&amp;conf=1', false).'" class="button submit">'.__('Configure theme').'</a></p>';
 				}
 
 				# --BEHAVIOR-- adminCurrentThemeDetails
-				$line .= 
+				$line .=
 				$this->core->callBehavior('adminCurrentThemeDetails', $this->core, $id, $module);
 
@@ -1508,25 +1508,25 @@
 
 				implode(' ', $this->getActions($id, $module, $actions)).
- 
+
 				'</p>'.
 				'</form>';
 			}
 
-			$line .= 
-			'</div>';
-
 			$line .=
 			'</div>';
 
+			$line .=
+			'</div>';
+
 			$count++;
 
 			$res = $current ? $line.$res : $res.$line;
 		}
-		echo 
+		echo
 		$res.
 		'</div>';
 
 		if(!$count && $this->getSearch() === null) {
-			echo 
+			echo
 			'<p class="message">'.__('No themes matched your search.').'</p>';
 		}
@@ -1535,5 +1535,5 @@
 			$buttons = $this->getGlobalActions($actions);
 
-			echo 
+			echo
 			'<form action="'.$this->getURL().'" method="post" class="global-actions-buttons">'.
 			'<div>'.
@@ -1557,5 +1557,5 @@
 			# Select theme to use on curent blog
 			if (in_array('select', $actions) && $this->path_writable) {
-				$submits[] = 
+				$submits[] =
 				'<input type="submit" name="select" value="'.__('Use this one').'" />';
 			}
@@ -1578,5 +1578,5 @@
 				# Update (from store)
 				case 'update': if ($this->path_writable) {
-					$submits[] = 
+					$submits[] =
 					'<input type="submit" name="update" value="'.__('Update all themes from this list').'" />';
 				} break;
@@ -1600,5 +1600,5 @@
 	public function doActions()
 	{
-		if (empty($_POST) || !empty($_REQUEST['conf']) 
+		if (empty($_POST) || !empty($_REQUEST['conf'])
 		|| !$this->core->auth->isSuperAdmin() || !$this->isWritablePath()) {
 			return null;
@@ -1806,5 +1806,5 @@
 		}
 		# Manual actions
-		elseif (!empty($_POST['upload_pkg']) && !empty($_FILES['pkg_file']) 
+		elseif (!empty($_POST['upload_pkg']) && !empty($_FILES['pkg_file'])
 			|| !empty($_POST['fetch_pkg']) && !empty($_POST['pkg_url']))
 		{
@@ -1815,5 +1815,5 @@
 			if (!empty($_POST['upload_pkg'])) {
 				files::uploadStatus($_FILES['pkg_file']);
-				
+
 				$dest = $this->getPath().'/'.$_FILES['pkg_file']['name'];
 				if (!move_uploaded_file($_FILES['pkg_file']['tmp_name'], $dest)) {
