[Fusionforge-commits] r8763 - in trunk/gforge/www: . frs include my news project/admin snippet softwaremap themes/css themes/gforge themes/gforge/css themes/gforge/js

Roland Mas lolando at libremir.placard.fr.eu.org
Wed Feb 10 09:37:43 CET 2010


Author: lolando
Date: 2010-02-10 09:37:43 +0100 (Wed, 10 Feb 2010)
New Revision: 8763

Added:
   trunk/gforge/www/themes/css/fusionforge.css
   trunk/gforge/www/themes/gforge/css/theme-pages.css
   trunk/gforge/www/themes/gforge/js/
   trunk/gforge/www/themes/gforge/js/gforge.js
Modified:
   trunk/gforge/www/frs/index.php
   trunk/gforge/www/include/Layout.class.php
   trunk/gforge/www/include/features_boxes.php
   trunk/gforge/www/include/html.php
   trunk/gforge/www/include/project_home.php
   trunk/gforge/www/include/user_home.php
   trunk/gforge/www/include/vote_function.php
   trunk/gforge/www/index_std.php
   trunk/gforge/www/my/index.php
   trunk/gforge/www/news/news_utils.php
   trunk/gforge/www/project/admin/index.php
   trunk/gforge/www/snippet/snippet_utils.php
   trunk/gforge/www/snippet/submit.php
   trunk/gforge/www/softwaremap/tag_cloud.php
   trunk/gforge/www/softwaremap/trove_list.php
   trunk/gforge/www/themes/gforge/Theme.class.php
   trunk/gforge/www/themes/gforge/css/theme.css
Log:
Accessibility patches by Matthieu Faure / Open-S, first chunk

Modified: trunk/gforge/www/frs/index.php
===================================================================
--- trunk/gforge/www/frs/index.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/frs/index.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -60,21 +60,20 @@
 $res_package = db_query_params( $sql, array($group_id));
 $num_packages = db_numrows( $res_package );
 
-
-
 frs_header(array('title'=>_('Project Filelist'),'group'=>$group_id));
 
 if ( $num_packages < 1) {
 	echo "<h1>"._('No File Packages')."</h1>";
 	echo "<p><strong>"._('There are no file packages defined for this project.')."</strong>";
 } else {
+	echo '<div id="forge-frs" class="lien-soulignement">';
 
-	echo '<p>'._('Below is a list of all files of the project.').' ';
+	echo '<div class="blue-box">'._('Below is a list of all files of the project.').' ';
 	if ($release_id) {
 		echo _('The release you have chosen is <span class="selected">highlighted</span>.').' ';
 	}
 	echo _('Before downloading, you may want to read Release Notes and ChangeLog (accessible by clicking on release version).').'
-</p>
+	</div><!-- class="blue-box" -->
 ';
 
 	// check the permissions and see if this user is a release manager.
@@ -83,54 +82,41 @@
 	$perm =& $cur_group->getPermission(session_get_user());
 
 	if ($perm->isReleaseTechnician()) {
-		echo '<p><a href="admin/qrs.php?package=&group_id='.$group_id.'">';
-		echo _('To create a new release click here.');
+		//echo '<p><a href="admin/qrs.php?package=&group_id='.$group_id.'">';
+		echo '<p><a href="admin/qrs.php?group_id='.$group_id.'">';
+        echo _('To create a new release click here.');
 		echo "</a></p>";
 	}
 
 	// get unix group name for path
 	$group_unix_name=group_getunixname($group_id);
 
-	echo '
-<table width="100%" border="0" cellspacing="1" cellpadding="1">';
-	$cell_data=array();
-	$cell_data[] = array(_('Package'),'rowspan="2"');
-	$cell_data[] = array(_('Release &amp; Notes'),'rowspan="2"');
-	$cell_data[] = array(_('Filename'),'rowspan="2"');
-	$cell_data[] = array(_('Date'),'colspan="4"');
-
-	echo $GLOBALS['HTML']->multiTableRow('', $cell_data, TRUE);
-
-	$cell_data=array();
-	$cell_data[] = array(_('Size'));
-	$cell_data[] = array(_('D/L'));
-	$cell_data[] = array(_('Arch'));
-	$cell_data[] = array(_('Type'));
-
-	echo $GLOBALS['HTML']->multiTableRow('',$cell_data, TRUE);
-
 	$proj_stats['packages'] = $num_packages;
 	$proj_stats['releases'] = 0;
 	$proj_stats['size']     = 0;
 	
 	// Iterate and show the packages
 	for ( $p = 0; $p < $num_packages; $p++ ) {
-		$cur_style = $GLOBALS['HTML']->boxGetAltRowStyle($p);
 		
-		$frsPackage = new FRSPackage($cur_group, db_result($res_package,$p,'package_id'));
+		$frsPackage = new FRSPackage($cur_group, db_result($res_package, $p, 'package_id'));
 		
-		print '<tr '.$cur_style.'><td colspan="3"><h3>'.db_result($res_package,$p,'name');
-
+		$package_name = db_result($res_package, $p, 'name');
+		//$package_title = $package_name . '&nbsp;';
+		
 		if($frsPackage->isMonitoring()) {
-			print ' <a href="'.util_make_url ('/frs/monitor.php?filemodule_id='. db_result($res_package,$p,'package_id') .'&group_id='.db_result($res_package,$p,'group_id').'&stop=1').'">'.
-				html_image('ic/xmail16w.png','20','20',array('alt'=>_('Stop monitoring this package')));
+			$title = db_result($res_package, $p, 'name') . " - " . _('Stop monitoring this package');
+			$url = '/frs/monitor.php?filemodule_id='. db_result($res_package, $p, 'package_id') .'&amp;group_id='.db_result($res_package,$p,'group_id').'&amp;stop=1';
+			$package_monitor = util_make_link ( $url, $GLOBALS['HTML']->getMonitorPic($title));
 		} else {
-			print ' <a href="'.util_make_url ('/frs/monitor.php?filemodule_id='. db_result($res_package,$p,'package_id') .'&group_id='.db_result($res_package,$p,'group_id').'&start=1').'">'.
-				html_image('ic/mail16w.png','20','20',array('alt'=>_('Monitor this package')));
+			$title = db_result($res_package, $p, 'name') . " - " . _('Monitor this package');
+            $url = '/frs/monitor.php?filemodule_id='. db_result($res_package, $p, 'package_id') .'&amp;group_id='.db_result($res_package,$p,'group_id').'&amp;start=1';
+			$package_monitor = util_make_link ( $url, $GLOBALS['HTML']->getMonitorPic($title));
 		}
-		
-		print '</a></h3></td><td colspan="4">&nbsp;</td></tr>';
 
+		//echo $GLOBALS['HTML']->boxTop($package_title, $package_name);
+        $package_name_protected = $HTML->toSlug($package_name);
+        echo '<h2 id="title_'. $package_name_protected .'">' . $package_name . '<span class="frs-monitor-package">' . $package_monitor . '</span></h2>';
+		
 		// get the releases of the package
 		$res_release = db_query_params ('SELECT * FROM frs_release
 		WHERE package_id=$1
@@ -141,36 +127,16 @@
 		$proj_stats['releases'] += $num_releases;
 
 		if ( !$res_release || $num_releases < 1 ) {
-			print '<tr '.$cur_style.'><td colspan="3">&nbsp;&nbsp;<em>'._('No releases').'</em></td><td colspan="4">&nbsp;</td></tr>'."\n";
+			echo '<strong>' . _('No releases') . '</strong>
+			';
 		} else {
 			// iterate and show the releases of the package
 			for ( $r = 0; $r < $num_releases; $r++ ) {
-
-				$cell_data=array();
-					
+				
 				$package_release = db_fetch_array( $res_release );
+				$release_title = util_make_link ( 'frs/shownotes.php?release_id=' . $package_release['release_id'], $package_name.' '.$package_release['name']);
+				echo $GLOBALS['HTML']->boxTop($release_title, $package_name . '_' . $package_release['name']);
 
-				// Highlight the release if one was chosen
-				if ( $release_id ) {
-					if ( $release_id == $package_release['release_id'] ) {
-						$bgstyle = 'class="selected"';
-						$cell_data[] = array('&nbsp;<strong>
-						<a href="shownotes.php?release_id='.$package_release['release_id'].'">'.$package_release['name'] .'</a></strong>',
-						'colspan="3"');
-					} else {
-						$bgstyle = $cur_style;
-						$cell_data[] = array('&nbsp;<strong><a href="?group_id='.$group_id.'&release_id='.$package_release['release_id'].'">'.$package_release['name'] .'</a></strong>','colspan="3"');
-					}
-				} else {
-					$bgstyle = $cur_style;
-					$cell_data[] = array('&nbsp;<strong><a href="shownotes.php?release_id='.$package_release['release_id'].'">'.$package_release['name'] .'</a></strong>','colspan="3"');
-				}
-
-				$cell_data[] = array('&nbsp;<strong>
-				'.date(_('Y-m-d H:i'), $package_release['release_date'] ) .'</strong>',
-				'colspan="4" align="center"');
-					
-				print $GLOBALS['HTML']->multiTableRow($bgstyle, $cell_data, FALSE);
 				// get the files in this release....
 				$res_file = db_query_params("SELECT frs_file.filename AS filename,
 				frs_file.file_size AS file_size,
@@ -189,39 +155,56 @@
 
 				@$proj_stats['files'] += $num_files;
 
+                $cell_data = array();
+                $cell_data[] = _('Filename');
+                $cell_data[] = _('Date');
+                $cell_data[] = _('Size');
+                $cell_data[] = _('D/L');
+                $cell_data[] = _('Arch');
+                $cell_data[] = _('Type');
+
+                if ($release_id==$package_release['release_id']) {
+                    echo $GLOBALS['HTML']->listTableTop($cell_data,'',true);
+                } else {
+                    echo $GLOBALS['HTML']->listTableTop($cell_data);
+                }
+				
 				if ( !$res_file || $num_files < 1 ) {
-					print '<tr '.$bgstyle.'><td colspan="3"><dd><em>No Files</em></td><td colspan="4">&nbsp;</td></tr>'."\n";
+					echo '<tr><td colspan="6">&nbsp;&nbsp;<em>'._('No releases').'</em></td></tr>
+					';
 				} else {
 					// now iterate and show the files in this release....
 					for ( $f = 0; $f < $num_files; $f++ ) {
 						$file_release = db_fetch_array( $res_file );
-							
-						$cell_data=array();
-							
-						$cell_data[] = array('<dd>
-						'.util_make_link ('/frs/download.php/'.$file_release['file_id'].'/'.$file_release['filename'],$file_release['filename']),
-						'colspan=3');
-
-						$cell_data[] = array(human_readable_bytes($file_release['file_size']),'align="right"');
-						$cell_data[] = array( ($file_release['downloads'] ? number_format($file_release['downloads'], 0) : '0'), 'align="right"');
-						$cell_data[] = array($file_release['processor']);
-						$cell_data[] = array($file_release['type']);
-
-						if ( $release_id  ) {
-							if ( $release_id == $package_release['release_id'] ) {
-								print $GLOBALS['HTML']->multiTableRow($bgstyle, $cell_data,FALSE);
-							}
-						} else {
-							print $GLOBALS['HTML']->multiTableRow($bgstyle, $cell_data, FALSE);
-						}
+						
+						$tmp_col1 = util_make_link ('/frs/download.php/'.$file_release['file_id'].'/'.$file_release['filename'], $file_release['filename']);
+						$tmp_col2 = date(_('Y-m-d H:i'), $package_release['release_date'] ); 
+						$tmp_col3 = human_readable_bytes($file_release['file_size']);
+                        $tmp_col4 = ($file_release['downloads'] ? number_format($file_release['downloads'], 0) : '0');
+						$tmp_col5 = $file_release['processor'];
+						$tmp_col6 = $file_release['type'];
+						
 						$proj_stats['size'] += $file_release['file_size'];
 						@$proj_stats['downloads'] += $file_release['downloads'];
+						
+						echo '<tr ' . ">\n";
+						echo ' <td>' . $tmp_col1 . '</td>'."\n";
+						echo ' <td>' . $tmp_col2 . '</td>'."\n";
+						echo ' <td>' . $tmp_col3 . '</td>'."\n";
+						echo ' <td>' . $tmp_col4 . '</td>'."\n";
+						echo ' <td>' . $tmp_col5 . '</td>'."\n";
+						echo ' <td>' . $tmp_col6 . '</td>'."\n";
+						echo '</tr>'."\n";
 					}
 				}
+                echo $GLOBALS['HTML']->listTableBottom();
+                echo $GLOBALS['HTML']->boxBottom();
 			}
 		}
+		//echo $GLOBALS['HTML']->boxBottom();
 	}
-
+// print statistics for this table datas
+/*
 	if ( $proj_stats['size'] ) {
 		print '<tr><td colspan="8">&nbsp;</tr>'."\n";
 		print '<tr><td><strong>'._('Project totals').'</strong></td>'
@@ -234,6 +217,12 @@
 
 	print "</table>\n\n";
 }
+*/
+
+echo '</div><!-- id="forge-frs" -->';
+
+}
+
 frs_footer();
 
 ?>

Modified: trunk/gforge/www/include/Layout.class.php
===================================================================
--- trunk/gforge/www/include/Layout.class.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/include/Layout.class.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -229,9 +229,7 @@
 				<td>&nbsp;</td>
 			</tr>
 			<?php
-
 }
-
 ?>
 			<tr>
 				<td align="left" class="projecttab" width="9"><img src="<?php echo $this->imgroot; ?>tabs/topleft-inner.png" height="9" width="9" alt="" /></td>
@@ -245,8 +243,8 @@
 
 	<?php
 
-	}
-
+				 }
+	
 	function footer($params) {
 
 	?>
@@ -282,7 +280,6 @@
 	function footerEnd($params) { ?>
 
 <!-- PLEASE LEAVE "Powered By FusionForge" on your site -->
-<br />
 <div align="right">
 <a href="http://fusionforge.org/"><img src="<?php echo util_make_url ('/images/pow-fusionforge.png'); ?>" alt="Powered By FusionForge" border="0" /></a>
 </div>
@@ -317,7 +314,7 @@
 		<!-- Box Top Start -->
 
 		<table cellspacing="0" cellpadding="0" width="100%" border="0" style="background:url('.$this->imgroot.'vert-grad.png)">
-		<tr align="center">
+		<tr class="align-center">
 			<td valign="top" align="right" width="10" style="background:url('.$this->imgroot.'box-topleft.png)"><img src="'.$this->imgroot.'clear.png" width="10" height="20" alt="" /></td>
 			<td width="100%" style="background:url('.$this->imgroot.'box-grad.png)"><span class="titlebar">'.$title.'</span></td>
 			<td valign="top" width="10" style="background:url('.$this->imgroot.'box-topright.png)"><img src="'.$this->imgroot.'clear.png" width="10" height="20" alt="" /></td>
@@ -342,7 +339,7 @@
 		<!-- Box Middle Start -->
 					</td>
 				</tr>
-				<tr align="center">
+				<tr class="align-center">
 					<td colspan="2" style="background:url('.$this->imgroot.'box-grad.png)"><span class="titlebar">'.$title.'</span></td>
 				</tr>
 				<tr align="left">
@@ -386,10 +383,10 @@
 	 * @param	   array   The array of titles
 	 * @param	   array   The array of title links
 	 */
-	function listTableTop ($title_arr,$links_arr=false) {
+	function listTableTop ($title_arr,$links_arr=false,$selected=false) {
 		$return = '
 		<table cellspacing="0" cellpadding="0" width="100%" border="0">
-		<tr align="center">
+		<tr class="align-center">
 	<!--		<td valign="top" align="right" width="10" style="background:url('.$this->imgroot.'box-grad.png)"><img src="'.$this->imgroot.'box-topleft.png" width="10" height="75" alt="" /></td> -->
 			<td style="background:url('.$this->imgroot.'box-grad.png)">
 		<table width="100%" border="0" cellspacing="1" cellpadding="2" >
@@ -499,15 +496,15 @@
 			$selected=array_search(util_make_url ('/admin/'),$TABS_DIRS);
 		} elseif (count($PLUGIN_TABS_DIRS)>0) {
 			foreach ($PLUGIN_TABS_DIRS as $PLUGIN_TABS_DIRS_VALUE) {
-				if (strstr(getStringFromServer('REQUEST_URI'),$PLUGIN_TABS_DIRS_VALUE)) {
-					$selected=array_search($PLUGIN_TABS_DIRS_VALUE,$TABS_DIRS);
+				if (strstr(getStringFromServer('REQUEST_URI'), $PLUGIN_TABS_DIRS_VALUE)) {
+					$selected=array_search($PLUGIN_TABS_DIRS_VALUE, $TABS_DIRS);
 					break;
 				}
 			}
 		} else {
 			$selected=0;
 		}
-		echo $this->tabGenerator($TABS_DIRS,$TABS_TITLES,false,$selected,'','100%');
+		echo $this->tabGenerator($TABS_DIRS, $TABS_TITLES, false, $selected, '');
 
 	}
 
@@ -530,9 +527,9 @@
 				return '';
 			} else {
 				$ret = '
-		<form class="ff" name="quicknavform">
-			<select class="ff" name="quicknav" onChange="location.href=document.quicknavform.quicknav.value">
-				<option class="ff" value="">'._('Quick Jump To...').'</option>';
+		<form id="quicknavform" name="quicknavform"><div>
+			<select name="quicknav" onChange="location.href=document.quicknavform.quicknav.value">
+				<option value="">'._('Quick Jump To...').'</option>';
 
 				for ($i = 0; $i < db_numrows($res); $i++) {
 					$group_id = db_result($res, $i, 'group_id');
@@ -550,16 +547,16 @@
 			
 					$menu = $project->getMenu();
 					$ret .= '
-				<option class="ff" value="' . $menu['start'] . '">' 
+				<option value="' . $menu['start'] . '">' 
 						. $project->getPublicName() .'</option>';
 
 					for ($j = 0; $j < count($menu['dirs']); $j++) {
 						$ret .= '
-				<option class="ff" value="' . $menu['dirs'][$j] .'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' 
+				<option value="' . $menu['dirs'][$j] .'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' 
 							. $menu['titles'][$j] . '</option>';
 						if ($menu['admindirs'][$j]) {
 							$ret .= '
-				<option class="ff" value="' . $menu['admindirs'][$j] 
+				<option value="' . $menu['admindirs'][$j] 
 					. '">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' 
 					. _('Admin') . '</option>';
 						}
@@ -567,7 +564,7 @@
 				}
 				$ret .= '
 			</select>
-		</form>';
+		</div></form>';
 			}
 		}
 		return $ret;
@@ -596,7 +593,7 @@
 
 		$menu = $project->getMenu($toptab);
 
-		echo $this->tabGenerator($menu['dirs'], $menu['titles'], true, $menu['selected'], 'white', '100%');
+		echo $this->tabGenerator($menu['dirs'], $menu['titles'], true, $menu['selected'], 'white');
 	}
 
 	function tabGenerator($TABS_DIRS,$TABS_TITLES,$nested=false,$selected=false,$sel_tab_bgcolor='white',$total_width='100%') {
@@ -605,13 +602,15 @@
 		$width=intval((100/$count));
 		
 		$return = '';
-		
 		$return .= '
-
 		<!-- start tabs -->
-
-		<table border="0" cellpadding="0" cellspacing="0" width="'.$total_width.'">
-		<tr>';
+		<table class="tabGenerator" ';
+		
+		if ($total_width != '100%') {
+			$return .= 'style="width:' . $total_width . ';"';
+		}
+		$return .= ">\n";
+		$return .= '<tr>';
 		if ($nested) {
 			$inner='bottomtab';
 		} else {
@@ -721,12 +720,9 @@
 		if ( ! isset($type_of_search) ) {
 			$exact = 1;
 		}
-
-		print '
-		<form action="/search/" method="get">
-		<table border="0" cellpadding="0" cellspacing="0">
-		<tr><td>
-		<div align="center" class="searchbox">';
+	
+		print '<form action="/search/" method="get" id="search-box-form">';
+		print '<div class="searchbox">';
 		$parameters = array(
 			SEARCH__PARAMETER_GROUP_ID => $group_id,
 			SEARCH__PARAMETER_ARTIFACT_ID => $atid,
@@ -743,41 +739,33 @@
 			$searchEngine =& $searchEngines[$i];
 			echo '<option value="'.$searchEngine->getType().'"'.( $type_of_search == $searchEngine->getType() ? ' selected="selected"' : '' ).'>'.$searchEngine->getLabel($parameters).'</option>'."\n";
 		}
-		echo '</select></div>';
-
-//		print '<br />';
-//		print '
-//		<input type="checkbox" name="exact" value="1"'.( $exact ? ' checked' : ' unchecked' ).'> Require All Words';
-
-		print '</td><td>&nbsp;';
+		echo '</select>';
+		
 		$parameters = $searchManager->getParameters();
 		foreach($parameters AS $name => $value) {
-			print '<input type="hidden" value="'.$value.'" name="'.$name.'" />';
+			print '<input type="hidden" value="'.$value.'" name="'.$name.'" id="'.$name.'"/>';
 		}
-		print '</td><td>';
-		print '<input type="text" size="12" name="words" value="'.$defaultWords.'" />';
-
-		print '</td><td>&nbsp;</td><td>';
-		print '<input type="submit" name="Search" value="'._('Search').'" />';
-		print '</td>';
-
+		print '<label for="search-words" class="skip">' . html_image('pixel-transparent.gif', 1, 1, array('alt' => "")) . '</label>';
+		print '<input type="text" name="words" size="12" id="search-words" value="'.$defaultWords.'" />';
+		
+		print '<label for="search-submit" class="skip">' . html_image('pixel-transparent.gif', 1, 1, array('alt' => "")) . '</label>';
+		print '<input type="image" name="Search" id="search-submit" src="/themes/adullact-v3/image/picto_bleu_loupe.png" alt="'._('Search').'" title="'._('Search').'" />';
+		
 		if (isset($group_id) && $group_id) {
-			print '
-					<td width="10">&nbsp;</td>
-					<td>'.util_make_link ('/search/advanced_search.php?group_id='.$group_id,_('Advanced search'),array('class'=>'lnkutility')).'</td>';
+			$link_content = html_image('picto_remarques.png','21','21',array('alt'=>_('Advanced search'), 'title'=>_('Advanced search')));
+			print '&nbsp;'.util_make_link ('/search/advanced_search.php?group_id='.$group_id, $link_content, array('class'=>'lnkutility', 'id'=>'advanced-search'));
 		}
-		print '</tr></table>';
+		print '</div>';
 		print '</form>';
+	}
 
-	}
-	
 	function advancedSearchBox($sectionsArray, $group_id, $words, $isExact) {
-		 // display the searchmask
+		// display the searchmask
 		print '
 		<form name="advancedsearch" action="'.getStringFromServer('PHP_SELF').'" method="post">
 		<input type="hidden" name="search" value="1"/>
 		<input type="hidden" name="group_id" value="'.$group_id.'"/>
-		<div align="center"><br />
+		<div class="align-center"><br />
 			<table border="0">
 				<tr>
 					<td colspan ="2">
@@ -847,7 +835,7 @@
 							<tr class="tablecontent">
 								<td colspan="3">&nbsp;</td>
 							</tr>
-							<tr align="center" valign="top" class="tablecontent">
+							<tr valign="top" class="tablecontent align-center">
 								<td>';
 		foreach($sectionsArray as $key => $section) {
 			$oldcountlines = $countLines;
@@ -982,7 +970,7 @@
 		$return= '
 		<tr '.$row_attr;
 		if ( $istitle ) {
-			$return .=' align="center" class="multiTableRowTitle"';
+			$return .=' class="align-center multiTableRowTitle"';
 		}
 		$return .= '>';
 		for ( $c = 0; $c < count($cell_data); $c++ ) {
@@ -1064,7 +1052,6 @@
 	        return db_result($res,0,'theme_id');
 	}
 
-
 	function confirmBox($msg, $params, $buttons, $image='*none*') {
 	 	if ($image == '*none*') {
 	 		$image = html_image('stop.png','48','48',array());
@@ -1100,8 +1087,252 @@
 		</div>
 	 	';
 	}
-}
 
+	function html_input($name, $id = '', $label = '', $type = 'text', $value = '', $extra_params = '') {
+		if (!$id) {
+			$id = $name;
+		}
+		$return = '<div class="field-holder">
+		';
+		if ($label) {
+			$return .= '<label for="' . $id . '">' . $label . '</label>
+			';
+		}
+		$return .= '<input id="' . $id . '" type="' . $type . '"';
+		//if input is a submit then name is not present
+		if ($name) {
+			$return .= ' name="' . $name . '"';
+		}
+		if ($value) {
+			$return .= ' value="' . $value . '"';
+		}
+		if (is_array($extra_params)) {
+			foreach ($extra_params as $key => $extra_params_value) {
+				$return .= $key . '="' . $extra_params_value . '" ';
+			}
+		}
+		$return .= '/>
+		</div>';
+		return $return;
+	}
+	
+	function html_checkbox($name, $value, $id = '', $label = '', $checked = '', $extra_params = '') {
+		if (!$id) {
+			$id = $name;
+		}
+		$return = '<div class="field-holder">
+        ';
+		$return .= '<input name="' . $name . '" id="' . $id . '" type="checkbox" value="' . $value . '" ';
+		if ($checked) {
+			$return .= 'checked="checked" ';
+		}
+		if (is_array($extra_params)) {
+			foreach ($extra_params as $key => $extra_params_value) {
+				$return .= $key . '="' . $extra_params_value . '" ';
+			}
+		}
+		$return .= '/>';
+		if ($label) {
+			$return .= '<label for="' . $id . '">' . $label . '</label>
+            ';
+		}
+		$return .= '</div>';
+		return $return;
+	}
+	
+	function html_text_input_img_submit($name, $img_src, $id = '', $label = '', $value = '', $img_title = '', $img_alt = '', $extra_params = '', $img_extra_params = '') {
+		if (!$id) {
+			$id = $name;
+		}
+		if (!$img_title) {
+			$img_title = $name;
+		}
+		if (!$img_alt) {
+			$img_alt = $img_title;
+		}
+		$return = '<div class="field-holder">
+        ';
+		if ($label) {
+			$return .= '<label for="' . $id . '">' . $label . '</label>
+            ';
+		}
+		$return .= '<input id="' . $id . '" type="text" name="' . $name . '"';
+		if ($value) {
+			$return .= ' value="' . $value . '"';
+		}
+		if (is_array($extra_params)) {
+			foreach ($extra_params as $key => $extra_params_value) {
+				$return .= $key . '="' . $extra_params_value . '" ';
+			}
+		}
+		$return .= '/>
+        <input type="image" id="' . $id . '_submit" src="' . $this->imgroot . $img_src . '" alt="' . $img_alt . '" title="' . $img_title . '"';
+		if (is_array($img_extra_params)) {
+			foreach ($img_extra_params as $key => $img_extra_params_value) {
+				$return .= $key . '="' . $img_extra_params_value . '" ';
+			}
+		}
+		$return .= '/>
+        </div>';
+		return $return;
+	}
+
+	function html_select($vals, $name, $label = '', $id = '', $checked_val = '', $text_is_value = false, $extra_params = '') {
+		if (!$id) {
+			$id = $name;
+		}
+		$return = '<div class="field-holder">
+        ';
+		if ($label) {
+			$return .= '<label for="' . $id . '">' . $label . '</label>
+            ';
+		}
+		$return .= '<select name="' . $name . '" id="' . $id . '" ';
+		if (is_array($extra_params)) {
+			foreach ($extra_params as $key => $extra_params_value) {
+				$return .= $key . '="' . $extra_params_value . '" ';
+			}
+		}
+		$return .= '>';
+		$rows = count($vals);
+		for ($i = 0; $i < $rows; $i++) {
+			if ( $text_is_value ) {
+				$return .= '
+				<option value="' . $vals[$i] . '"';
+				if ($vals[$i] == $checked_val) {
+					$return .= ' selected="selected"';
+				}
+			} else {
+				$return .= '
+				<option value="' . $i . '"';
+				if ($i == $checked_val) {
+					$return .= ' selected="selected"';
+				}
+			}
+			$return .= '>' . htmlspecialchars($vals[$i]) . '</option>';
+		}
+		$return .= '
+		</select>
+		</div>';
+		return $return;
+	}
+	
+	function html_textarea($name, $id = '', $label = '', $value = '',  $extra_params = '') {
+		if (!$id) {
+			$id = $name;
+		}
+		$return = '<div class="field-holder">
+        ';
+		if ($label) {
+			$return .= '<label for="' . $id . '">' . $label . '</label>
+            ';
+		}
+		$return .= '<textarea id="' . $id . '" name="' . $name . '" ';
+		if (is_array($extra_params)) {
+			foreach ($extra_params as $key => $extra_params_value) {
+				$return .= $key . '="' . $extra_params_value . '" ';
+			}
+		}
+		$return .= '>';
+		if ($value) {
+			$return .= $value;
+		}
+		$return .= '</textarea>
+        </div>';
+		return $return;
+	}
+    
+	function html_table_top($cols, $summary = '', $class = '', $extra_params = '') {
+		$return = '<table summary="' . $summary . '" ';
+		if ($class) {
+			$return .= 'class="' . $class . '" ';
+		}
+		if (is_array($extra_params)) {
+			foreach ($extra_params as $key => $extra_params_value) {
+				$return .= $key . '="' . $extra_params_value . '" ';
+			}
+		}
+		$return .= '>';
+		$return .= '<thead><tr>';
+		$nbCols = count($cols);
+		for ($i = 0; $i < $nbCols; $i++) {
+			$return .= '<th scope="col">' . $cols[$i] . '</th>';
+		}
+		$return .= '</tr></thead>';
+		return $return;
+	}
+    
+	function getMonitorPic($title = '', $alt = '') {
+		return $this->getPicto('ic/mail16w.png', $title, $alt, '15', '15');
+	}
+    
+	function getReleaseNotesPic($title = '', $alt = '') {
+		return $this->getPicto('ic/manual16c.png', $title, $alt, '15', '15');
+	}
+    
+	/* no picto for download */
+	function getDownloadPic($title = '', $alt = '') {
+		return $this->getPicto('ic/save.png', $title, $alt, '15', '15');
+	}
+	
+	function getHomePic($title = '', $alt = '') {
+		return $this->getPicto('ic/home16b.png', $title, $alt);
+	}
+    
+	function getFollowPic($title = '', $alt = '') {
+		return $this->getPicto('ic/tracker20g.png', $title, $alt);
+	}
+    
+	function getForumPic($title = '', $alt = '') {
+		return $this->getPicto('ic/forum20g.png', $title, $alt);;
+	}
+    
+	function getDocmanPic($title = '', $alt = '') {
+		return $this->getPicto('ic/docman16b.png', $title, $alt);
+	}
+    
+	function getMailPic($title = '', $alt = '') {
+		return $this->getPicto('ic/mail16b.png', $title, $alt);
+	}
+    
+	function getPmPic($title = '', $alt = '') {
+		return $this->getPicto('ic/taskman20g.png', $title, $alt);
+	}
+    
+	function getScmPic($title = '', $alt = '') {
+		return $this->getPicto('ic/cvs16b.png', $title, $alt);
+	}
+    
+	function getFtpPic($title = '', $alt = '') {
+		return $this->getPicto('ic/ftp16b.png', $title, $alt);
+	}
+    
+	function getPicto($url, $title, $alt, $width = '20', $height = '20') {
+		if (!$alt) {
+			$alt = $title;   
+		}
+		return html_image($url, $width, $height, array('title'=>$title, 'alt'=>$alt));
+	}
+    
+	/**
+	 * toSlug() - protect a string to be used as a link or an anchor
+	 *
+	 * @param   string $string  the string used as a link or an anchor
+	 * @param   string $space   the caracter used as a replacement for a space
+	 * @return  a protected string with only alphanumeric caracters
+	 */
+	function toSlug($string, $space = "-") {
+		if (function_exists('iconv')) {
+			$string = @iconv('UTF-8', 'ASCII//TRANSLIT', $string);
+		}
+		$string = preg_replace("/[^a-zA-Z0-9- ]/", "-", $string);
+		$string = strtolower($string);
+		$string = str_replace(" ", $space, $string);
+		return $string;
+	}
+}	
+
+
 // Local Variables:
 // mode: php
 // c-file-style: "bsd"

Modified: trunk/gforge/www/include/features_boxes.php
===================================================================
--- trunk/gforge/www/include/features_boxes.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/include/features_boxes.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -13,34 +13,38 @@
 function show_features_boxes() {
 	GLOBAL $HTML,$sys_use_ratings,$sys_use_frs,$sys_use_project_tags;
 	
+	// have to echo right now otherwise features boxes top will be at bottom
+	// echo $HTML->boxTop(_('Features Boxes'), 'Features_Boxes');
+	echo '<h2 class="skip">' . _('Features Boxes') . '</h2>';
+	plugin_hook ("features_boxes_top", array());
 	$return = '';
+
 	if ($sys_use_project_tags) {
-		$return .= $HTML->boxTop(_('Tag Cloud'));
-		$return .= '<center>';
+		$return .= $HTML->boxTop(_('Tag Cloud'), 'Tag_Cloud');
 		$return .= tag_cloud();
-		$return .= '</center>';
-		$return .= $HTML->boxMiddle(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']),0);
+		$return .= $HTML->boxMiddle(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']), 'Forge_Statistics');
 	} else {
-		$return .= $HTML->boxTop(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']),0);
+		$return .= $HTML->boxTop(sprintf(_('%1$s Statistics'), $GLOBALS['sys_name']), 'Forge_Statistics');
 	}
 	$return .= show_sitestats();
 	if ($sys_use_frs) {
-		$return .= $HTML->boxMiddle(_('Top Project Downloads'));
+		$return .= $HTML->boxMiddle(_('Top Project Downloads'), 'Top_Projects_Downloads');
 		$return .= show_top_downloads();
 	}
 	if ($sys_use_ratings) {
-		$return .= $HTML->boxMiddle(_('Highest Ranked Users'));
+		$return .= $HTML->boxMiddle(_('Highest Ranked Users'), 'Highest_Ranked_Users');
 		$return .= show_highest_ranked_users();
 	}
-	$return .= $HTML->boxMiddle(_('Most Active This Week'));
+	$return .= $HTML->boxMiddle(_('Most Active This Week'), 'Most_Active_This_Week');
 	$return .= show_highest_ranked_projects();
-	$return .= $HTML->boxMiddle(_('Recently Registered Projects'));
+	$return .= $HTML->boxMiddle(_('Recently Registered Projects'), 'Recently_Registered_Projects');
 	$return .= show_newest_projects();
 	$hook_params = array () ;
 	$hook_params['returned_text'] = '' ;
 	plugin_hook ("features_boxes_bottom", $hook_params);
 	$return .= $HTML->boxBottom(0);
-	return $return;
+	echo $return;
+	plugin_hook ("features_boxes_bottom", array());
 }
 
 function show_top_downloads() {
@@ -69,15 +73,24 @@
 		return _('No Stats Available');
 	}
 	// print each one
-	$return = "";
 	while ($row_topdown = db_fetch_array($res_topdown)) {
-		if ($row_topdown['downloads'] > 0)
-			$return .= '<strong>(' . number_format($row_topdown['downloads']) . ')</strong> '
-			. util_make_link_g ($row_topdown['unix_group_name'],$row_topdown['group_id'],$row_topdown['group_name'])
-			. "<br />\n";
+		if ($row_topdown['downloads'] > 0) {
+			$t_downloads = number_format($row_topdown['downloads']);
+			$t_prj_link = util_make_link_g ($row_topdown['unix_group_name'], $row_topdown['group_id'], $row_topdown['group_name']);
+		
+			$return .= '<tr>';
+			$return .= '<td class="width-stat-col1">' . $t_downloads . '</td>';
+			$return .= '<td>' . $t_prj_link . '</td>';
+			$return .= '</tr>\n';
+		}
 	}
-	$return .= '<div align="center">'.util_make_link ('/top/',_('More')).'</div>';
-
+	if ( $return != "" ) {
+		/* MFaure: test required to deal with a special case encountered on zforge by 20091204 */
+		$t_return = $return;
+		$return = '<table summary="">' . $t_return . "</table>\n"; 
+	}
+	$return .= '<div class="align-center">' . util_make_link ('/top/', _('All the ranking'), array('class' => 'dot-link')) . '</div>';
+	
 	return $return;
 
 }
@@ -131,7 +144,8 @@
 function show_sitestats() {
 	global $sys_use_trove;
 	$gforge = new FusionForge();
-	$return = _('Hosted Projects').': ';
+	$return = '<p>';
+	$return .= _('Hosted Projects').': ';
 	if ($sys_use_trove) {
 		$return .= '<a href="softwaremap/full_list.php">';
 	}
@@ -139,8 +153,9 @@
 	if ($sys_use_trove) {
 		$return .= '</a>';
 	}
-	$return .= '<br />'._('Registered Users').': <strong>'.
-		number_format($gforge->getNumberOfActiveUsers()).'</strong>';
+	$return .= "</p><p>";
+	$return .= _('Registered Users').': <strong>'.number_format($gforge->getNumberOfActiveUsers()).'</strong>';
+	$return .= "</p>\n";
 	return $return;
 }
 
@@ -152,14 +167,22 @@
 	if (!$res_newproj || db_numrows($res_newproj) < 1) {
 		return _('No Stats Available')." ".db_error();
 	} else {
+		
+		$return .= '<table summary="">' . "\n";
 		while ( $row_newproj = db_fetch_array($res_newproj) ) {
-			$return .= "<strong>(" . date(_('m/d'),$row_newproj['register_time'])  . ")</strong> "
-			. util_make_link_g ($row_newproj['unix_group_name'],$row_newproj['group_id'],$row_newproj['group_name'])
-			.'<br />';
+			
+			$t_prj_date = date(_('m/d'),$row_newproj['register_time']);
+			$t_prj_link = util_make_link_g ($row_newproj['unix_group_name'],$row_newproj['group_id'],$row_newproj['group_name']);
+			
+			$return .= "<tr>";
+			$return .= '<td class="width-stat-col1">' . $t_prj_date . "</td>";
+			$return .= '<td>' . $t_prj_link . '</td>';
+			$return .= "</tr>\n";
 		}
+		$return .= '</table>';
 	}
 
-	$return .= '<div align="center">'.util_make_link ('/softwaremap/full_list.php','[ '._('More').' ]').'</div>';
+	$return .= '<div class="align-center">'.util_make_link ('/softwaremap/full_list.php', _('All newest projects'), array('class' => 'dot-link')).'</div>';
 	return $return;
 }
 
@@ -178,7 +201,7 @@
 			.'<br />';
 		}
 	}
-	$return .= '<div align="center">'.util_make_link ('/top/topusers.php','[ '._('More').' ]').'</div>';
+	$return .= '<div class="align-center">'.util_make_link ('/top/topusers.php', _('All users'), array('class' => 'dot-link')).'</div>';
 	return $return;
 }
 
@@ -189,15 +212,19 @@
 	if (!$result || db_numrows($result) < 1) {
 		return _('No Stats Available')." ".db_error();
 	} else {
-		$return='';
+		$return = '<table summary="">';
 		while ($row=db_fetch_array($result)) {
-			$return .= '<strong>(#'.number_format(substr($row['ranking'],0,5),1).')</strong> '
-				.util_make_link_g ($row['unix_group_name'],$row['group_id'],$row['group_name'])
-				.'<br />';
+			$t_prj_activity = number_format(substr($row['ranking'],0,5),1);
+			$t_prj_link = util_make_link_g ($row['unix_group_name'],$row['group_id'],$row['group_name']);
+			
+			$return .= "<tr>";
+			$return .= '<td class="width-stat-col1">' . $t_prj_activity . "%</td>";
+			$return .= '<td>' . $t_prj_link . '</td>';
+			$return .= "</tr>\n";			
 		}
-		$return .= '<div align="center">'
-		.util_make_link ('/top/mostactive.php?type=week','[ '._('More').' ]')
-		.'</div>';
+		$return .= "</table>";
+		$return .= '<div class="align-center">' . util_make_link ('/top/mostactive.php?type=week', _('All project activities'), array('class' => 'dot-link')) . '</div>';
+		
 	}
 	return $return;
 }

Modified: trunk/gforge/www/include/html.php
===================================================================
--- trunk/gforge/www/include/html.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/include/html.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -110,11 +110,6 @@
 		$return .= ' '.$k.'="'.$v.'"';
 	}
 
-	// ## insert a border tag if there isn't one
-	if (!isset($args['border'])) {
-		$return .= ' border="0"';
-	}
-
 	if (!isset($args['alt'])) {
 		$return .= ' alt=""';
 	}
@@ -732,6 +727,7 @@
 		Check to see if logged in
 	*/
 	echo $HTML->header($params);
+	echo "<h1>" . _('My Personal Page') . "</h1>\n";
 	echo html_feedback_top((isset($GLOBALS['feedback']) ? $GLOBALS['feedback'] : ''));
 	echo ($HTML->beginSubMenu());
 	if ($GLOBALS['sys_use_diary']) {

Modified: trunk/gforge/www/include/project_home.php
===================================================================
--- trunk/gforge/www/include/project_home.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/include/project_home.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -22,13 +22,15 @@
 // ########################################### end top area
 
 // two column deal
-?>
-
-<table width="100%" border="0">
+echo '
+<div id="forge-project-home" class="lien-soulignement">
+<table id="project-summary-and-devs" class="my-layout-table" summary="">
 	<tr>
-		<td width="80%" valign="top">
-		<?php
+		<td>
+			<h2>'.$project->getPublicName().'</h2>
+			<h3>'._('Project summary').'</h3>';
 
+
 // ########################################## top area, not in box
 
 $res_admin = db_query_params ('SELECT users.user_id,users.user_name,users.realname,user_group.admin_flags
@@ -96,7 +98,7 @@
 	if ( ($project->usesTracker() && $GLOBALS['sys_use_tracker']) || ($project->usesPm() && $GLOBALS['sys_use_pm']) ) {
 		print sprintf(_(' or <a href="%1$s">Activity</a>'),util_make_url ('/project/report/?group_id='.$group_id));
 	}
-	print '<br />'.sprintf(_('View list of <a href="%1$s">RSS feeds</a> available for this project.'), util_make_url ('/export/rss_project.php?group_id='.$group_id)). '&nbsp;' . html_image('ic/rss.png',16,16,array('border'=>'0'));
+	print '<br />'.sprintf(_('View list of <a href="%1$s">RSS feeds</a> available for this project.'), util_make_url ('/export/rss_project.php?group_id='.$group_id)). '&nbsp;' . html_image('ic/rss.png',16,16,array());
 }
 
 if($GLOBALS['sys_use_people']) {
@@ -125,89 +127,75 @@
 $hook_params['group_id'] = $group_id ;
 plugin_hook ("project_after_description",$hook_params) ;
 
-?>
-		</td>
-		<td valign="top" width="20%">
+echo '</td>' ;
 
-<?php
-
 // ########################### Developers on this project
 
-echo $HTML->boxTop(_('Project Members'));
+echo '<td>' ;
+echo $HTML->boxTop(_('Project Members'), 'Project_Members');
 
 $iam_member = false ;
 
 if (db_numrows($res_admin) > 0) {
-
-	?>
-	<span class="develtitle"><?php echo _('Project Admins'); ?>:</span><br />
-	<?php
-		$started_developers = false;
-		while ($row_admin = db_fetch_array($res_admin)) {
-			if (trim($row_admin['admin_flags']) != 'A' && !$started_developers) {
-				$started_developers=true;
-				echo '<span class="develtitle">'. _('Members').':</span><br />';
-			}
-			echo util_make_link_u ($row_admin['user_name'],$row_admin['user_id'],$row_admin['realname']).'<br />';
-			if ($row_admin['user_id'] == user_getid())
-				$iam_member = true ;
+	echo "<p>\n";
+	echo '<span class="develtitle"><?php echo _('Project Admins'); ?>:</span><br />';
+	$started_developers = false;
+	while ($row_admin = db_fetch_array($res_admin)) {
+		if (trim($row_admin['admin_flags']) != 'A' && !$started_developers) {
+			$started_developers=true;
+			echo '<span class="develtitle">'. _('Developers').':</span><br />';
 		}
-	?>
-	<hr width="100%" size="1" />
-	<?php
-
+		echo util_make_link_u ($row_admin['user_name'],$row_admin['user_id'],$row_admin['realname']).'<br />';
+		if ($row_admin['user_id'] == user_getid())
+			$iam_member = true ;
+	}
+	echo "</p>\n";
 }
 
-?>
+$members = $project->getUsers();
+echo '<p>';
+echo util_make_link ('/project/memberlist.php?group_id='.$group_id,'['.sprintf(_('View the %1$d Member(s)'),count($members)).']'); ?>
+echo '</p>';
 
-<p><?php 
-	$members = $project->getUsers();
-	echo util_make_link ('/project/memberlist.php?group_id='.$group_id,'['.sprintf(_('View the %1$d Member(s)'),count($members)).']'); ?></p>
-
-<?php
-
 if (!$iam_member) {
-	echo '<p>'.util_make_link ('/project/request.php?group_id='.$group_id,'['._('Request to join').']').'</p>';
+	echo '<p>'.util_make_link ('/project/request.php?group_id='.$group_id,_('Request to join')).'</p>';
 }
 echo $HTML->boxBottom();
 
-?>
-		</td>
-	</tr>
-</table>
-
-<br />
-
-<?php
+echo '</td></tr></table>';
 $hook_params = array () ;
 $hook_params['group_id'] = $group_id ;
 plugin_hook ("project_before_frs",$hook_params) ;
+echo '<div id="file-releases">';
 
 // ############################# File Releases
 
 // CB hide FRS if desired
 if ($project->usesFRS()) {
-	echo $HTML->boxTop(_('Latest File Releases'));
+	echo $HTML->boxTop(_('Latest File Releases'), 'Latest_File_Releases');
 	$unix_group_name = $project->getUnixName();
 
 	echo '
-	<table cellspacing="1" cellpadding="5" width="100%" border="0">
-		<tr>
-		<td style="text-align:left">
-			'._('Package').'
-		</td>
-		<td style="text-align:center">
-			'._('Version').'
-		</td>
-		<td style="text-align:center">
-			'._('Date').'
-		</td>
-		<td style="text-align:center">
-			'._('Notes').' / '._('Monitor').'
-		</td>
-		<td style="text-align:center">
-			'._('Download').'
-		</td>
+	<table summary="Latest file releases" class="width-100p100">
+		<tr class="table-header">
+			<th class="align-left" scope="col">
+				'._('Package').'
+			</th>
+			<th scope="col">
+				'._('Version').'
+			</th>
+			<th scope="col">
+				'._('Date').'
+			</th>
+			<th scope="col">
+				'._('Notes').'
+			</th>
+			<th scope="col">
+				'._('Monitor').'
+			</th>
+			<th scope="col">
+				'._('Download').'
+			</th>
 		</tr>';
 
 		//
@@ -233,7 +221,7 @@
 		if (!$res_files || $rows_files < 1) {
 			echo db_error();
 			// No releases
-			echo '<tr><td colspan="5"><strong>'._('This Project Has Not Released Any Files').'</strong></td></tr>';
+			echo '<tr><td colspan="6"><strong>'._('This Project Has Not Released Any Files').'</strong></td></tr>';
 
 		} else {
 			/*
@@ -244,62 +232,85 @@
 				if (db_result($res_files,$f,'package_id')==db_result($res_files,($f-1),'package_id')) {
 					//same package as last iteration - don't show this release
 				} else {
-					$rel_date = getdate(db_result($res_files,$f,'release_date'));
+					$rel_date = getdate (db_result ($res_files, $f, 'release_date'));
+					$package_name = db_result($res_files, $f, 'package_name');
+					$package_release = db_result($res_files,$f,'release_name');
 					echo '
-					<tr style="text-align:center">
-					<td style="text-align:left">
-					<strong>' . db_result($res_files,$f,'package_name'). '</strong></td>';
+                        <tr class="align-center">
+						<td class="align-left">
+							<strong>' . $package_name . '</strong>
+						</td>';
 					// Releases to display
-					print '<td>'.db_result($res_files,$f,'release_name') .'
-					</td>
-					<td>' . $rel_date["month"] . ' ' . $rel_date["mday"] . ', ' . $rel_date["year"] . '</td>
-					<td><a href="'.util_make_url ('/frs/shownotes.php?group_id=' . $group_id . '&amp;release_id=' . db_result($res_files,$f,'release_id')) . '">';
-					echo html_image('ic/manual16c.png','15','15',array('alt'=>_('Release Notes')));
-					echo '</a> - <a href="'.util_make_url ('/frs/monitor.php?filemodule_id=' . db_result($res_files,$f,'package_id') . '&amp;group_id='.$group_id.'&amp;start=1').'">';
-					echo html_image('ic/mail16d.png','15','15',array('alt'=>_('Monitor this package')));
-					echo '</a>
-					</td>
-					<td>'.util_make_link ('/frs/?group_id=' . $group_id . '&amp;release_id=' . db_result($res_files,$f,'release_id'),_('Download')).'</td></tr>';
+					echo '
+                        <td>'
+						.$package_release.'
+						</td>
+						<td>'
+						. $rel_date["month"] . ' ' . $rel_date["mday"] . ', ' . $rel_date["year"] .
+						'</td>
+						<td class="align-center">';
+					
+					// -> notes
+					// accessibility: image is a link, so alt must be unique in page => construct a unique alt
+					$tmp_alt = $package_name . " - " . _('Release Notes');
+					$link = '/frs/shownotes.php?group_id=' . $group_id . '&amp;release_id=' . db_result($res_files, $f, 'release_id');
+					$link_content = $HTML->getReleaseNotesPic($tmp_alt, $tmp_alt);
+					echo util_make_link ($link, $link_content);
+					echo '</td>
+						<td class="align-center">';
+					
+					// -> monitor
+					$tmp_alt = $package_name . " - " . _('Monitor this package');
+					$link = '/frs/monitor.php?filemodule_id=' .  db_result($res_files,$f,'package_id') . '&amp;group_id='.$group_id.'&amp;start=1';
+					$link_content = $HTML->getMonitorPic($tmp_alt, $tmp_alt);
+					echo util_make_link ($link, $link_content);
+					echo '</td>
+						<td class="align-center">';
+					
+					// -> download
+					$tmp_alt = $package_name." ".$package_release." - ". _('Download');
+					$link_content = $HTML->getDownloadPic($tmp_alt, $tmp_alt);
+					$t_link_anchor = $HTML->toSlug($package_name)."-".$HTML->toSlug($package_release)."-title-content";
+					$link = '/frs/?group_id=' . $group_id . '&amp;release_id=' . db_result($res_files, $f, 'release_id')."#".$t_link_anchor;
+					echo util_make_link ($link, $link_content);
+					echo '</td>
+					</tr>';
+					
 				}
 			}
-
 		}
-		?></table>
-	<div style="text-align:center">
-	<?php echo util_make_link ('/frs/?group_id='.$group_id,'['._('View All Project Files').']'); ?>
-	</div>
-<?php
-	echo $HTML->boxBottom();
+		echo '</table>';
+		echo '<div class="lien-soulignement">' . util_make_link ('/frs/?group_id='.$group_id, _('View All Project Files')) . '</div>';
+		
+		echo $HTML->boxBottom();
 }
 
+echo '</div><!-- id="file-releases" -->' . "\n";
+
 $hook_params = array () ;
 $hook_params['group_id'] = $group_id ;
 plugin_hook ("project_after_frs",$hook_params) ;
 
-?>
-<p />
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-	<tr>
-		<td valign="top" width="50%">
+// ############################## PUBLIC AREAS
 
-<?php
+echo '<table id="project-public-areas-and-news" class="my-layout-table" summary="">
+    <tr><td>
+    ';
+echo $HTML->boxTop(_('Public Areas'), 'Public_Areas');
 
-// ############################## PUBLIC AREAS
-echo $HTML->boxTop(_('Public Areas'));
-
 // ################# Homepage Link
 
-print '<a href="http://' . $project->getHomePage() . '">';
-print html_image('ic/home16b.png','20','20',array('alt'=>_('Home Page')));
-print '&nbsp;'._('Project Home Page').'</a>';
+echo '<div class="public-area-box">';
+echo util_make_link ('http://' . $project->getHomePage(), $HTML->getHomePic(_('Home Page')) . '&nbsp;' . _('Project Home Page'));
+echo '</div>
+    ';
 
 // ################## ArtifactTypes
 
-// CB hide tracker if desired
 if ($project->usesTracker()) {
-	print '<hr size="1" /><a href="'.util_make_url ('/tracker/?group_id='.$group_id).'">';
-	print html_image('ic/tracker20g.png','20','20',array('alt'=>_('Tracker')));
-	print '&nbsp;'._('Tracker').'</a>';
+	echo '<div class="public-area-box">';
+	$link_content = $HTML->getFollowPic(_('Tracker')) . '&nbsp;' . _('Tracker');
+	echo util_make_link ( '/tracker/?group_id=' . $group_id, $link_content);
 
 	$result=db_query_params ('SELECT agl.*,aca.count,aca.open_count
 	FROM artifact_group_list agl
@@ -314,94 +325,101 @@
 	if (!$result || $rows < 1) {
 		echo '<br /><em>'._('There are no public trackers available').'</em>';
 	} else {
-		echo '<ul>' ;
-		
+		echo '<ul class="tracker">';
 		for ($j = 0; $j < $rows; $j++) {
-			echo '<li>' ;
-			print util_make_link ('/tracker/?atid='. db_result($result, $j, 'group_artifact_id') . '&amp;group_id='.$group_id.'&amp;func=browse',db_result($result, $j, 'name')) . ' ' ;
+			echo '<li>';
+			echo util_make_link ('/tracker/?atid='. db_result($result, $j, 'group_artifact_id')  . '&amp;group_id='.$group_id.'&amp;func=browse',db_result($result, $j, 'name')) . ' ' ;
 			printf(ngettext('(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', '(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', (int) db_result($result, $j, 'open_count')), (int) db_result($result, $j, 'open_count'), (int) db_result($result, $j, 'count')) .'<br />'.
 			 db_result($result, $j, 'description');
 			echo '</li>' ;
 		}
-		echo '</ul>' ;
+		echo '</ul>';
 	}
+	echo '</div>';
 }
 
 // ################## forums
 
 if ($project->usesForum()) {
-	print '<hr size="1" /><a href="'.util_make_url ('/forum/?group_id='.$group_id).'">';
-	print html_image('ic/forum20g.png','20','20',array('alt'=>_('Forums')));
-	print '&nbsp;'._('Public Forums').'</a> (';
+	echo '<div class="public-area-box">';
+    $link_content = $HTML->getForumPic('') . '&nbsp;' . _('Public Forums');
+    echo util_make_link ( '/forum/?group_id=' . $group_id, $link_content);
+	print ' (';
 	$messages_count = project_get_public_forum_message_count($group_id);
 	$forums_count = project_get_public_forum_count($group_id);
 	printf(ngettext("<strong>%d</strong> message","<strong>%d</strong> messages",$messages_count),$messages_count);
 	print ' in ';
 	printf(ngettext("<strong>%d</strong> forum","<strong>%d</strong> forums",$forums_count),$forums_count);
 	print ')' ;
+	print "\n</div>";
 }
 
 // ##################### Doc Manager
 
 if ($project->usesDocman()) {
-	print '
-	<hr size="1" />
-	<a href="'.util_make_url ('/docman/?group_id='.$group_id).'">';
-	print html_image('ic/docman16b.png','20','20',array('alt'=>_('Documents')));
-	print '&nbsp;'._('DocManager: Project Documentation').'</a>';
+	echo '<div class="public-area-box">';
+	$link_content = $HTML->getDocmanPic('') . '&nbsp;' . _('DocManager: Project Documentation');
+	print util_make_link( '/docman/?group_id='.$group_id, $link_content);
+	echo '</div>';
 }
 
 // ##################### Mailing lists
 
 if ($project->usesMail()) {
-	print '<hr size="1" /><a href="'.util_make_url ('/mail/?group_id='.$group_id).'">';
-	print html_image('ic/mail16b.png','20','20',array('alt'=>_('Mailing Lists')));
-	print '&nbsp;'._('Mailing Lists').'</a> ';
+	echo '<div class="public-area-box">';
+	$link_content = $HTML->getMailPic('') . '&nbsp;' . _('Mailing Lists');
+	print util_make_link( '/mail/?group_id='.$group_id, $link_content);
 	$n = project_get_mail_list_count($group_id);
 	printf(ngettext('(<strong>%1$s</strong> public mailing list)', '(<strong>%1$s</strong> public mailing lists)', $n), $n);
+	echo '</div>';
 }
 
 // ##################### Task Manager
 
 if ($project->usesPm()) {
-	print '<hr size="1" /><a href="'.util_make_url ('/pm/?group_id='.$group_id).'">';
-	print html_image('ic/taskman20g.png','20','20',array('alt'=>_('Task Manager')));
-	print '&nbsp;'._('Task Manager').'</a>';
-	$result = db_query_params ('SELECT * FROM project_group_list WHERE group_id=$1 AND is_public=1',
-			array ($group_id));
+	echo '<div class="public-area-box">';
+	$link_content = $HTML->getPmPic('') . '&nbsp;' . _('Task Manager');
+	print util_make_link( '/pm/?group_id='.$group_id, $link_content);
+	
+	$sql="SELECT * FROM project_group_list WHERE group_id='$group_id' AND is_public=1";
+	$result = db_query ($sql);
 	$rows = db_numrows($result);
 	if (!$result || $rows < 1) {
 		echo '<br /><em>'._('There are no public subprojects available').'</em>';
 	} else {
-		echo '<ul>' ;
+		echo '<ul class="task-manager">';
 		for ($j = 0; $j < $rows; $j++) {
 			echo '<li>' ;
 			print util_make_link ('/pm/task.php?group_project_id='.db_result($result, $j, 'group_project_id').'&amp;group_id='.$group_id.'&amp;func=browse',db_result($result, $j, 'project_name'));
 			echo '</li>' ;
 		}
-		echo '</ul>' ;
+		echo '</ul>';
 	}
+	echo '</div>';
 }
 
 // ######################### Surveys
 
 if ($project->usesSurvey()) {
-	print '<hr size="1" /><a href="'.util_make_url ('/survey/?group_id='.$group_id).'">';
-	print html_image('ic/survey16b.png','20','20',array('alt'=>_('Surveys')));
-	print '&nbsp;'._('Surveys')."</a>";
-	echo ' (<strong>'. project_get_survey_count($group_id) .'</strong> '._('surveys').')';
+	echo '<div class="public-area-box">';
+	print html_image('ic/survey16b.png','20','20',array('alt'=>"")) . "&nbsp;";
+	print util_make_link( '/survey/?group_id='.$group_id, '&nbsp;'._('Surveys'));
+	echo ' ( <strong>'. project_get_survey_count($group_id) .'</strong> ' . _('surveys').'  )';
+	echo '</div>';
 }
 
 // ######################### SCM
 
 if ($project->usesSCM()) {
-	print '<hr size="1" /><a href="'.util_make_url ('/scm/?group_id='.$group_id).'">';
-	print html_image('ic/cvs16b.png','20','20',array('alt'=>_('Source Code')));
-	print '&nbsp;'._('SCM Repository')."</a>";
+	echo '<div class="public-area-box">';
 
+	$link_content = $HTML->getScmPic('') . '&nbsp;' . _('SCM Repository');
+	print util_make_link( '/scm/?group_id='.$group_id, $link_content);
+
 	$hook_params = array () ;
 	$hook_params['group_id'] = $group_id ;
 	plugin_hook ("scm_stats", $hook_params) ;
+	echo '</div>';
 }
 
 // ######################### Plugins
@@ -415,10 +433,11 @@
 // CB hide FTP if desired
 if ($project->usesFTP()) {
 	if ($project->isActive()) {
-		print '<hr size="1" />';
-		print '<a href="ftp://' . $project->getUnixName() . '.' . $GLOBALS['sys_default_domain'] . '/pub/'. $project->getUnixName() .'/">';
-		print html_image('ic/ftp16b.png','20','20',array('alt'=>_('Anonymous FTP Space')));
-		print '&nbsp;'._('Anonymous FTP Space')."</a>";
+		echo '<div class="public-area-box">';
+		
+		$link_content = $HTML->getFtpPic('') . '&nbsp;' . _('Anonymous FTP Space');
+        print util_make_link('ftp://' . $project->getUnixName() . '.' . $GLOBALS['sys_default_domain'] . '/pub/'. $project->getUnixName(), $link_content);
+		echo '</div>';
 	}
 }
 
@@ -426,37 +445,32 @@
 plugin_hook("cal_link_group",$group_id);
 echo $HTML->boxBottom();
 
+echo '
+    </td>
+    <td>
+    ';
+
 if ($project->usesNews()) {
-	// COLUMN BREAK
-	?>
-
-		</td>
-		<td width="15">&nbsp;</td>
-		<td valign="top" width="50%">
-
-	<?php
 	// ############################# Latest News
-
-	echo $HTML->boxTop(_('Latest News'));
-
+	echo $HTML->boxTop(_('Latest News'), 'Latest_News');
 	echo news_show_latest($group_id,10,false);
-
 	echo $HTML->boxBottom();
 }
 
+//echo $HTML->boxBottom();
+
+echo '</td>
+    </tr>
+    </table>
+    </div><!-- id="forge-project-home" -->
+    ';
+
 //
 //	Linked projects (hierarchy)
 //
 
 plugin_hook('project_home_link',$group_id);
 
-?>
-		</td>
-	</tr>
-</table>
-
-<?php
-
 site_project_footer(array());
 
 // Local Variables:

Modified: trunk/gforge/www/include/user_home.php
===================================================================
--- trunk/gforge/www/include/user_home.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/include/user_home.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -15,18 +15,15 @@
 
 $HTML->header(array('title'=>_('Developer Profile')));
 
-?>
+echo $HTML->boxTop(_('Personal Information'), _('Personal Information')); ?>
 
-<table width="100%" cellpadding="2" cellspacing="2" border="0">
-<tr valign="top">
-<td>
-
-<?php echo $HTML->boxTop(_('Personal Information')); ?>
-</td></tr>
-<tr>
-  <td><?php echo _('User Id') ?></td>
-  <td>
-    <strong>
+<table class="my-layout-table" id="user-profile-personal-info">
+<tr> 
+	<td>
+		<?php echo _('User Id') ?>
+	</td>
+	<td>
+		<strong>
 <?php
 	if (session_loggedin() && user_ismember(1)) {
 		echo util_make_link ('/admin/useredit.php?user_id='.$user_id,$user_id);
@@ -38,25 +35,25 @@
 	</td>
 </tr>
 
-<tr valign="top">
+<tr>
 	<td><?php echo _('Login name') ?></td>
 	<td><strong><?php print $user->getUnixName(); ?></strong></td>
 </tr>
 
-<tr valign="top">
-	<td><?php echo _('Real Name') ?> </td>
+<tr>
+	<td><?php echo _('Real name') ?> </td>
 	<td><strong><?php print $user->getTitle() .' '. $user->getRealName(); ?></strong></td>
 </tr>
 
 <?php if(!isset($GLOBALS['sys_show_contact_info']) || $GLOBALS['sys_show_contact_info']) { ?>
-<tr valign="top">
+<tr>
 	<td><?php echo _('Your Email Address') ?>: </td>
 	<td>
 	<strong><?php echo util_make_link ('/sendmessage.php?touser='.$user_id, str_replace('@',' @nospam@ ',$user->getEmail())); ?></strong>
 	</td>
 </tr>
 <?php if ($user->getJabberAddress()) { ?>
-<tr valign="top">
+<tr>
 	<td><?php echo _('Jabber Address') ?></td>
 	<td>
 	<a href="jabber:<?php print $user->getJabberAddress(); ?>"><strong><?php print $user->getJabberAddress(); ?></strong></a>
@@ -65,21 +62,21 @@
 <?php } ?>
 
 <?php if ($user->getAddress() || $user->getAddress2()) { ?>
-<tr valign="top">
+<tr>
 	<td><?php echo _('Address:'); ?></td>
 	<td><?php echo $user->getAddress().'<br/>'.$user->getAddress2(); ?></td>
 </tr>
 <?php } ?>
 
 <?php if ($user->getPhone()) { ?>
-<tr valign="top">
+<tr>
 	<td><?php echo _('Phone:'); ?></td>
 	<td><?php echo $user->getPhone(); ?></td>
 </tr>
 <?php } ?>
 
 <?php if ($user->getFax()) { ?>
-<tr valign="top">
+<tr>
 	<td><?php echo _('FAX:'); ?></td>
 	<td><?php echo $user->getFax(); ?></td>
 </tr>
@@ -91,19 +88,26 @@
 	<?php echo _('Site Member Since') ?>
 	</td>
 	<td><strong><?php print date(_('Y-m-d H:i'), $user->getAddDate()); ?></strong>
-	<?php
+    </td>
+</tr>
+</table>
 
+	<?php
 	if ($sys_use_ratings) {
-		echo $HTML->boxMiddle(_('Peer Rating'),false,false);
+		echo $HTML->boxMiddle(_('Peer Rating'), _('Peer Rating'));
+        echo '<table class="my-layout-table" id="user-profile-rating">';
 		if ($user->usesRatings()) {
 			echo vote_show_user_rating($user_id);
 		} else {
+            echo '<tr><td colspan="2">';
 			echo _('User chose not to participate in peer rating');
+            echo '</td></tr>';
 		}
+        echo '</table><!-- id="user-profile-rating" -->';
 	}
 
 	if ($sys_use_diary) {
-		echo $HTML->boxMiddle(_('Diary and Notes'));
+		echo $HTML->boxMiddle(_('Diary and Notes'), _('Diary and Notes'));
 	 
 		/*
 
@@ -114,8 +118,8 @@
 		$res = db_query_params ('SELECT count(*) from user_diary WHERE user_id=$1 AND is_public=1',
 					array ($user_id));
 		echo _('Diary/Note entries:').' '.db_result($res,0,0).'
-		<p/>'.util_make_link ('/developer/diary.php?diary_user='.$user_id,_('View Diary & Notes')).'</p>
-		<p/>';
+		<p>'.util_make_link ('/developer/diary.php?diary_user='.$user_id,_('View Diary & Notes')).'</p>
+		<p>';
 		echo util_make_link ('/developer/monitor.php?diary_user='.$user_id,
 						html_image("ic/check.png",'15','13',array(),0) ._('Monitor this Diary')
 			) ;
@@ -124,14 +128,12 @@
 		plugin_hook("user_personal_links",$hookparams);
 	}	
 	?>
-	</td>
-</tr>
 
-<tr>
-	<td colspan="2">
-	<h4><?php echo _('Project Info') ?></h4>
-	<p/>
+
 <?php
+
+    echo $HTML->boxMiddle(_('Project Info'), _('Project Info'));
+
 	// now get listing of groups for that user
 	$res_cat = db_query_params ('SELECT groups.group_name, 
 	 groups.unix_group_name, 
@@ -148,39 +150,31 @@
 // see if there were any groups
 if (db_numrows($res_cat) < 1) {
 	?>
-	<p/><?php echo _('This developer is not a member of any projects.') ?><p/>
+	<p><?php echo _('This developer is not a member of any projects.') ?></p>
 	<?php
 } else { // endif no groups
-	print "<p>"._('This developer is a member of the following projects:')."</p><ul>";
+	print "<p>"._('This developer is a member of the following projects:')."<br />&nbsp;";
 	while ($row_cat = db_fetch_array($res_cat)) {
-		print ('<li>' . util_make_link_g ($row_cat['unix_group_name'],$row_cat['group_id'],$row_cat['group_name']).' ('.$row_cat['role_name'].')</li>');
+		print ('<br />' . util_make_link_g ($row_cat['unix_group_name'],$row_cat['group_id'],$row_cat['group_name']).' ('.$row_cat['role_name'].')');
+		print "\n";
 	}
-	print '</ul><p/>';
+	print '</p>';
 } // end if groups
-?>
-	</td>
-</tr>
 
-	<?php echo $HTML->boxBottom(); ?>
 
-	</td>
-
-
-	<td width="80%">
-
-<?php 
 $me = session_get_user(); 
 if ($sys_use_ratings) {
 if ($user->usesRatings() && (!$me || $me->usesRatings())) { 
+    echo '<p>If you are familiar with this user, please take a moment to rate him/her on the following criteria. Keep in mind, that your rating will be visible to the user and others.</p>';
+    echo '<p>The '. $GLOBALS['sys_name'] .' Peer Rating system is based on concepts from <a href="http://www.advogato.com/">Advogato</a>. The system has been re-implemented and expanded in a few ways.</p>';
 
-printf(_('<p>If you are familiar with this user, please take a moment to rate him/her on the following criteria. Keep in mind, that your rating will be visible to the user and others.</p><p>The %1$s Peer Rating system is based on concepts from <a href="http://www.advogato.com/">Advogato.</a> The system has been re-implemented and expanded in a few ways.</p>'), $GLOBALS['sys_name']);
 ?>
 
-	<div align="center">
+	<div class="align-center">
         <?php echo vote_show_user_rate_box ($user_id, $me?$me->getID():0); ?>
 	</div>
 
-		  <?php printf(_('<p>The Peer rating box shows all rating averages (and response levels) for each individual criteria. Due to the math and processing required to do otherwise, these numbers incoporate responses from both "trusted" and "non-trusted" users.</p><ul><li>The "Sitewide Rank" field shows the user\'s rank compared to all ranked %1$s users.</li><li>The "Aggregate Score" shows an average, weighted overall score, based on trusted-responses only.</li><li>The "Personal Importance" field shows the weight that users ratings of other developers will be given (between 1 and 1.5) -- higher rated user\'s responses are given more weight.</li></ul><p><i>If you would like to opt-out from peer rating system (this will affect your ability to both rate and be rated), refer to <a href="%2$s">your account maintenance page</a>. If you choose not to participate, your ratings of other users will be permanently deleted and the \'Peer Rating\' box will disappear from your user page. </i></p>'),
+		  <?php printf(_('<p>The Peer rating box shows all rating averages (and response levels) for each individual criteria. Due to the math and processing required to do otherwise, these numbers incoporate responses from both "trusted" and "non-trusted" users.</p><ul><li>The "Sitewide Rank" field shows the user\'s rank compared to all ranked %1$s users.</li><li>The "Aggregate Score" shows an average, weighted overall score, based on trusted-responses only.</li><li>The "Personal Importance" field shows the weight that users ratings of other developers will be given (between 1 and 1.5) -- higher rated user\'s responses are given more weight.</li></ul><p>If you would like to opt-out from peer rating system (this will affect your ability to both rate and be rated), refer to <a href="%2$s">your account maintenance page</a>. If you choose not to participate, your ratings of other users will be permanently deleted and the \'Peer Rating\' box will disappear from your user page.</p>'),
 			       $GLOBALS['sys_name'],
 			       util_make_url ("/account/"));
 
@@ -192,15 +186,10 @@
 </em>
 </p>
 <?php }
-      } ?>
-	</td>
-</tr>
-</table>
+      }
 
-<p/>
+echo $HTML->boxBottom(); 
 
-<?php
-
 $HTML->footer(array());
 
 // Local Variables:

Modified: trunk/gforge/www/include/vote_function.php
===================================================================
--- trunk/gforge/www/include/vote_function.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/include/vote_function.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -390,21 +390,26 @@
 
 	global $USER_RATING_VALUES,$USER_RATING_QUESTIONS,$USER_RATING_POPUP1,$USER_RATING_POPUP2,$USER_RATING_POPUP3,$USER_RATING_POPUP4,$USER_RATING_POPUP5;
 	echo '
-	<table border="0">
-		<form action="/developer/rate.php" method="post">
-		<input type="hidden" name="rated_user" value="'.$user_id.'" />';
+    <form action="/developer/rate.php" method="post">
+	<table class="align-left">';
 
 	for ($i=1; $i<=count($USER_RATING_QUESTIONS); $i++) {
 		$popup="USER_RATING_POPUP$i";
-		if (!isset($prev_vote[$i]))
+		if (!isset($prev_vote[$i])) {
 			$prev_vote[$i] = '';
-		echo '<tr>
-		<td colspan="2"><strong>'. $USER_RATING_QUESTIONS[$i] .':</strong><br /> '
-		.html_build_select_box_from_arrays($USER_RATING_VALUES,$$popup,"Q_$i",$prev_vote[$i]/*'xzxz'*/,true,'Unrated').'</td></tr>';
+        }
+		echo '
+            <tr>
+                <td><strong>'. $USER_RATING_QUESTIONS[$i] .':</strong></td>
+                <td>'. html_build_select_box_from_arrays($USER_RATING_VALUES,$$popup,"Q_$i",$prev_vote[$i]/*'xzxz'*/,true,'Unrated').'</td>
+            </tr>';
 	}
 
 	echo '
-		<tr><td colspan="2"><input type="submit" name="submit" value="Rate User" /></td></tr>
+		<tr><td colspan="2">
+            <input type="submit" name="submit" value="Rate User" />
+            <input type="hidden" name="rated_user" value="'.$user_id.'" />
+        </td></tr>
 		</table>
 	</form>';
 }

Modified: trunk/gforge/www/index_std.php
===================================================================
--- trunk/gforge/www/index_std.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/index_std.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -2,9 +2,10 @@
 require_once $gfcommon.'include/FusionForge.class.php';
 ?>
 <!-- whole page table -->
-<table width="100%" cellpadding="5" cellspacing="0" border="0">
-<tr><td width="65%" valign="top">
-<div align="center"><img src="<?php echo util_make_url ('/images/fusionforge-resized.png') ?>" /></div>
+<table id="bd" class="width-100p100" summary="">
+<tr>
+<td id="bd-col1">
+	<h2 id="title-home-page"><img src="<?php echo util_make_url ('/images/fusionforge-resized.png') ?>" alt="FusionForge"/></h2>
 	  <h3><?php print _('FusionForge helps you manage the entire development life cycle'); ?></h3>
 <p>
 
@@ -54,24 +55,25 @@
 <li><?php print _('New project hierarchy plugin.'); ?></li>
 </ul>
 <?php
-echo $HTML->boxTop(_('Latest News'));
+echo $HTML->boxTop(_('Latest News'), 'Latest_News');
 echo news_show_latest($sys_news_group,5,true,false,false,5);
 echo $HTML->boxBottom();
 ?>
 
 </td>
 
-<td width="35%" valign="top">
+<td id="bd-col2">
 <?php
-echo show_features_boxes();
+	show_features_boxes();
 ?>
 
 </td></tr></table>
 <center>
+<div id="ft">
 <?php
 			$forge = new FusionForge() ;
 		printf (_('This site is running %1$s version %2$s'),
 			$forge->software_name,
 			$forge->software_version) ;
 ?>
-</center>
\ No newline at end of file
+</div>
\ No newline at end of file

Modified: trunk/gforge/www/my/index.php
===================================================================
--- trunk/gforge/www/my/index.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/my/index.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -39,8 +39,9 @@
 	echo site_user_header(array('title'=>sprintf(_('Personal Page For %s'),user_getname())));
 	$tabcnt=0;	
 	?>
+
 <script type="text/javascript" src="<?php echo util_make_url ('/tabber/tabber.js'); ?>"></script>
-<div id="tabber" class="tabber" <?php plugin_hook('call_user_js');?>>
+<div id="tabber" class="tabber tabber-user-homepage" <?php plugin_hook('call_user_js');?>>
 <?php if ($GLOBALS['sys_use_tracker']) { ?>
 <div class="tabbertab" 
 title="<?php echo _('Assigned Artifacts'); ?>">
@@ -53,7 +54,7 @@
 	$order_name_arr[]=_('ID');
 	$order_name_arr[]=_('Priority');
 	$order_name_arr[]=_('Summary');
-	echo $HTML->listTableTop($order_name_arr,'',$tabcnt);
+    echo $HTML->listTableTop($order_name_arr);
 
 	$artifactsForUser = new ArtifactsForUser(session_get_user());
 	$assignedArtifacts =& $artifactsForUser->getAssignedArtifactsByGroup();
@@ -96,7 +97,7 @@
 	$order_name_arr[]=_('ID');
 	$order_name_arr[]=_('Priority');
 	$order_name_arr[]=_('Summary');
-	echo $HTML->listTableTop($order_name_arr,'',$tabcnt);
+    echo $HTML->listTableTop($order_name_arr);
 	$projectTasksForUser = new ProjectTasksForUser(session_get_user());
 	$userTasks =& $projectTasksForUser->getTasksByGroupProjectName();
 
@@ -148,7 +149,7 @@
 	$order_name_arr[]=_('ID');
 	$order_name_arr[]=_('Priority');
 	$order_name_arr[]=_('Summary');
-	echo $HTML->listTableTop($order_name_arr,'',$tabcnt);
+    echo $HTML->listTableTop($order_name_arr);
 	$artifactsForUser = new ArtifactsForUser(session_get_user());
 	$submittedArtifacts =& $artifactsForUser->getSubmittedArtifactsByGroup();
 	if (count($submittedArtifacts) > 0) {
@@ -275,13 +276,13 @@
 		$order_name_arr=array();
 		$order_name_arr[]=_('Remove');
 		$order_name_arr[]=_('Monitored Forums');
-		echo $HTML->listTableTop($order_name_arr,'',$tabcnt);
+        echo $HTML->listTableTop($order_name_arr);
 		$forumsForUser = new ForumsForUser(session_get_user());
 		$forums = $forumsForUser->getMonitoredForums();
 		if (count($forums) < 1) {
-			echo '<tr><td colspan="2" bgcolor="#FFFFFF"><center><strong>'._('You are not monitoring any forums.').'</strong></center></td></tr>';
+			echo '<tr><td colspan="2"><strong>'._('You are not monitoring any forums.').'</strong></td></tr>';
 		} else {
-			echo '<tr><td colspan="2" bgcolor="#FFFFFF"><center><strong>'.util_make_link ('/forum/myforums.php',_('My Monitored Forums')).'</strong></center></td></tr>';
+			echo '<tr><td colspan="2"><strong>'.util_make_link ('/forum/myforums.php',_('My Monitored Forums')).'</strong></td></tr>';
 			foreach ($forums as $f) {
 				$group = $f->getGroup();
 				if ($group->getID() != $last_group) {
@@ -290,7 +291,7 @@
 				}
 
 				echo '
-				<tr '. $HTML->boxGetAltRowStyle(0) .'><td align="center"><a href="'.util_make_url ('/forum/monitor.php?forum_id='.$f->getID().'&amp;stop=1&amp;group_id='.$group->getID()).'"><img src="'. $HTML->imgroot . '/ic/trash.png" height="16" width="16" '.
+				<tr '. $HTML->boxGetAltRowStyle(0) .'><td class="align-center"><a href="'.util_make_url ('/forum/monitor.php?forum_id='.$f->getID().'&amp;stop=1&amp;group_id='.$group->getID()).'"><img src="'. $HTML->imgroot . '/ic/trash.png" height="16" width="16" '.
 				'border="0" alt="" /></a></td><td width="99%">'.util_make_link ('/forum/forum.php?forum_id='.$f->getID(),$f->getName()).'</td></tr>';
 
 				$last_group= $group->getID();
@@ -307,7 +308,7 @@
 		$order_name_arr=array();
 		$order_name_arr[]=_('Remove');
 		$order_name_arr[]=_('Monitored FileModules');
-		echo $HTML->listTableTop($order_name_arr,'',$tabcnt);
+        echo $HTML->listTableTop($order_name_arr);
 
 
 		$result=db_query_params ('SELECT groups.group_name,groups.unix_group_name,groups.group_id,frs_package.name,filemodule_monitor.filemodule_id 
@@ -319,7 +320,7 @@
 				user_getid()));
 		$rows=db_numrows($result);
 		if (!$result || $rows < 1) {
-			echo '<tr><td colspan="2" bgcolor="#FFFFFF"><center><strong>'._('You are not monitoring any files.').'</strong></center></td></tr>';
+			echo '<tr><td colspan="2"><strong>'._('You are not monitoring any files.').'</strong></td></tr>';
 		} else {
 			for ($i=0; $i<$rows; $i++) {
 				if (db_result($result,$i,'group_id') != $last_group) {
@@ -327,7 +328,7 @@
 					<tr '. $HTML->boxGetAltRowStyle($i) .'><td colspan="2">'.util_make_link_g (db_result($result,$i,'unix_group_name'),db_result($result,$i,'group_id'),db_result($result,$i,'group_name')).'</td></tr>';
 				}
 				echo '
-				<tr '. $HTML->boxGetAltRowStyle($i) .'><td style="text-align:center"><a href="'.util_make_url ('/frs/monitor.php?filemodule_id='.db_result($result,$i,'filemodule_id').'&amp;group_id='.db_result($result,$i,'group_id').'&amp;stop=1').'"><img src="'. $HTML->imgroot.'/ic/trash.png" height="16" width="16" '.
+				<tr '. $HTML->boxGetAltRowStyle($i) .'><td class="align-center"><a href="'.util_make_url ('/frs/monitor.php?filemodule_id='.db_result($result,$i,'filemodule_id').'&amp;group_id='.db_result($result,$i,'group_id').'&amp;stop=1').'"><img src="'. $HTML->imgroot.'/ic/trash.png" height="16" width="16" '.
 				'border="0" alt=""/></a></td><td width="99%">'.util_make_link ('/frs/?group_id='.db_result($result,$i,'group_id'),db_result($result,$i,'name')).'</td></tr>';
 
 				$last_group=db_result($result,$i,'group_id');
@@ -344,7 +345,7 @@
 	/*
 		   Personal bookmarks
 	*/
-	echo $HTML->boxTop(_('My Bookmarks'),false,false);
+	echo $HTML->boxTop(_('My Bookmarks'), 'My_Bookmarks');
 
 	echo '<a href="'.util_make_url ('/my/bookmark_add.php').'">'._('Add bookmark').'</a><br/><br/>';
 	$result = db_query_params ('SELECT bookmark_url, bookmark_title, bookmark_id from user_bookmarks where 
@@ -358,7 +359,7 @@
 	} else {
 		for ($i=0; $i<$rows; $i++) {
 			echo '</td></tr>
-			<tr '. $HTML->boxGetAltRowStyle($i) .'><td style="text-align:center">
+			<tr '. $HTML->boxGetAltRowStyle($i) .'><td class="align-center">
 			<a href="'.util_make_url ('/my/bookmark_delete.php?bookmark_id='. db_result($result,$i,'bookmark_id')).'">
 			<img src="'.$HTML->imgroot.'/ic/trash.png" height="16" width="16" border="0" alt="" /></a></td>
 			<td><strong><a href="'. db_result($result,$i,'bookmark_url') .'">'.
@@ -381,7 +382,7 @@
 	$order_name_arr[]=_('Remove');
 	$order_name_arr[]=_('My Projects');
 	$order_name_arr[]=_('My Roles');
-	echo $HTML->listTableTop($order_name_arr,'',$tabcnt);
+    echo $HTML->listTableTop($order_name_arr);
 
 	// Include both groups and foundries; developers should be similarly
 	// aware of membership in either.
@@ -396,7 +397,7 @@
 					  'A')) ;
 	$rows=db_numrows($result);
 	if (!$result || $rows < 1) {
-		echo '<tr><td colspan="3" bgcolor="#FFFFFF"><strong>'._('You\'re not a member of any active projects').'</strong></td></tr>';
+		echo '<tr><td colspan="3"><strong>'._('You\'re not a member of any active projects').'</strong></td></tr>';
 		echo db_error();
 	} else {
 		for ($i=0; $i<$rows; $i++) {
@@ -407,7 +408,7 @@
 				$img="trash.png";
 			}
 			echo '
-			<tr '. $HTML->boxGetAltRowStyle($i) .'><td style="text-align:center">' ;
+			<tr '. $HTML->boxGetAltRowStyle($i) .'><td class="align-center">' ;
 			echo util_make_link ("/my/rmproject.php?group_id=" . db_result($result,$i,'group_id'),
 					     '<img src="'.$HTML->imgroot.'ic/'.$img.'" alt="'._('Delete').'" height="16" width="16" border="0" />') ;
 

Modified: trunk/gforge/www/news/news_utils.php
===================================================================
--- trunk/gforge/www/news/news_utils.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/news/news_utils.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -117,8 +117,15 @@
 	if (!$result || $rows < 1) {
 		$return .= _('No News Items Found');
 		$return .= db_error();
+		$return .= "</div>";
 	} else {
 		for ($i=0; $i<$rows; $i++) {
+			$t_thread_title = db_result($result,$i,'summary');
+			$t_thread_url = "/forum/forum.php?forum_id=" . db_result($result,$i,'forum_id');
+			$t_thread_author = db_result($result,$i,'realname');
+
+			$return .= '<div class="one-news bordure-dessous">';
+			$return .= "\n";
 			if ($show_summaries && $limit) {
 				//get the first paragraph of the story
 				if (strstr(db_result($result,$i,'details'),'<br/>')) {
@@ -127,13 +134,8 @@
 				} else {
 					$arr=explode("\n",db_result($result,$i,'details'));
 				}
-				//if the first paragraph is short, and so are following paragraphs, add the next paragraph on
-				if ((isset($arr[1]))&&(isset($arr[2]))&& (strlen($arr[0]) < 200) && (strlen($arr[1].$arr[2]) < 300) && (strlen($arr[2]) > 5)) {
-					$summ_txt='<br />'. util_make_links( $arr[0].'<br />'.$arr[1].'<br />'.$arr[2] );
-				} else {
-					$summ_txt='<br />'. util_make_links( $arr[0] );
-				}
-				$proj_name=' &nbsp; - &nbsp; '.util_make_link_g (strtolower(db_result($result,$i,'unix_group_name')),db_result($result,$i,'group_id'),db_result($result,$i,'group_name'));
+				$summ_txt=util_make_links( $arr[0] );
+				$proj_name=util_make_link_g (strtolower(db_result($result,$i,'unix_group_name')),db_result($result,$i,'group_id'),db_result($result,$i,'group_name'));
 			} else {
 				$proj_name='';
 				$summ_txt='';
@@ -141,25 +143,30 @@
 
 			if (!$limit) {
 				if ($show_forum) {
-					$return .= '<li>'.util_make_link ('/forum/forum.php?forum_id='. db_result($result,$i,'forum_id'),'<strong>'. db_result($result,$i,'summary') . '</strong>');
+					$return .= '<h3>'.util_make_link ($t_thread_url, $t_thread_title).'</h3>';
 				} else {
-					$return .= '<li><strong>'. db_result($result,$i,'summary') . '</strong>';
+					$return .= '<h3>'. $t_thread_title . '</h3>';
 				}
 				$return .= ' &nbsp; <em>'. date(_('Y-m-d H:i'),db_result($result,$i,'post_date')).'</em><br /></li>';
 			} else {
 				if ($show_forum) {
-					$return .= util_make_link ('/forum/forum.php?forum_id='. db_result($result,$i,'forum_id'),'<strong>'. db_result($result,$i,'summary').'</strong>');
+					$return .= '<h3>'.util_make_link ($t_thread_url, $t_thread_title).'</h3>';
 				} else {
-					$return .= '
-					<strong>'. db_result($result,$i,'summary') . '</strong>';
+					$return .= '<h3>'. $t_thread_title . '</h3>';
 				}
-				if (!$flat) {
-					$return .= '
-					<br />&nbsp;';
+				$return .= "<div>";
+				$return .= '<em>';
+				$return .= $t_thread_author;
+				$return .= '</em>';
+				$return .= ' - ';
+				$return .= date(_('Y-m-d H:i'),db_result($result,$i,'post_date'));
+				$return .= ' - ';
+				$return .= $proj_name ;
+				$return .= "</div>\n";
+				
+				if ($summ_txt != "") {
+					$return .= '<p>'.$summ_txt.'</p>';
 				}
-				$return .= '&nbsp;&nbsp;&nbsp;<em>'. db_result($result,$i,'realname') .' - '.
-					date(_('Y-m-d H:i'),db_result($result,$i,'post_date')). '</em>' .
-					$proj_name . $summ_txt;
 
 				$res2 = db_query_params ('SELECT total FROM forum_group_list_vw WHERE group_forum_id=$1',
 							 array (db_result($result,$i,'forum_id')));
@@ -174,12 +181,17 @@
 				} else {
 					$comments_txt = _('Comments');
 				}
-
-				if ($show_forum){
-					$return .= '<div align="center">(' . $num_comments .' '. $comments_txt . ') '
-					.util_make_link ('/forum/forum.php?forum_id='. db_result($result,$i,'forum_id'),'[' . _('Read&nbsp;More/Comment') . ']').'</div><hr width="100%" size="1" />';
+				
+				if ($show_forum) {
+					$link_text =  _('Read&nbsp;More/Comment') ;
+					$extra_params = array( 'class'      => 'dot-link',
+					             		   'title'      => $link_text . ' ' . $t_thread_title);
+					$return .= "\n";
+					$return .= '<div>' . $num_comments .' '. $comments_txt .' ';
+					$return .= util_make_link ($t_thread_url, $link_text, $extra_params);
+					$return .= '</div>';
 				} else {
-					$return .= '<hr width="100%" size="1" />';
+					$return .= '';
 				}
 			}
 
@@ -189,10 +201,10 @@
 			if ($limit) {
 				$limit--;
 			}
+			$return .= "\n";
+			$return .= '</div><!-- class="one-news" -->';
+			$return .= "\n\n";
 		}
-		if ($tail_headlines){
-			$return .= '<hr width="100%" size="1" />'."\n";
-		}
 		if ($group_id != $sys_news_group) {
 			$archive_url=util_make_url ('/news/?group_id='.$group_id);
 		} else {
@@ -201,24 +213,20 @@
 
 		if ($tail_headlines != -1) {
 			if ($show_forum) {
-				$return .= '<div align="center">'
-					.'<a href="'.$archive_url.'">[' . _('News archive') . ']</a></div>';
+				$return .= '<div>' . util_make_link($archive_url, _('News archive'), array('class' => 'dot-link')) . '</div>';
 			} else {
-				$return .= '<div align="center">...</div>';
+				$return .= '<div>...</div>';
 			}
 		}
 	}
-
 	if ($allow_submit && $group_id != $sys_news_group) {
 		if(!$result || $rows < 1) {
-			$return .= '<hr width="100%" size="1" />';
+			$return .= '';
 		}
 		//you can only submit news from a project now
 		//you used to be able to submit general news
-		$return .= '<div align="center">'
-		.util_make_link ('/news/submit.php?group_id='.$group_id,'['._('Submit News').']').'</div>';
+		$return .= '<div>' . util_make_link ('/news/submit.php?group_id='.$group_id, _('Submit News')).'</div>';
 	}
-
 	return $return;
 }
 
@@ -263,7 +271,7 @@
 			$return .= util_make_link ('/forum/forum.php?forum_id='. db_result($result,$i,'forum_id'),'<strong>'. db_result($result,$i,'summary') . '</strong>')
 				.'<br /><em>'. db_result($result,$i,'realname') .' - '.
 					date(_('Y-m-d H:i'),db_result($result,$i,'post_date')) . $proj_name . '</em>
-				'. $summ_txt .'<hr width="100%" size="1" />';
+				'. $summ_txt .'';
 		}
 	}
 	return $return;

Modified: trunk/gforge/www/project/admin/index.php
===================================================================
--- trunk/gforge/www/project/admin/index.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/project/admin/index.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -60,6 +60,10 @@
 project_admin_header(array('title'=>$adminheadertitle, 'group'=>$group->getID()));
 ?>
 
+<table class="my-layout-table">
+	<tr>
+		<td>
+
 <?php echo $HTML->boxTop(_('Misc. Project Information'));  ?>
 
 
@@ -263,9 +267,134 @@
 <?php
 echo $HTML->boxBottom(); 
 ?>
+		</td>
+		<td>&nbsp;</td>
+		<td>
 
 <?php
 
+		echo $HTML->boxTop(_('Group Members'));
+
+		/*
+
+			Show the members of this project
+
+		*/
+
+		$res_memb = db_query("SELECT users.realname,users.user_id,users.status,
+			users.user_name,user_group.admin_flags,user_group.role_id
+			FROM users,user_group 
+			WHERE users.user_id=user_group.user_id 
+			AND user_group.group_id='$group_id' ORDER BY users.lastname,users.firstname");
+
+		echo '
+		<table class="width-100p100">
+			<tr><td><strong>'._('Unix name').'</strong></td>
+			<td><strong>'._('Role').'</strong></td>
+			<td><strong>'._('Update').'</strong></td>
+			<td><strong>'._('Remove').'</strong></td></tr>';
+
+while ($row_memb=db_fetch_array($res_memb)) {
+
+		if ($row_memb['status']=='P') {
+			$status = "<span class=\"pending\">"._("Pending (P)")."</span>";
+		} else if ($row_memb['status']=='S') {
+			$status = "<span class=\"suspended\">"._("Suspended (S)")."</span>";
+		} else {
+			$status = "";
+		}
+
+		echo '
+			<form action="'.getStringFromServer('PHP_SELF').'" method="post">
+			<input type="hidden" name="submit" value="y" />
+			<input type="hidden" name="user_id" value="'.$row_memb['user_id'].'" />
+			<input type="hidden" name="group_id" value="'. $group_id .'" />
+			<td>'.$row_memb['realname'].' ('.$row_memb['user_name'].') '.$status.'</td>
+			<td>'.role_box($group_id,'role_id',$row_memb['role_id']).'</td>
+			<td><input type="submit" name="updateuser" value="'._('Update').'"></td>
+			<td><input type="submit" name="rmuser" value="'._('Remove').'"></td>
+			</tr></form>';
+}
+		echo '
+			<tr><td>'._('Observer').'</td>
+			<td></td>
+			<form action="roleedit.php?group_id='. $group_id .'&amp;role_id=observer" method="POST">
+			<td colspan="2"><input type="submit" name="edit" value="'._('Edit Observer').'"></td></form></tr>';
+
+/*
+	Add member form
+*/
+
+?>
+			<form action="<?php echo getStringFromServer('PHP_SELF').'?group_id='.$group_id; ?>" method="post">
+			<input type="hidden" name="submit" value="y" />
+			<tr><td><input type="text" name="form_unix_name" size="10" value="" /></td>
+			<td><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?></td>
+			<td colspan="2"><input type="submit" name="adduser" value="<?php echo _('Add user') ?>" /></td>
+			</tr></form>
+
+			<tr><td colspan="4"><a href="massadd.php?group_id=<?php echo $group_id; ?>"><?php echo _('Add Users From List'); ?></a></td></tr>
+		</table>
+<!--	</td></tr>
+</td>
+<td width="50%">
+&nbsp;
+</td>-->
+<?php 
+//
+//	Pending requests
+//
+echo $HTML->boxMiddle(_('Pending Requests'));
+$reqs =& get_group_join_requests($group);
+if (count($reqs) < 1) {
+	echo _('No Pending Requests');
+} else {
+	for ($i=0; $i<count($reqs); $i++) {
+		$user =& user_get_object($reqs[$i]->getUserId());
+		if (!$user || !is_object($user)) {
+			echo "Invalid User";
+		}
+		?>
+		<form action="<?php echo getStringFromServer('PHP_SELF').'?group_id='.$group_id; ?>" method="post">
+		<input type="hidden" name="submit" value="y" />
+		<input type="hidden" name="form_userid" value="<?php echo $user->getId(); ?>" />
+		<tr><td><input type="hidden" name="form_unix_name" value="<?php echo $user->getUnixName(); ?>" /><?php echo util_make_link_u ($user->getUnixName(),$user->getId(),$user->getRealName()); ?></td>
+		<td><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?>
+			<input type="submit" name="acceptpending" value="<?php echo _('Accept') ?>" />
+			<input type="submit" name="rejectpending" value="<?php echo _('Reject') ?>" /></td>
+			</tr></form>
+		
+		<?php
+	}
+}
+
+
+//
+//	RBAC Editing Functions
+//
+echo $HTML->boxMiddle(_('Edit Roles'));
+echo '<form action="roleedit.php?group_id='. $group_id .'" method="POST">';
+echo role_box($group_id,'role_id','');
+echo '<input type="submit" name="edit" value="'._('Edit Role').'"></form>';
+
+echo '<p><a href="roleedit.php?group_id='.$group_id.'">'._('Add Role').'</a>';
+
+//
+//	Project hierarchy functions
+
+plugin_hook('admin_project_link',$group_id) ;
+
+
+echo $HTML->boxBottom();?>
+
+		</td>
+	</tr>
+
+</table>
+>>>>>>> MERGE-SOURCE
+
+<?php
+
 project_admin_footer(array());
 
 // Local Variables:

Modified: trunk/gforge/www/snippet/snippet_utils.php
===================================================================
--- trunk/gforge/www/snippet/snippet_utils.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/snippet/snippet_utils.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -109,7 +109,7 @@
 	echo util_make_link ('/snippet/',_('Browse')).'
 		 | '.util_make_link ('/snippet/submit.php',_('Submit A New Snippet')).'
 		 | '.util_make_link ('/snippet/package.php',_('Create A Package')).'</strong>';
-	echo '&nbsp;';
+	echo '</p>';
 }
 
 function snippet_footer($params) {

Modified: trunk/gforge/www/snippet/submit.php
===================================================================
--- trunk/gforge/www/snippet/submit.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/snippet/submit.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -76,59 +76,59 @@
 	snippet_header(array('title'=>_('Snippet submit')));
 
 	?>
-	</p><p><?php echo _('You can post a new code snippet and share it with other people around the world. Just fill in this information. <strong>Give a good description</strong> and <strong>comment your code</strong> so others can read and understand it.</p><p><span class="important">Note:</span> You can submit a new version of an existing snippet by browsing the library. You should only use this page if you are submitting an entirely new script or function.'); ?>
+	<p><?php echo _('You can post a new code snippet and share it with other people around the world. Just fill in this information. <strong>Give a good description</strong> and <strong>comment your code</strong> so others can read and understand it.</p><p><span class="important">Note:</span> You can submit a new version of an existing snippet by browsing the library. You should only use this page if you are submitting an entirely new script or function.'); ?>
 	</p>
-	<form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post">
-	<input type="hidden" name="form_key" value="<?php echo form_generate_key(); ?>"/>
-	<input type="hidden" name="post_changes" value="y" />
-	<input type="hidden" name="changes" value="First Posted Version" />
+	<form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post" id="snippet_submit">
+	<?php
+	echo $HTML->html_input('form_key', '', '', 'hidden', form_generate_key());
+	echo $HTML->html_input('post_changes', '', '', 'hidden', 'y');
+	echo $HTML->html_input('changes', '', '', 'hidden', 'First Posted Version');
+	?>
 
 	<table>
 
-	<tr><td colspan="2"><strong><?php echo _('Title'); ?>:</strong><?php echo utils_requiredField(); ?><br />
-		<input type="text" name="name" size="45" maxlength="60" />
+	<tr><td colspan="2">
+	    <?php echo $HTML->html_input('name', '', _('Title') . ' :' . utils_requiredField(), 'text', '', array('size' => '45', 'maxlength' => '60')); ?>
 	</td></tr>
 
-	<tr><td colspan="2"><strong><?php echo _('Description'); ?>:</strong><?php echo utils_requiredField(); ?><br />
-		<textarea name="description" rows="5" cols="45" ></textarea>
+	<tr><td colspan="2">
+        <?php echo $HTML->html_textarea('description', '', _('Description') . ' :' . utils_requiredField(), '', array('rows' => '5', 'cols' => '45')); ?>
 	</td></tr>
 
 	<tr>
-	<td><strong><?php echo _('Script Type'); ?>:</strong><?php echo utils_requiredField(); ?><br />
-		<?php echo html_build_select_box_from_array($SCRIPT_TYPE,'type'); ?>
+	<td>
+		<?php echo $HTML->html_select ($SCRIPT_TYPE, 'type', _('Script Type') . ' :' . utils_requiredField() ); ?>
 	</td>
 
-	<td><strong><?php echo _('License'); ?>:</strong><br />
-		<?php echo html_build_select_box_from_array ($SCRIPT_LICENSE,'license'); ?>
+	<td>
+		<?php echo $HTML->html_select ($SCRIPT_LICENSE, 'license', _('License') . ' :'); ?>
 	</td>
 	</tr>
 
 	<tr>
-	<td><strong><?php echo _('Language'); ?>:</strong><?php echo utils_requiredField(); ?><br />
-		<?php echo html_build_select_box_from_array ($SCRIPT_LANGUAGE,'language'); ?>
+	<td>
+		<?php echo $HTML->html_select ($SCRIPT_LANGUAGE, 'language', _('Language') . ' :' . utils_requiredField()); ?>
 		<br />
 		<!-- FIXME: Where should this link go to? <?php echo util_make_link ('/support/?func=addsupport&amp;group_id=1',_('Suggest a Language')); ?> -->
 	</td>
 
-	<td><strong><?php echo _('Category'); ?></strong><?php echo utils_requiredField(); ?><br />
-		<?php echo html_build_select_box_from_array ($SCRIPT_CATEGORY,'category'); ?>
+	<td>
+		<?php echo $HTML->html_select ($SCRIPT_CATEGORY, 'category', _('Category') . ' :' . utils_requiredField()); ?>
                 <br />
                 <!-- FIXME: Where should this link go to? <?php echo util_make_link ('/support/?func=addsupport&amp;group_id=1',_('Suggest a Category')); ?> -->
 	</td>
 	</tr>
 
-	<tr><td colspan="2"><strong><?php echo _('Version'); ?>:</strong><?php echo utils_requiredField(); ?><br />
-		<input type="text" name="version" size="10" maxlength="15" />
+	<tr><td colspan="2">
+        <?php echo $HTML->html_input('version', '', _('Version') . ' :' . utils_requiredField(), 'text', '', array('size' => '10', 'maxlength' => '15')); ?>
 	</td></tr>
 
-	<tr><td colspan="2"><strong><?php echo _('Paste the Code Here'); ?>:</strong><?php echo utils_requiredField(); ?><br />
-		<textarea name="code" rows="30" cols="85" ></textarea>
+	<tr><td colspan="2">
+	    <?php echo $HTML->html_textarea('code', '', _('Paste the Code Here') . ' :' . utils_requiredField(), '', array('rows' => '30', 'cols' => '85')); ?>
 	</td></tr>
 
-	<tr><td colspan="2" style="text-align:center">
-		<strong><?php echo _('Make sure all info is complete and accurate'); ?></strong>
-		<br />
-		<input type="submit" name="submit" value="<?php echo _('SUBMIT'); ?>" />
+	<tr><td colspan="2" class="align-center">
+        <?php echo $HTML->html_input('submit', '', _('Make sure all info is complete and accurate'), 'submit', _('SUBMIT')); ?>
 	</td></tr>
 	</table></form>
 

Modified: trunk/gforge/www/softwaremap/tag_cloud.php
===================================================================
--- trunk/gforge/www/softwaremap/tag_cloud.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/softwaremap/tag_cloud.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -73,7 +73,7 @@
 $selected_tag = getStringFromRequest('tag');
 $page = getIntFromRequest('page', 1);
 
-echo '<br /><center>' . tag_cloud(array('selected' => $selected_tag, 'nb_max' => 100)) . '</center><br /><br />';
+echo '<br />' . tag_cloud(array('selected' => $selected_tag, 'nb_max' => 100)) . '<br /><br />';
 
 if ($selected_tag) {
 

Modified: trunk/gforge/www/softwaremap/trove_list.php
===================================================================
--- trunk/gforge/www/softwaremap/trove_list.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/softwaremap/trove_list.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -79,8 +79,8 @@
 
 echo ($HTML->subMenu($subMenuTitle, $subMenuUrl));
 
-echo'
-	<hr />';
+echo '<div id="arbre-projets" class="lien-soulignement">' . "\n";
+echo '<h2>Arbre des projets</h2>' . "\n";
 
 $row_trove_cat = db_fetch_array($res_trove_cat);
 
@@ -146,27 +146,30 @@
 
 // ######## two column table for key on right
 // first print all parent cats and current cat
-print '<table width="100%" border="0" cellspacing="0" cellpadding="0">
-<tr valign="top"><td>';
+print '<table summary="">' . "\n";
+print '<tr>' . "\n";
+print '<td id="arbre-projets-col1">' . "\n";
+
 $folders = explode(" :: ",$row_trove_cat['fullpath']);
 $folders_ids = explode(" :: ",$row_trove_cat['fullpath_ids']);
 $folders_len = count($folders);
+
+print "<p>";
+print html_image("picto_cat_categorie.png",'32','33',array('alt'=>""));
+print "&nbsp;";
+
 for ($i=0;$i<$folders_len;$i++) {
-	for ($sp=0;$sp<($i*2);$sp++) {
-		print " &nbsp; ";
-	}
-	echo html_image("ic/ofolder15.png",'15','13',array());
-	print "&nbsp; ";
 	// no anchor for current cat
 	if ($folders_ids[$i] != $form_cat) {
 		print util_make_link ('/softwaremap/trove_list.php?form_cat=' .$folders_ids[$i].$discrim_url,
 				      $folders[$i]
 			) ;
+		print "&nbsp; &gt; &nbsp;";
 	} else {
 		print '<strong>'.$folders[$i].'</strong>';
 	}
-	print "<br />\n";
 }
+print "</p>";
 
 // print subcategories
 $res_sub = db_query_params ('
@@ -182,19 +185,24 @@
 			array ($form_cat));
 echo db_error();
 
+print "<ul>";
 while ($row_sub = db_fetch_array($res_sub)) {
 	for ($sp=0;$sp<($folders_len*2);$sp++) {
 		print " &nbsp; ";
 	}
-	print ('<a href="trove_list.php?form_cat='.$row_sub['trove_cat_id'].$discrim_url.'">');
-	echo html_image("ic/cfolder15.png",'15','13',array());
-	print ('&nbsp; '.$row_sub['fullname'].'</a> <em>('.
-		sprintf(_('%1$s projects'), $row_sub['subprojects']?$row_sub['subprojects']:'0')
-		.')</em><br />');
-		
+	print "<li>";
+	print '<a href="trove_list.php?form_cat=' . $row_sub['trove_cat_id'] . $discrim_url . '">';
+	print $row_sub['fullname'];
+	print '</a>';
+	print '&nbsp;<em>(';
+	print sprintf(_('%1$s projects'), $row_sub['subprojects']?$row_sub['subprojects']:'0');
+	print ')</em>';
+	print "</li>\n";
 }
+print "</ul>";
 // ########### right column: root level
-print '</td><td>';
+print "</td>\n";
+print '<td id="arbre-projets-col2">';
 // here we print list of root level categories, and use open folder for current
 $res_rootcat = db_query_params ('
 	SELECT trove_cat_id,fullname
@@ -205,21 +213,28 @@
 			array ());
 echo db_error();
 
+print "<p>";
 print _('Browse By').':';
+print "</p> \n";
+
+print '<ul id="arbre-projets-branches">';
 while ($row_rootcat = db_fetch_array($res_rootcat)) {
 	// print open folder if current, otherwise closed
 	// also make anchor if not current
 	print ('<br />');
 	if (($row_rootcat['trove_cat_id'] == $row_trove_cat['root_parent'])
 		|| ($row_rootcat['trove_cat_id'] == $row_trove_cat['trove_cat_id'])) {
-		echo html_image('ic/ofolder15.png','15','13',array());
-		print ('&nbsp; <strong>'.$row_rootcat['fullname']."</strong>\n");
+		print '<li class="current-cat">' . $row_rootcat['fullname'] . "</li>\n";			
 	} else {
-		print util_make_link ('/softwaremap/trove_list.php?form_cat=' .$row_rootcat['trove_cat_id'].$discrim_url,
-				      html_image('ic/cfolder15.png','15','13',array()).'&nbsp; '.$row_rootcat['fullname']);
+		
+		print "<li>";
+		print util_make_link ('/softwaremap/trove_list.php?form_cat=' .$row_rootcat['trove_cat_id'].$discrim_url, $row_rootcat['fullname']); 
+		print "</li>\n";
 	}
 }
-print '</td></tr></table>';
+print "</ul>\n";
+print "</td>\n</tr>\n</table>\n";
+
 ?>
 <hr />
 <?php
@@ -320,6 +335,7 @@
 
 // print '<p><FONT size="-1">This listing was produced by the following query: '
 //	.$query_projlist.'</FONT>';
+echo '</div><!-- id="arbre-projets" -->' . "\n";
 
 $HTML->footer(array());
 

Added: trunk/gforge/www/themes/css/fusionforge.css
===================================================================
--- trunk/gforge/www/themes/css/fusionforge.css	                        (rev 0)
+++ trunk/gforge/www/themes/css/fusionforge.css	2010-02-10 08:37:43 UTC (rev 8763)
@@ -0,0 +1,65 @@
+/* 
+ * Common stylesheet for *all* FusionForge themes
+ * 
+ * Note to Forge developpers:
+ * 		- put as less code here as possible
+ * 
+ * Note to Themes developpers:
+ * 		- don't add CSS to this file;
+ * 		- use your own's theme CSS file(s) instead
+ * 
+ * Final note: this CSS file should be ideally called:
+ * 		- after YUI's reset,fonts and base
+ * 		- before the theme's own CSS file
+ * 		- Warning: font-size must be expressed in % according to YUI's font table http://developer.yahoo.com/yui/fonts/#chart
+ * 
+ * Matthieu Faure // Open-s.com		2009 december
+*/
+
+
+/* generic classes
+----------------------------------------------- */
+.align-left {text-align: left;}
+.align-right {text-align: right;}
+.align-center {text-align:center;}
+
+.bgcolor-grey {background-color: #e5e5e5;}
+.bgcolor-white {background-color: white;}
+
+.width-100p100 {width: 100%;}
+
+.selected {background-color:pink; }
+
+.skip {
+	height:0;
+	width:0;
+	left:-19000px;
+	overflow:hidden;
+	position:absolute;
+}
+
+
+/* Tag cloud
+----------------------------------------------- */
+.tag1, .tag2, .tag3, .tag4, .tag5 {
+	outline-style: none;
+ 	margin-left: 0.3em;
+ 	margin-right: 0.3em;
+}
+
+.tag1 {font-size: 77%;}		/* 10px */
+.tag2 {font-size: 93%;}		/* 12px */
+.tag3 {font-size: 108%;}	/* 14px */
+.tag4 {font-size: 123.1%;}	/* 16px */
+.tag5 {font-size: 138.5%;}	/* 18px */
+
+/* Table layout
+----------------------------------------------- */
+.my-layout-table {width: 100%; }
+.my-layout-table td {text-align:left; vertical-align:top; }
+
+/* FRS
+----------------------------------------------- */
+#forge-frs .frs-monitor-package {
+    padding-left:0.5em;
+}
\ No newline at end of file

Modified: trunk/gforge/www/themes/gforge/Theme.class.php
===================================================================
--- trunk/gforge/www/themes/gforge/Theme.class.php	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/themes/gforge/Theme.class.php	2010-02-10 08:37:43 UTC (rev 8763)
@@ -13,23 +13,24 @@
         // Parent constructor
         $this->Layout();
 
-        $this->COLOR_CONTENT_BACK= '#ffffff';
-        $this->COLOR_LTBACK1= '#eeeeef';
-        $this->COLOR_LTBACK2= '#fafafa';
-        $this->COLOR_SELECTED_TAB= '#e0e0e0';
-        $this->COLOR_HTMLBOX_TITLE = '#bbbbbb';
-        $this->COLOR_HTMLBOX_BACK = '#eaecef';
-        $this->FONT_CONTENT = 'helvetica';
-        $this->FONT_HTMLBOX_TITLE = 'helvetica';
-        $this->FONTCOLOR_HTMLBOX_TITLE = '#333333';
-        $this->FONTCOLOR_CONTENT = '#333333';
-        $this->FONTSIZE = 'small';
-        $this->FONTSIZE_SMALLER='x-small';
-        $this->FONTSIZE_SMALLEST='xx-small';
-        $this->FONTSIZE_HTMLBOX_TITLE = 'small';
+        $this->imgroot = THEME_DIR.'/images/';
+        $this->jsroot  = THEME_DIR.'/js/';
     }
 
     /**
+     * Layout() - Constructor
+     */
+    function Layout() {
+        // Constructor for parent class...
+        if ( file_exists($GLOBALS['sys_custom_path'] . '/index_std.php') ) {
+            $this->rootindex = $GLOBALS['sys_custom_path'] . '/index_std.php';
+        } else {
+            $this->rootindex = $GLOBALS['gfwww'].'index_std.php';
+        }
+        $this->Error();
+    }
+
+    /**
      *    header() - "steel theme" top of page
      *
      * @param    array    Header parameters array
@@ -42,146 +43,117 @@
         }
 
         print '<?xml version="1.0" encoding="utf-8"?>';
-        ?>
+        echo '
+		<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+		<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="' . _('en') . '" lang="' . _('en') . '">
+		<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<title>'. $params['title'] . '</title>
+		<link rel="icon" type="image/png" href="'. util_make_url('/images/icon.png') .'" />
+		<link rel="shortcut icon" type="image/png" href="'. util_make_url('/images/icon.png') .'" />';
 
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+        echo $this->headerLink();
 
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo _('en') ?>" lang="<?php echo _('en'); ?>">
+        echo '
+		<script type="text/javascript" src="'. $this->jsroot .'gforge.js"></script>
+		<script type="text/javascript">';
+        plugin_hook ("javascript",false);
+        echo '</script>';
 
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title><?php echo $params['title']; ?></title>
-    <link rel="icon" type="image/png" href="<?php echo util_make_url('/images/icon.png'); ?>"/>
-    <link rel="shortcut icon" type="image/png" href="<?php echo util_make_url('/images/icon.png'); ?>"/>
-	<?php $this->headerLink(); ?>
-    <script type="text/javascript" src="<?php echo util_make_url('/js/common.js'); ?>"></script>
-    <script type="text/javascript" src="<?php echo util_make_url('/js/sortable.js'); ?>"></script>
-    <script type="text/javascript">
-    <?php plugin_hook ("javascript",false) ; ?>
-    </script>
-<?php
-	      if (_('default_font') != 'default_font') {
-		      $site_fonts = _('default_font');
-	      } else {
-		      $site_fonts = 'helvetica' ;
-	      }
+        $this->headerCSS();
 
-    $this->headerCSS();
-?>
-</head>
+        echo '
+		</head>
+		<body id="mydoc">
+		';
 
-<body>
+        $this->bodyHeader($params);
+    }
 
-  <?php
-  $this->bodyHeader($params);
-  }
+    function bodyHeader($params) {
+        global $user_guide;
 
-  function bodyHeader($params){
-	global $user_guide;
-
-  ?>
-<div>
-  <table class="header" border="0" width="100%" cellspacing="0" cellpadding="0">
-      <tr class="ff">
-		  <td class="topLeft"><?php echo util_make_link ('/', html_image('header/top-logo.png',192,54,array('border'=>'0'))); ?></td>
-        <td class="middleRight"><?php echo $this->searchBox(); ?></td>
-        <td class="middleRight"><?php
-	if (session_loggedin()) {
-		$u =& user_get_object(user_getid());
-		echo util_make_link ('/account/logout.php', sprintf("%s (%s)", _('Log Out'), $u->getRealName()),array('class'=>'userlink'));
-        	echo ' | ';
-        	echo util_make_link ('/account/', _('My Account'),array('class'=>'userlink'));
+        echo '
+			<table id="header" class="width-100p100">
+				<tr>
+					<td id="header-col1">
+					<h1>'.  util_make_link ('/', html_image('header/top-logo.png',192,54,array('alt'=>'FusionForge Home'))) .'</h1>
+					</td>
+					<td id="header-col2">';
+        echo $this->searchBox();
+        echo '
+					</td>
+					<td id="header-col3">
+			';
+        if (session_loggedin()) {
+            $u =& user_get_object(user_getid());
+            echo util_make_link ('/account/logout.php', sprintf("%s (%s)", _('Log Out'), $u->getRealName()), array('class'=>'userlink'));
+            echo ' ';
+            echo util_make_link ('/account/', _('My Account'), array('class'=>'userlink'));
         } else {
-			$url = '/account/login.php';
+		$url = '/account/login.php';
         	if(getStringFromServer('REQUEST_METHOD') != 'POST') {
         		$url .= '?return_to=';
         		$url .= urlencode(getStringFromServer('REQUEST_URI'));
         	}
-
+		
         	echo util_make_link ($url, _('Log In'),array('class'=>'userlink'));
-        	echo ' | ';
+        	echo ' ';
         	if (!$GLOBALS['sys_user_reg_restricted']) {
         		echo util_make_link ('/account/register.php', _('New Account'),array('class'=>'userlink'));
-        	}
+		}
         }
 
         plugin_hook ('headermenu', $params);
 
         echo $this->quickNav();
-        ?></td>
-        <td class="ff">&nbsp;&nbsp;</td>
-      </tr>
-  
-  </table>
-</div>
-
-<!-- outer tabs -->
-<table border="0" width="100%" cellspacing="0" cellpadding="0">
-    <tr class="ff">
-        <td class="ff"><?php echo $this->outerTabs($params); ?></td>
-    </tr>
-</table>
-
-<!-- inner tabs -->
-<table border="0" width="100%" cellspacing="0" cellpadding="0">
-    <?php
-    if (isset($params['group']) && $params['group']) {
-    ?>
-      <tr class="ff">
-        <td class="ff">
-           <?php
-           echo $this->projectTabs($params['toptab'],$params['group']);
-           ?>
-        </td>
-      </tr>
-    <?php
+        echo '
+					</td>
+				</tr>
+			</table>
+			
+			<!-- outer tabs -->
+			';
+        echo $this->outerTabs($params);
+        echo '<!-- inner tabs -->';
+        if (isset($params['group']) && $params['group']) {
+            echo $this->projectTabs($params['toptab'],$params['group']);
+        }
     }
-    ?>
-</table>
 
-<table border="0" width="100%" cellspacing="0" cellpadding="0">  
-  <tr>
-    <td id="main" class="mainCanvas"> <!-- main body area -->
-    <?php
-    }
-
     function footer($params) {
-    ?>
-    </td> <!-- end main body area -->
-  </tr>
-</table>  
- 
-<!-- PLEASE LEAVE "Powered By FusionForge" on your site -->
-<br />
-<div align="right">
-<a href="http://fusionforge.org/"><img src="<?php echo util_make_url ('/images/pow-fusionforge.png'); ?>" alt="Powered By FusionForge" border="0" /></a>
-</div>
+        echo '
+			<!-- PLEASE LEAVE "Powered By FusionForge" on your site -->
+			<div class="align-right">
+			<a href="http://fusionforge.org/">
+			<img src="'. util_make_url ('/images/pow-fusionforge.png') .'" alt="Powered By FusionForge" />
+			</a></div>
+			';
 
-<?php
-global $sys_show_source;
-if ($sys_show_source) {
-    global $SCRIPT_NAME;
-    print util_make_link ('/source.php?file=' . $SCRIPT_NAME, _('Show source'), array ("class" => "showsource"));
-}
-?>
+        global $sys_show_source;
+        if ($sys_show_source) {
+            global $SCRIPT_NAME;
+            print util_make_link ('/source.php?file=' . $SCRIPT_NAME, _('Show source'), array ("class" => "showsource"));
+        }
 
-</body>
-</html>
+        echo '
+		</body>
+		</html>
+		';
+    }
 
-<?php
+    function headerCSS() {
+        echo '
+		<link href="http://yui.yahooapis.com/2.6.0/build/reset-fonts-grids/reset-fonts-grids.css" type="text/css" rel="stylesheet" />
+		<link href="http://yui.yahooapis.com/2.6.0/build/base/base-min.css"	type="text/css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="'. util_make_url ('/themes/css/fusionforge.css') .'" />
+		<link rel="stylesheet" type="text/css" href="'. THEME_DIR .'/css/theme.css" />
+		<link rel="stylesheet" type="text/css" href="'. THEME_DIR .'/css/theme-pages.css" />
+		';
 
+	plugin_hook ('cssfile',$this);
     }
 
-    function headerCSS(){
-?>
-    <link rel="stylesheet" type="text/css" href="<?php echo util_make_url ('/themes/css/gforge.css') ?>" />
-    <link rel="stylesheet" type="text/css" href="<?php echo THEME_DIR ?>/css/theme.css" />
-<?php
-       plugin_hook ('cssfile',$this);
-    }
-
     function getRootIndex() {
         return $this->rootindex;
     }
@@ -193,23 +165,19 @@
      * @param   bool    Whether to echo or return the results
      * @param   string  The box background color
      */
-    function boxTop($title) {
-        return '
-        <!-- Box Top Start -->
-
-        <table cellspacing="0" cellpadding="0" style="table-layout:fixed" width="100%" border="0" background="'.$this->imgroot.'vert-grad.png">
-        <tr class="ff" align="center">
-            <td class="ff" valign="top" style="text-align:right" width="10" background="'.$this->imgroot.'box-topleft.png"><img src="'.$this->imgroot.'clear.png" width="10" height="20" /></td>
-            <td class="ff" width="100%" background="'.$this->imgroot.'box-grad.png"><span class="titlebar">'.$title.'</span></td>
-            <td class="ff" valign="top" width="10" background="'.$this->imgroot.'box-topright.png"><img src="'.$this->imgroot.'clear.png" width="10" height="20" /></td>
-        </tr>
-        <tr class="ff">
-            <td class="ff" colspan="3">
-            <table cellspacing="2" cellpadding="2" width="100%" border="0">
-                <tr class="ff" align="left">
-                    <td class="ff" colspan="2">
-
-        <!-- Box Top End -->';
+    function boxTop($title, $id = '') {
+        $t_result = '
+        	<div id="' . $this->toSlug($id) . '" class="box-surround">
+            	<div id="'. $this->toSlug($id) . '-title" class="box-title">
+            		<div class="box-title-left">
+            			<div class="box-title-right">
+                			<h3 class="box-title-content" id="'. $this->toSlug($id) .'-title-content">'. $title .'</h3>
+                		</div>
+                	</div>
+                </div> 
+            	<div id="'. $this->toSlug($id) .'-content" class="box-content">
+            ';
+        return $t_result;
     }
 
     /**
@@ -218,34 +186,25 @@
      * @param   string  Box title
      * @param   string  The box background color
      */
-    function boxMiddle($title) {
-        return '
-        <!-- Box Middle Start -->
-                    </td>
-                </tr>
-                <tr class="ff" align="center">
-                    <td class="ff" colspan="2" background="'.$this->imgroot.'box-grad.png"><span class="titlebar">'.$title.'</span></td>
-                </tr>
-                <tr class="ff" align="left">
-                    <td class="ff" colspan="2">
-        <!-- Box Middle End -->';
+    function boxMiddle($title, $id = '') {
+	    $t_result ='
+	        	</div> <!-- class="box-content" -->
+	        <h3 id="title-'. $this->toSlug($id).'" class="box-middle">'.$title.'</h3>
+	       	<div class="box-content">
+        ';
+	    return $t_result;
     }
 
     /**
      * boxBottom() - Bottom HTML box
      *
-     * @param   bool    Whether to echo or return the results
      */
     function boxBottom() {
-        return '
-            <!-- Box Bottom Start -->
-                    </td>
-                </tr>
-            </table>
-            </td>
-        </tr>
-        </table><br />
-        <!-- Box Bottom End -->';
+	    $t_result='
+                </div>
+            </div> <!-- class="box-surround" -->
+		';
+	    return $t_result;
     }
 
     /**
@@ -255,9 +214,9 @@
      */
     function boxGetAltRowStyle($i) {
         if ($i % 2 == 0) {
-            return ' bgcolor="#EAEAEA"';
+            return 'class="bgcolor-white"';
         } else {
-            return ' bgcolor="#E0E0E0"';
+            return 'class="bgcolor-grey"';
         }
     }
 
@@ -267,148 +226,49 @@
      * @param       array   The array of titles
      * @param       array   The array of title links
      */
-    function listTableTop ($title_arr,$links_arr=false) {
-        $return = '
-        <table cellspacing="0" cellpadding="0" width="100%" border="0">
-        <tr class="ff" align="center">
-    <!--        <td class="ff" valign="top" style="text-align:right" width="10" background="'.$this->imgroot.'box-grad.png"><img src="'.$this->imgroot.'box-topleft.png" width="10" height="75" /></td> -->
-            <td class="ff" background="'.$this->imgroot.'box-grad.png">
-        <table width="100%" border="0" cellspacing="1" cellpadding="2">
-            <tr class="ff">';
+    function listTableTop ($title_arr,$links_arr=false,$selected=false) {
+	    $return = '<table class="width-100p100 listTable';
+	    if ($selected == true) {
+		    $return .= ' selected';
+	    }
+	    $return .= '">
+            <tr>';
 
         $count=count($title_arr);
         if ($links_arr) {
             for ($i=0; $i<$count; $i++) {
                 $return .= '
-                <td class="ff" style="text-align:center"><a class="sortbutton" href="'.util_make_url ($links_arr[$i]).'"><span style="color:'.
-                $this->FONTCOLOR_HTMLBOX_TITLE.'"><strong>'.$title_arr[$i].'</strong></span></a></td>';
+                <th scope="col"><a class="sortbutton" href="'.util_make_url ($links_arr[$i]).'"><strong>'.$title_arr[$i].'</strong></a></th>';
             }
         } else {
             for ($i=0; $i<$count; $i++) {
                 $return .= '
-                <td class="ff" style="text-align:center"><span style="color:'.
-                $this->FONTCOLOR_HTMLBOX_TITLE.'"><strong>'.$title_arr[$i].'</strong></span></td>';
+                <th scope="col"><strong>'.$title_arr[$i].'</strong></th>';
             }
         }
         return $return.'</tr>';
     }
 
     function listTableBottom() {
-        return '</table></td>
-            <!-- <td class="ff" valign="top" style="text-align:right" width="10" background="'.$this->imgroot.'box-grad.png"><img src="'.$this->imgroot.'box-topright.png" width="10" height="75" /></td> -->
-            </tr></table>';
+	    return '
+            </table>';
     }
 
-    function outerTabs($params) {
-        global $sys_use_trove,$sys_use_snippet,$sys_use_people,$sys_use_project_tags,$sys_use_project_full_list;
 
-        $TABS_DIRS[]=util_make_url ('/') ;
-        $TABS_DIRS[]=util_make_url ('/my/') ;
-	if ($sys_use_trove || $sys_use_project_tags || $sys_use_project_full_list) {
-		$TABS_DIRS[]=util_make_url ('/softwaremap/') ;
-	}
-        if ($sys_use_snippet) {
-		$TABS_DIRS[]=util_make_url ('/snippet/') ;
-        }
-        if ($sys_use_people) {
-		$TABS_DIRS[]=util_make_url ('/people/') ;
-        }
-        $TABS_TITLES[]=_('Home');
-        $TABS_TITLES[]=_('My&nbsp;Page');
-	if ($sys_use_trove || $sys_use_project_tags || $sys_use_project_full_list) {
-        	$TABS_TITLES[]=_('Projects');
-	}
-        if ($sys_use_snippet) {
-            $TABS_TITLES[]=_('Code&nbsp;Snippets');
-        }
-        if ($sys_use_people) {
-            $TABS_TITLES[]=_('Project&nbsp;Openings');
-        }
-	// outermenu hook
-	$PLUGIN_TABS_DIRS = Array();
-	$hookParams['DIRS'] = &$PLUGIN_TABS_DIRS;
-	$hookParams['TITLES'] = &$TABS_TITLES;
-	plugin_hook ("outermenu", $hookParams) ;
-	$TABS_DIRS = array_merge($TABS_DIRS, $PLUGIN_TABS_DIRS);
-
-	$user_is_super=false;
-	$selected = 0 ;
-	if (session_loggedin()) {
-		$projectmaster =& group_get_object(GROUP_IS_MASTER);
-		$projectstats =& group_get_object(GROUP_IS_STATS);
-		$permmaster =& $projectmaster->getPermission( session_get_user() );
-		$permstats =& $projectstats->getPermission( session_get_user() );
-
-		if ($permmaster->isAdmin()) {
-			$user_is_super=true;
-			$TABS_DIRS[]=util_make_url ('/admin/') ;
-			$TABS_TITLES[]=_('Admin');
-		}
-		if ($permstats->isMember()) {
-			$TABS_DIRS[]=util_make_url ('/reporting/') ;
-			$TABS_TITLES[]=_('Reporting');
-		}
-	}
-        if(isset($params['group']) && $params['group']) {
-            // get group info using the common result set
-            $project =& group_get_object($params['group']);
-            if ($project && is_object($project)) {
-                if ($project->isError()) {
-
-                } elseif (!$project->isProject()) {
-
-                } else {
-		    if (isset ($GLOBALS['sys_noforcetype']) && $GLOBALS['sys_noforcetype']) {
-			    $TABS_DIRS[]=util_make_url ('/project/?group_id='. $params['group']) ;
-		    } else {
-			    $TABS_DIRS[]=util_make_url ('/projects/'.$project->getUnixName().'/') ;
-		    }
-                    $TABS_TITLES[]=$project->getPublicName();
-                    $selected=count($TABS_DIRS)-1;
-                }
-            }
-        } elseif (strstr(getStringFromServer('REQUEST_URI'),util_make_url ('/my/')) || strstr(getStringFromServer('REQUEST_URI'),'/account/') ||
-		  strstr(getStringFromServer('REQUEST_URI'),util_make_url ('/themes/')) ) {
-		$selected=array_search(util_make_url ('/my/'), $TABS_DIRS);
-        } elseif (strstr(getStringFromServer('REQUEST_URI'),util_make_url ('softwaremap'))) {
-		$selected=array_search(util_make_url ('/softwaremap/'), $TABS_DIRS);
-        } elseif (strstr(getStringFromServer('REQUEST_URI'),util_make_url ('/snippet/'))) {
-		$selected=array_search(util_make_url ('/snippet/'), $TABS_DIRS);
-        } elseif (strstr(getStringFromServer('REQUEST_URI'),util_make_url ('/people/'))) {
-		$selected=array_search(util_make_url ('/people/'), $TABS_DIRS);
-        } elseif (strstr(getStringFromServer('REQUEST_URI'),util_make_url ('/reporting/'))) {
-		$selected=array_search(util_make_url ('/reporting/'),$TABS_DIRS);
-        } elseif (strstr(getStringFromServer('REQUEST_URI'),util_make_url ('/admin/')) && $user_is_super) {
-		$selected=array_search(util_make_url ('/admin/'),$TABS_DIRS);
-        } elseif (count($PLUGIN_TABS_DIRS)>0) {
-            foreach ($PLUGIN_TABS_DIRS as $PLUGIN_TABS_DIRS_VALUE) {
-               if (strstr(getStringFromServer('REQUEST_URI'),$PLUGIN_TABS_DIRS_VALUE)) {
-                   $selected=array_search($PLUGIN_TABS_DIRS_VALUE,$TABS_DIRS);
-                   break;
-               }
-            }
-        } else {
-            $selected=0;
-        }
-        if (!$this->COLOR_SELECTED_TAB) {
-            $this->COLOR_SELECTED_TAB= '#e0e0e0';
-        }
-        echo $this->tabGenerator($TABS_DIRS,$TABS_TITLES,false,$selected,$this->COLOR_SELECTED_TAB,'100%');
-
-    }
-
-
     function tabGenerator($TABS_DIRS,$TABS_TITLES,$nested=false,$selected=false,$sel_tab_bgcolor='WHITE',$total_width='100%') {
         $count=count($TABS_DIRS);
         $width=intval((100/$count));
 
         $return = '
+		<!-- start tabs -->
+		<table class="tabGenerator width-100p100" summary="" ';
 
-        <!-- start tabs -->
-
-        <table border="0" cellpadding="0" cellspacing="0" width="'.$total_width.'">
-        <tr class="ff">';
-
+        if ($total_width != '100%') {
+		$return .= 'style="width:' . $total_width . ';"';
+        }
+        $return .= ">\n";
+        $return .= '<tr>';
+ 
         $folder = $this->imgroot.($nested ? 'bottomtab-new/' : 'toptab-new/');
 
         for ($i=0; $i<$count; $i++) {
@@ -427,91 +287,68 @@
             }
             
             $clear_img = $this->imgroot.'clear.png';
+
+            $return .= "\n";
+
+            // left part
+            $return .= '<td class="tg-left">' . "\n";
+            $return .= '<div';
+            if ($selected == $i) {
+                $return .= ' class="selected"';
+            }
+            $return .= '>';
+            $return .= '<div';
             
             if ($nested) {
-                $tab_height = BOTTOM_TAB_HEIGHT;
-                $return .= sprintf(
-                    '<td class="ff" valign="top" width="5" background="%s">
-      			<img src="%s" height="%d" width="5" alt="" />
-                	</td>', $middle_img, $clear_img, $tab_height );
-                $return .= sprintf(
-                    '<td class="ff" background="%s" width="'.$width.'%%" style="text-align:center">
-            		<a class="%s" href="%s">%s</a>
-    		</td>', $middle_img, $css_class, $TABS_DIRS[$i], $TABS_TITLES[$i]);
-    
-                // if the next tab is not last, insert a separator
-                if ($i < $count-1) {
-                    $return .= sprintf(
-                        '<td class="ff" valign="top" width="2" background="%s">
-          			<img src="%s" height="%d" width="2" alt="" />
-                    	  </td>', $separ_img, $clear_img, $tab_height );
-                }
+		    $return .= ' class="nested"';
             }
-            else {
-                $tab_height = TOP_TAB_HEIGHT;
-                
-                $return .= sprintf(
-                    '<td class="ff" valign="top" width="3" background="%s">
-      			<img src="%s" height="%d" width="3" alt="" />
-                	</td>', $left_img, $clear_img, $tab_height );
-                    
-                $return .= sprintf(
-                    '<td class="ff" background="%s" width="'.$width.'%%" style="text-align:center">
-            		<a class="%s" href="%s">%s</a>
-    		</td>', $middle_img, $css_class, $TABS_DIRS[$i], $TABS_TITLES[$i]);
-    
-                // if the next tab is not selected, close this tab
-                if ($selected != $i+1) {
-                  $return .= sprintf(
-                      '<td class="ff" valign="top" width="9" background="%s">
-        			<img src="%s" height="%d" width="9" alt="" />
-                  	  </td>', $right_img, $clear_img, $tab_height );
-                }
+            $return .= '>' . "\n";
+            $return .= '</div>';
+            $return .= '</div>' . "\n";
+            $return .= '</td>' . "\n";
+
+            // middle part
+            $return .= '<td class="tg-middle" style="width:'.$width.'%;">' . "\n";
+            $return .= '<div';
+            if ($selected == $i) {
+		    $return .= ' class="selected"';
             }
-        }
-                
-        //
-        //    Building a bottom row in this table, which will be darker
-        //
-        /*
-        if ($selected == 0) {
-            $beg_cols=0;
-            $end_cols=((count($TABS_DIRS)*3)-3);
-        } elseif ($selected == (count($TABS_DIRS)-1)) {
-            $beg_cols=((count($TABS_DIRS)*3)-3);
-            $end_cols=0;
-        } else {
-            $beg_cols=($selected*3);
-            $end_cols=(((count($TABS_DIRS)*3)-3)-$beg_cols);
-        }
-        
-        $return .= '<tr class="ff">';
-        
-        if ($beg_cols > 0) {
-            $return .= 
-                '<td class="ff" colspan="'.$beg_cols.'" height="1" bgcolor="#909090">
-			<img src="'.$this->imgroot.'clear.png" height="1" width="10" />
-		</td>';
-        }
-        $return .= 
-                '<td class="ff" colspan="3" height="1" bgcolor="'.$sel_tab_bgcolor.'">
-			<img src="'.$this->imgroot.'clear.png" height="1" width="10" />
-		</td>';
-        if ($end_cols > 0) {
-            $return .= 
-                '<td class="ff" colspan="'.$end_cols.'" height="1" bgcolor="#909090">
-			  <img src="'.$this->imgroot.'clear.png" height="1" width="10" />
-		</td>';
-        }
-	    */
-        
-        $return .= '</tr>';
+            $return .= '>';
+            $return .= '<div';
+            if ($nested) {
+		    $return .= ' class="nested"';
+            }
+            $return .= '>' . "\n";
+            $return .= '<a href="'.$TABS_DIRS[$i].'">'.$TABS_TITLES[$i].'</a>' . "\n";
+            $return .= '</div>';
+            $return .= '</div>' . "\n";
+            $return .= '</td>' . "\n";
 
-        return $return.'
-        </table> 
+            // right part
+            // if the next tab is not selected, close this tab
+            if ($selected != $i+1) {
+		    $return .= '<td class="tg-right">' . "\n";
+		    $return .= '<div';
+		    if ($selected == $i) {
+			    $return .= ' class="selected"';
+		    }
+		    $return .= '>';
+		    $return .= '<div';
+		    if ($nested) {
+			    $return .= ' class="nested"';
+		    }
+		    $return .= '>' . "\n";
+		    $return .= '</div>';
+		    $return .= '</div>' . "\n";
+		    $return .= '</td>' . "\n";
+	    }
+	}
+	
+        $return .= '</tr>
+        </table>
+        <!-- end tabs -->';
 
-        <!-- end tabs -->
-';
+	return $return;
     }
 
     function searchBox() {
@@ -529,50 +366,39 @@
         }
 
         print '
-        <form class="search" action="'.util_make_url ('/search/').'" method="get">
-        <table border="0" cellpadding="0" cellspacing="0">
-        <tr class="ff"><td class="ff">
-        <div align="center" style="font-size:smaller">';
+        <form id="searchBox" action="'.util_make_url ('/search/').'" method="get">
+        <div>';
         $parameters = array(
-        SEARCH__PARAMETER_GROUP_ID => $group_id,
-        SEARCH__PARAMETER_ARTIFACT_ID => $atid,
-        SEARCH__PARAMETER_FORUM_ID => $forum_id,
-        SEARCH__PARAMETER_GROUP_PROJECT_ID => $group_project_id
+		SEARCH__PARAMETER_GROUP_ID => $group_id,
+		SEARCH__PARAMETER_ARTIFACT_ID => $atid,
+		SEARCH__PARAMETER_FORUM_ID => $forum_id,
+		SEARCH__PARAMETER_GROUP_PROJECT_ID => $group_project_id
         );
 
         $searchManager =& getSearchManager();
         $searchManager->setParametersValues($parameters);
         $searchEngines =& $searchManager->getAvailableSearchEngines();
 
-        echo '<select class="ff" name="type_of_search">';
+        echo '
+        <label for="searchBox-words">
+        <select name="type_of_search">';
         for($i = 0, $max = count($searchEngines); $i < $max; $i++) {
             $searchEngine =& $searchEngines[$i];
             echo '<option class="ff" value="'.$searchEngine->getType().'"'.( $type_of_search == $searchEngine->getType() ? ' selected="selected"' : '' ).'>'.$searchEngine->getLabel($parameters).'</option>'."\n";
         }
-        echo '</select></div>';
+        echo '</select></label>';
 
-//        print '<br />';
-//        print '
-//        <input type="CHECKBOX" name="exact" value="1"'.( $exact ? ' CHECKED' : ' UNCHECKED' ).'> Require All Words';
-
-        print '</td><td class="ff">&nbsp;';
         $parameters = $searchManager->getParameters();
         foreach($parameters AS $name => $value) {
             print '<input class="ff" type="hidden" value="'.$value.'" name="'.$name.'" />';
         }
-        print '</td><td class="ff">';
-        print '<input class="ff" type="text" size="12" name="words" value="'.$defaultWords.'" />';
+        print '<input type="text" size="12" id="searchBox-words" name="words" value="'.$defaultWords.'" />';
+	print '<input type="submit" name="Search" value="'._('Search').'" />';
 
-        print '</td><td class="ff">&nbsp;</td><td class="ff">';
-        print '<input class="ff" type="submit" name="Search" value="'._('Search').'" />';
-        print '</td>';
-
         if (isset($group_id) && $group_id) {
-            print '
-                    <td class="ff" width="10">&nbsp;</td>
-                    <td class="ff">'.util_make_link ('/search/advanced_search.php?group_id='.$group_id, _('Advanced search'),array('class'=>'userlink')).'</td>';
+		print util_make_link ('/search/advanced_search.php?group_id='.$group_id, _('Advanced search'), array('class'=>'userlink'));
         }
-        print '</tr></table>';
+        print '</div>';
         print '</form>';
 
     }
@@ -600,7 +426,7 @@
                     </td>
                 </tr>
             </table><br /></div>'
-        .$this->createUnderSections($sectionsArray).'
+            .$this->createUnderSections($sectionsArray).'
         </form>';
 
 
@@ -621,9 +447,9 @@
         ';
 
     }
-    
+
     function createUnderSections($sectionsArray) {
-    	global $group_subsection_names;
+        global $group_subsection_names;
         $countLines = 0;
         foreach ($sectionsArray as $section) {
             if(is_array($section)) {
@@ -657,7 +483,7 @@
             } else {
                 $countLines += 3;
             }
-            
+
             if ($countLines >= $break) {
                 //if the next block is so large that shifting it to the next column hits the breakpoint better
                 //the second part of statement (behind &&) proofs, that no 4th column is added
@@ -667,10 +493,12 @@
                 }
             }
             
-            $return .= '<table width="90%" border="0" cellpadding="1" cellspacing="0" style="background-color:'. $this->COLOR_LTBACK2.'">
-                            <tr class="ff"><td class="ff"><table width="100%" border="0" cellspacing="0" cellpadding="3">
-                            <tr class="ff" style="background-color:'. $this->COLOR_LTBACK2 .'; font-weight: bold">
-                                <td class="ff" cellspacing="0">
+            $return .= '<table  style="width:90%; background-color:'. $this->COLOR_LTBACK2.'">
+                            <tr class="ff">
+                            <td class="ff">
+                            	<table style="width:100%;">
+                            	<tr class="ff" style="background-color:'. $this->COLOR_LTBACK2 .'; font-weight: bold">
+                                <td class="ff">
                                     <a href="#'.$key.'">'.$group_subsection_names[$key].'</a>'
             .'    </td>
                                 <td class="ff" style="text-align:right">'
@@ -683,7 +511,7 @@
             if (!is_array($section)) {
                 $return .= '        <input class="ff" type="checkbox" name="'.urlencode($key).'"';
                 if (isset($GLOBALS[urlencode($key)]))
-                $return .= ' checked="checked" ';
+			$return .= ' checked="checked" ';
                 $return .= ' /></input>'.$group_subsection_names[$key].'<br />';
             }
             else
@@ -706,7 +534,7 @@
                 }
             }
         }
-        
+
         return $return.'        </td>
                             </tr>
                         </table></td></tr></table>';
@@ -747,9 +575,9 @@
         $return = '';
 
         for ($i=0; $i<$count; $i++) {
-		$return .= util_make_link ($links_arr[$i], $title_arr[$i]) . ' | ';
+            $return .= util_make_link ($links_arr[$i], $title_arr[$i]) . ' | ';
         }
-	$return .= util_make_link ($links_arr[$i], $title_arr[$i]);
+        $return .= util_make_link ($links_arr[$i], $title_arr[$i]);
         return $return;
     }
 
@@ -827,14 +655,13 @@
      * getThemeIdFromName()
      *
      * @param    string  the dirname of the theme
-     * @return    integer the theme id    
+     * @return    integer the theme id
      */
     function getThemeIdFromName($dirname) {
         $res=db_query_params ('SELECT theme_id FROM themes WHERE dirname=$1',
 			array($dirname));
         return db_result($res,0,'theme_id');
     }
-
 }
 
 // Local Variables:

Added: trunk/gforge/www/themes/gforge/css/theme-pages.css
===================================================================
--- trunk/gforge/www/themes/gforge/css/theme-pages.css	                        (rev 0)
+++ trunk/gforge/www/themes/gforge/css/theme-pages.css	2010-02-10 08:37:43 UTC (rev 8763)
@@ -0,0 +1,152 @@
+/* 
+ * Stylesheet for FusionForge default theme.
+ * 2009 Matthieu FAURE // Open-S: global clean-up
+ * 
+ * CONTENT: all page-related styles
+ * ========================================================
+ */
+
+/* 
+ * PAGE: home page
+ * ========================================================
+ */ 
+
+/* =bd (main body)
+----------------------------------------------- */
+#bd td {
+	vertical-align: top;
+	padding: 5px;
+}
+
+#bd-col1 {
+	width: 65%;
+}
+
+#bd-col2 {
+	width: 35%;
+}
+
+#title-home-page {
+	text-align: center;	
+}
+
+#Latest_News h3 {
+    margin-top: 0px;
+    margin-bottom: 0px;
+    font-weight: bold;	
+}
+
+#Latest_News em {
+    padding-left: 1em;  
+}
+
+/* remove inherited background-image */
+#title_Features_Boxes {
+    display: none;
+}
+
+#Features_Boxes {
+	background-image: none;
+}
+
+#Features_Boxes #title_Associated_Forges {
+    margin-top: 0;
+}
+
+#Associated_Forges td {
+    padding-right: 1em;  
+}
+
+#Associated_Forges .align-right {
+    text-align: right;	
+}
+
+#Recently_Registered_Projects td {
+    padding: 0.2em;
+}
+
+#search_associated_forges {
+    float: left;
+    margin-top: 5px;
+    margin-bottom: 5px;
+}
+
+#search_associated_forges_submit {
+    margin-top: 6px;
+    padding-left: 5px;
+}
+
+/* 
+ * PAGE: project home
+ * ========================================================
+ */ 
+#project-summary-and-devs {
+	margin-top: 0.5em;
+}
+
+#file-releases {
+    margin: 0 0.5em;
+}
+
+/* 
+ * PAGE: frs
+ * ========================================================
+ */
+.frs-table-files {
+    width: 100%;
+    margin: 0 0 2.5em 0;
+}
+
+.frs-table-files th {
+    background: #e8dfd4;
+}
+
+.frs-table-files tr {
+    border-bottom: solid 1px #c9c9c9;
+}
+
+.frs-table-files th,
+.frs-table-files td {
+    vertical-align:middle;
+}
+
+.frs-table-files h3 {
+    margin:0;
+}
+
+#forge-frs .blue-box {
+	padding-top: 2em;
+	padding-bottom: 2em;
+}
+
+#forge-frs h2 {
+    padding-top: 1em;
+}
+
+#forge-frs h3 {
+    font-size: small;
+}
+
+#forge-frs .box-surround {
+    margin: 0 0.5em 0.5em 2em;
+}
+
+#forge-frs .box-content {
+	padding-left: 2em;
+}
+
+#forge-frs .listTable {
+    margin:0;
+}
+
+#forge-frs .listTable td {
+	width: 12%;
+}
+
+/* 
+ * PAGE: user_home (eg: http://fusionforge/user/<username>)
+ * ========================================================
+ */
+#user-profile-homepage {
+    
+}

Modified: trunk/gforge/www/themes/gforge/css/theme.css
===================================================================
--- trunk/gforge/www/themes/gforge/css/theme.css	2010-02-09 19:09:23 UTC (rev 8762)
+++ trunk/gforge/www/themes/gforge/css/theme.css	2010-02-10 08:37:43 UTC (rev 8763)
@@ -1,100 +1,108 @@
 /* 
- * Stylesheet for SAP Forge theme.
+ * Stylesheet for FusionForge default theme.
+ * 2009 Matthieu FAURE // Open-S: global clean-up
+ * 
+ * CONTENT: all generic styles (not page-related)
+ * ========================================================
  */
-BODY {
-  margin-top: 0em;
-  margin-left: 0em;
-  margin-right: 0em;
-  margin-bottom: 0em;
-  color: rgb(68, 68, 68);
-  background-color: rgb(247, 247, 247);
-  font-family: arial, helvetica, sans-serif;
-  font-size: small;
-}
 
-form { margin: 0; }
+/* HTML elements */
+body {color: rgb(68, 68, 68); background-color: rgb(247, 247, 247); }
+form {margin:0; }
+img {border:0; }
+h1 {margin:0; }
 
-img { border: 0; }
+a {text-decoration:none; color:rgb(1, 73, 144); }
+a:hover {text-decoration: underline; color: rgb(247, 0, 0); }
+a.userlink {color: white; }
+a.userlink:hover {text-decoration: underline; color: white;}
+a.userlink:visited {text-decoration: none; color: white; }
+th, td {text-align:left; border:none; }
+#mydoc {text-align: left;}
 
-a {
-  text-decoration: none;
-  color: rgb(1, 73, 144);
+/* =header */
+#header {
+  background: rgb(66, 69, 82) url("../images/header/top-middle.gif") top left repeat-x;
+  font-size:77%;
+  margin: 0;
 }
-
-/*
-a:link {
-  color: #0000be
+#header td {padding:0; }
+#header p,
+#header a {
+  color: white;
+  font-weight: bold;
 }
-
-a:visited {
-  color: #0000be
+#header-col1 {
+  padding:0;	
+} 
+#header-col2 {
+  padding:0;
+  text-align:center;	
 }
-
-a:active {
+#header-col3 {
+  padding: 0 1em 0 0;
+  text-align:right;
 }
-*/
 
-a:hover {
-  text-decoration: underline;
-  color: rgb(247, 0, 0);
+/* =searchBox */
+#searchBox div {
+  text-align:center;
 }
 
-a.userlink {
-  font-size: 13px;
-  font-family: arial,verdana,helvetica,sans-serif;
-  color: white;
+/* =tabGenerator */
+.tabGenerator {font-weight:bold; margin:0; }
+.tabGenerator td {padding:0; }
+.tabGenerator .tg-left div div {
+  background: 0 0 url(/themes/gforge/images/toptab-new/left.gif) no-repeat;
+  display: block;
+  width: 3px;
+  height: 30px;
 }
-
-a.userlink:hover {
-  text-decoration: underline;
-  color: white;
+.tabGenerator .tg-middle {
+  vertical-align: middle;
 }
-
-a.userlink:visited {
-  text-decoration: none;
-  color: white;
+.tabGenerator .tg-middle div div {
+  background: url(/themes/gforge/images/toptab-new/middle.gif);
+  text-align:center;
+  vertical-align: middle;
+  height: 30px;
 }
-
-h1,h2,h3,h4,h5,h6 {
-  font-family: verdana, arial, helvetica, sans-serif;
+.tabGenerator .tg-right div div {
+  background: 0 0 url(/themes/gforge/images/toptab-new/right.gif) no-repeat;
+  display: block;
+  width: 9px;
+  height: 30px;
 }
 
-h1 {
-  font-size: x-large;
-}
+.tabGenerator .tg-left div div.nested {width:5px; }
+.tabGenerator .tg-right div div.nested {width:2px; }
+.tabGenerator .tg-left div div.nested,
+.tabGenerator .tg-middle div div.nested,
+.tabGenerator .tg-right div div.nested {height: 22px; padding-top:0.5em; }
 
-h2 {
-  font-size: large;
-}
+.tabGenerator .tg-left div.selected div {background-image:url(/themes/gforge/images/toptab-new/selected-left.gif); }
+.tabGenerator .tg-middle div.selected div {background-image: url(/themes/gforge/images/toptab-new/selected-middle.gif); }
+.tabGenerator .tg-right div.selected div {background-image: url(/themes/gforge/images/toptab-new/selected-right.gif)}
 
-h3 {
-  font-size: medium;
-}
+.tabGenerator .tg-left div div.nested {background:0 0 url(/themes/gforge/images/bottomtab-new/middle.gif); } 
+.tabGenerator .tg-middle div div.nested {background:url(/themes/gforge/images/bottomtab-new/middle.gif); }
+.tabGenerator .tg-right div div.nested {background: 0 0 url(/themes/gforge/images/bottomtab-new/separator.gif); }
 
-h4 {
-  font-size: small;
-}
+.tabGenerator .tg-left div.selected div.nested {background:0 0 url(/themes/gforge/images/bottomtab-new/selected-middle.gif); }
+.tabGenerator .tg-middle div.selected div.nested{background:url(/themes/gforge/images/bottomtab-new/selected-middle.gif);  }
+.tabGenerator .tg-right div.selected div.nested {background: 0 0 url(/themes/gforge/images/bottomtab-new/selected-separator.gif); }
 
-h5 {
-  font-size: x-small;
-}
+/* set padding only for non nested tabs */
+.tabGenerator .tg-middle div div a {display:block; padding-top: 0.5em;}
+.tabGenerator .tg-middle div div.nested a {display:inline;}
 
-h6 {
-  font-size: xx-small;
-}
+/* set white color only for nested + selected tab */
+.tabGenerator .tg-middle div div.nested a {color: white;}
+.tabGenerator .tg-middle div.selected div.nested a {color: rgb(1,73,144);;}
 
-pre,tt {
-  font-family: courier, sans-serif
-}
-
-/* the style of the label on a box title  */
-.titlebar {
-  text-decoration: none;
-  font-weight: bold;
-}
-
+/* =tabber */
 .topTab, a.topTab, a.topTab:visited, a.topTab:hover,
-.topTabSelected, a.topTabSelected, a.topTabSelected:visited, 
+.topTabSelected, a.topTabSelected, a.topTabSelected:visited,
 a.topTabSelected:hover {
   text-decoration: none;
   font-weight: bold;
@@ -120,18 +128,6 @@
   font-size: 0.9em;
 }
 
-/* header style */
-.header {
-  background: rgb(66, 69, 82) url("../images/header/top-middle.gif") top left
-    repeat-x;
-  /* padding-right: 1em; */
-  padding-top: 0;
-  padding-bottom: 0;
-  padding-left: 0;
-  margin: 0 0 0 0;
-  vertical-align: top;
-}
-
 .topLeft {
   vertical-align: top;
   text-align: left;
@@ -142,46 +138,6 @@
   text-align: right;
 }
 
-.header form {
-  padding: 0 0 0 0;
-  margin: 0 0 0 0;
-  border-width: 0;
-}
-
-/*
-.header h1 {
-  position: absolute;
-  top: 0;
-  left: 0;
-  margin: 0;
-  font-size: 2px;
-  height: 8px;
-  z-index: 100;
-}
-
-.header h1 a {
-  display: block;
-  width: 300px;
-  height: 55px;
-  background: transparent url("../images/header/top-logo.png") no-repeat;
-  text-indent: -700em;
-  text-decoration: none;
-}
-*/
-
-.header p,.header a {
-  color: white;
-  font-family: arial, helvetica, sans-serif;
-  font-weight: bold;
-  font-size: 0.8em;
-}
-
-.mainCanvas {
-  width: 100%;
-  padding: 0.6em 0.6em 0.6em 0.6em ;
-  border: 0;
-}
-
 .pane {
   color: rgb(112, 112, 112);
   background-color: white;
@@ -192,7 +148,7 @@
   But do not hide them in the print stylesheet!
   --------------------------------------------------*/
 .tabberlive .tabbertabhide {
- display:none;
+  display:none;
 }
 
 /*--------------------------------------------------
@@ -202,58 +158,52 @@
 .tabber {
 }
 .tabberlive {
- margin-top:1em;
+  margin-top:1em;
 }
 
 /*--------------------------------------------------
   ul.tabbernav = the tab navigation list
   li.tabberactive = the active tab
   --------------------------------------------------*/
-ul.tabbernav
-{
- margin:0;
- padding: 3px 0;
- border-bottom: 1px solid #778;
+ul.tabbernav {
+  margin:0;
+  padding: 3px 0;
+  border-bottom: 1px solid #778;
 }
 
-ul.tabbernav li
-{
- list-style: none;
- margin: 0;
- display: inline;
+ul.tabbernav li {
+  list-style: none;
+  margin: 0;
+  display: inline;
 }
 
-ul.tabbernav li a
-{
- padding: 3px 0.5em;
- margin-left: 3px;
- border: 1px solid #778;
- border-bottom: none;
- background: #D0D0D0;
- text-decoration: none;
+ul.tabbernav li a {
+  padding: 3px 0.5em;
+  margin-left: 3px;
+  border: 1px solid #778;
+  border-bottom: none;
+  background: #D0D0D0;
+  text-decoration: none;
 }
 
 ul.tabbernav li a:link { color: #333333; }
 ul.tabbernav li a:visited { color: #667; }
 
-ul.tabbernav li a:hover
-{
- color: #000;
- background: #FED620;
- border-color: #227;
+ul.tabbernav li a:hover {
+  color: #000;
+  background: #FED620;
+  border-color: #227;
 }
 
-ul.tabbernav li.tabberactive a
-{
- background-color: #fff;
- border-bottom: 1px solid #fff;
+ul.tabbernav li.tabberactive a {
+  background-color: #fff;
+  border-bottom: 1px solid #fff;
 }
 
-ul.tabbernav li.tabberactive a:hover
-{
- color: #000;
- background: white;
- border-bottom: 1px solid white;
+ul.tabbernav li.tabberactive a:hover {
+  color: #000;
+  background: white;
+  border-bottom: 1px solid white;
 }
 
 /*--------------------------------------------------
@@ -261,27 +211,17 @@
   Add style only after the tabber interface is set up (.tabberlive)
   --------------------------------------------------*/
 .tabberlive .tabbertab {
- padding:5px;
- border:1px solid #aaa;
- border-top:0;
-
- /* If you don't want the tab size changing whenever a tab is changed
-    you can set a fixed height */
-
- /* height:200px; */
-
- /* If you set a fix height set overflow to auto and you will get a
-    scrollbar when necessary */
-
- /* overflow:auto; */
+  padding:5px;
+  border:1px solid #aaa;
+  border-top:0;
 }
 
 /* If desired, hide the heading since a heading is provided by the tab */
 .tabberlive .tabbertab h2 {
- display:none;
+  display:none;
 }
 .tabberlive .tabbertab h3 {
- display:none;
+  display:none;
 }
 
 /* Example of using an ID to set different styles for the tabs on the page */
@@ -290,7 +230,51 @@
 .tabberlive#tab2 {
 }
 .tabberlive#tab2 .tabbertab {
- height:200px;
- overflow:auto;
+  height:200px;
+  overflow:auto;
 }
 
+.field-holder {
+  clear: both;
+}
+
+/* Boxes (top / middle / bottom)
+----------------------------------------------- */
+.box-surround {
+  margin-bottom: 1em;
+}
+
+.box-title-left {
+  background-image: url(../images/box-topleft.png);
+  background-repeat: no-repeat;
+  background-position: top left;
+}
+
+.box-title-right {
+  background-image: url(../images/box-topright.png);
+  background-repeat: no-repeat;
+  background-position: top right;
+}
+
+.box-title-content {
+  background-image: url(../images/box-grad.png);
+  margin: 0 0.5em;
+  padding: 0.2em 0.1em 0.1em;
+}
+
+.box-content {
+  background-image: url(../images/vert-grad.png);
+  padding: 0.5em;
+}
+
+.box-middle {
+  background-image: url(../images/box-grad.png);
+  margin: 0;
+  padding: 0.2em 0.5em 0.1em;
+}
+
+/* =ft (footer)
+----------------------------------------------- */
+#ft {
+  text-align:center;
+}

Added: trunk/gforge/www/themes/gforge/js/gforge.js
===================================================================
--- trunk/gforge/www/themes/gforge/js/gforge.js	                        (rev 0)
+++ trunk/gforge/www/themes/gforge/js/gforge.js	2010-02-10 08:37:43 UTC (rev 8763)
@@ -0,0 +1,9 @@
+function admin_window(adminurl) {
+	AdminWin = window.open( adminurl, 'AdminWindow','scrollbars=yes,resizable=yes, toolbar=yes, height=400, width=400, top=2, left=2');
+	AdminWin.focus();
+}
+
+function help_window(helpurl) {
+	HelpWin = window.open( helpurl,'HelpWindow','scrollbars=yes,resizable=yes,toolbar=no,height=400,width=600');
+}
+




More information about the Fusionforge-commits mailing list