[evolvis-commits] r11749: committing a simple xhtml compliant theme [T557] ↵
mirabilos at evolvis.org
mirabilos at evolvis.org
Thu Feb 24 18:23:48 CET 2011
Author: mirabilos
Date: 2011-02-24 18:23:48 +0100 (Thu, 24 Feb 2011)
New Revision: 11749
Added:
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/Theme.class
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/css/
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/css/gforge-simple-theme.css
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-grad.png
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topleft.png
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topright.png
trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/logo.png
Log:
committing a simple xhtml compliant theme [T557]
Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/Theme.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/Theme.class (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/Theme.class 2011-02-24 17:23:48 UTC (rev 11749)
@@ -0,0 +1,1056 @@
+<?php
+/**
+ * Base layout class.
+ *
+ * Extends the basic Error class to add HTML functions
+ * for displaying all site dependent HTML, while allowing
+ * extendibility/overriding by themes via the Theme class.
+ *
+ * Make sure browser.php is included _before_ you create an instance of this object.
+ *
+ * Geoffrey Herteg, August 29, 2000
+ *
+ * @version $Id$
+ */
+
+require_once ('www/search/include/SearchManager.class');
+
+class Theme extends Error {
+
+ /**
+ * The default main page content */
+ var $rootindex = 'index_std.php';
+
+ /*
+ * The root location of the theme
+ * @var string $themeroot
+ */
+
+ var $themeroot;
+ /**
+ * The root location for images
+ *
+ * @var string $imgroot
+ */
+
+ var $imgroot = '/themes/gforge/images/';
+
+ var $selected_title;
+
+ var $selected_dir;
+
+ var $selected_id;
+ /**
+ * Layout() - Constructor
+ */
+ function Layout() {
+
+ $this->themeroot=$GLOBALS['sys_themeroot'].$GLOBALS['sys_theme'];
+ /* if images directory exists in theme, then use it as imgroot */
+ if (file_exists ($this->themeroot.'/images')){
+ $this->imgroot='/themes/'.$GLOBALS['sys_theme'].'/images/';
+ }
+ // Constructor for parent class...
+ if ( file_exists($GLOBALS['sys_custom_path'] . '/index_std.php') )
+ $this->rootindex = $GLOBALS['sys_custom_path'] . '/index_std.php';
+ $this->Error();
+
+
+ }
+
+ /**
+ * createLinkToUserHome() - Creates a link to a user's home page
+ *
+ * @param string The user's user_name
+ * @param string The user's realname
+ */
+ function createLinkToUserHome($user_name, $realname) {
+ return '<a href="/users/'.$user_name.'/">'.$realname.'</a>';
+ }
+
+ /**
+ * headerStart() - common code for all themes
+ *
+ * @param array Header parameters array
+ */
+ function headerStart($params) {
+ global $Language;
+
+ if (!$params['title']) {
+ $params['title'] = $GLOBALS['sys_name'];
+ } else {
+ $params['title'] = $GLOBALS['sys_name'] . ': ' . $params['title'];
+ }
+ print '<?xml version="1.0" encoding="' . $Language->getEncoding(). '"?>';
+ ?>
+
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="<?php echo $Language->getLanguageCode(); ?>">
+
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $Language->getEncoding(); ?>" />
+ <title><?php echo $params['title']; ?></title>
+ <link rel="alternate" title="<?php echo $GLOBALS['sys_name']; ?> - Project News Highlights RSS" href="/export/rss_sfnews.php" type="application/rss+xml"/>
+ <link rel="alternate" title="<?php echo $GLOBALS['sys_name']; ?> - Project News Highlights RSS 2.0" href="/export/rss20_news.php" type="application/rss+xml"/>
+ <link rel="alternate" title="<?php echo $GLOBALS['sys_name']; ?> - New Projects RSS" href="/export/rss_sfprojects.php" type="application/rss+xml"/>
+
+ <?php if (isset($GLOBALS['group_id'])) {
+ $activity = '<link rel="alternate" title="' . $GLOBALS['sys_name'] . ' - New Activity RSS" href="/export/rss20_activity.php?group_id='.$GLOBALS['group_id'].'" type="application/rss+xml"/>';
+ echo $activity;
+ }
+ ?>
+<?
+
+/* check if a personalized css stylesheet exist, if yes include only
+ this stylesheet
+ new stylesheets should use the <themename>.css file
+*/
+$theme_cssfile=$GLOBALS['sys_themeroot'].$GLOBALS['sys_theme'].'/css/'.$GLOBALS['sys_theme'].'.css';
+if (file_exists($theme_cssfile)){
+echo '
+<link rel="stylesheet" type="text/css" href="/themes/'.$GLOBALS['sys_theme'].'/css/'.$GLOBALS['sys_theme'].'.css"/>';
+}
+?>
+
+ <script language="JavaScript" type="text/javascript">
+ <!--
+
+ 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=400');
+ }
+ // -->
+ <?php plugin_hook ("javascript",false) ; ?>
+ </script>
+<?php plugin_hook ('cssfile',$this); ?>
+
+</head>
+<?php
+
+ }
+
+ function header($params) {
+ global $Language;
+
+ $this->headerStart($params); ?>
+<body>
+
+
+
+<div id="container">
+<div id="logo">
+<h1><a href="/">Goto GForge</a></h1>
+<!--<a href="/"><img src="/themes/gforge-simple-theme/images/logo.png" border="0" margin="0" padding="0" valign="top"/></a>-->
+</div>
+ <div id="util">
+
+<?php if (session_loggedin()) {
+ ?>
+
+<a href="/account/logout.php"><?php echo $Language->getText('common','logout'); ?></a><br/>
+<a href="/account/"><?php echo $Language->getText('common','myaccount'); ?></a><br/>
+
+ <?php
+ } else {
+ ?>
+ <a href="/account/login.php"><?php echo $Language->getText('common','login'); ?></a><br/>
+ <a href="/account/register.php"><?php echo $Language->getText('common','newaccount'); ?></a>
+ <?php
+ }
+?>
+ </div>
+
+ <div id="content">
+<br/>
+<?php echo $this->searchBox();
+?>
+
+ </div>
+
+
+</div>
+
+<div id="gforge-top-navigation">
+<div id="gforge-toptab-nav">
+<?php echo $this->outerTabs($params);
+
+?>
+</div>
+</div>
+
+<?php
+if (isset($params['group']) && $params['group']) {
+ echo '<div id="gforge-secondlevel-nav">';
+ echo $this->projectTabs($params['toptab'],$params['group']);
+ echo '</div>';
+
+ }
+
+
+?>
+
+
+<div id="gforge-content">
+<div id="<?php echo "gforge-content-".$this->selected_id; ?>">
+<fieldset><legend><?php
+echo '<a href="'.$this->selected_dir.'">'.$this->selected_title.'</a>';
+?></legend>
+<?php
+}
+
+
+ function footer($params){
+ echo '</fieldset></div></div>';
+ $this->footerEnd($params);
+
+ }
+ function footerEnd($params) { ?>
+
+<!-- PLEASE LEAVE "Powered By GForge" on your site -->
+<div id="footer">
+<a href="http://gforge.org/"><img src="/images/pow-gforge.png" alt="Powered By GForge Collaborative Development Environment" border="0" /></a>
+</div>
+<?php
+ global $sys_show_source;
+ global $Language;
+ if ($sys_show_source) {
+ print '<a class="showsource" href="/source.php?file=' . getStringFromServer('SCRIPT_NAME') . '"> '.$Language->getText('source','show_source').' </a>';
+ }
+?>
+
+</body>
+</html>
+<?php
+
+ }
+
+ function getRootIndex() {
+ return $this->rootindex;
+ }
+
+ /**
+ * boxTop() - Top HTML box
+ *
+ * @param string Box title
+ * @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" width="100%" border="0">
+ <tr class="tableheading">
+ <td valign="top" align="right" width="10"><img src="'.$this->imgroot.'clear.png" width="10" height="20" alt="" /></td>
+ <td width="100%"><span class="titlebar">'.$title.'</span></td>
+ <td valign="top" width="10"><img src="'.$this->imgroot.'clear.png" width="10" height="20" alt=""/></td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <table cellspacing="2" cellpadding="2" width="100%" border="0" class="tablecontent">
+ <tr align="left">
+ <td colspan="2">
+
+ <!-- Box Top End -->';
+ }
+
+ /**
+ * boxMiddle() - Middle HTML box
+ *
+ * @param string Box title
+ * @param string The box background color
+ */
+ function boxMiddle($title) {
+ return '
+ <!-- Box Middle Start -->
+ </td>
+ </tr>
+ <tr align="center">
+ <td colspan="2"><span class="titlebar">'.$title.'</span></td>
+ </tr>
+ <tr align="left">
+ <td colspan="2">
+ <!-- Box Middle End -->';
+ }
+
+ /**
+ * 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 -->';
+ }
+
+ /**
+ * boxGetAltRowStyle() - Get an alternating row style for tables
+ *
+ * @param int Row number
+ */
+ function boxGetAltRowStyle($i) {
+ if ($i % 2 == 0) {
+ return 'class="altRowStyleEven"';
+ } else {
+ return 'class="altRowStyleOdd"';
+ }
+ }
+
+ /**
+ * listTableTop() - Takes an array of titles and builds the first row of a new table.
+ *
+ * @param array The array of titles
+ * @param array The array of title links
+ */
+ function listTableTop ($title_arr,$links_arr=false) {
+
+ $return = '
+ <div id="tabletop">
+ <table>
+ <thead><tr>';
+ $count=count($title_arr);
+ if ($links_arr) {
+ for ($i=0; $i<$count; $i++) {
+ $return .= '
+ <td><a href="'.$links_arr[$i].'">'.$title_arr[$i].'</a></td>';
+ }
+ } else {
+ for ($i=0; $i<$count; $i++) {
+ $return .= '
+ <td>'.$title_arr[$i].'</td>';
+ }
+ }
+ return $return.'</tr></thead>';
+
+
+}
+
+function listTableBottom() {
+ return '</table></td>
+ <!-- <td valign="top" align="right" width="10" background="'.$this->imgroot.'box-grad.png"><img src="'.$this->imgroot.'box-topright.png" width="10" height="75" alt=""/></td> -->
+ </tr></table></div>';
+ }
+
+
+ function outerTabs($params) {
+ global $Language,$sys_use_trove,$sys_use_snippet,$sys_use_people;
+
+ $selected=0;
+ $TABS_DIRS[]='/';
+ $TABS_IDS[]='home';
+ $TABS_TITLES[]=$Language->getText('menu','home');
+
+ $TABS_IDS[]='my';
+ $TABS_DIRS[]='/my/';
+ $TABS_TITLES[]=$Language->getText('menu','mypage');
+ if (strstr(getStringFromServer('REQUEST_URI'),'/my/') || strstr(getStringFromServer('REQUEST_URI'),'/account/') ) {
+ $selected=count($TABS_DIRS)-1;
+ }
+
+ if ($sys_use_trove) {
+ $thistab='softwaremap';
+ $TABS_IDS[]='softwaremap';
+ $TABS_DIRS[]='/'.$thistab.'/';
+ $TABS_TITLES[]=$Language->getText('menu','projectree');
+ if (strstr(getStringFromServer('REQUEST_URI'),$thistab)){
+ $selected=count($TABS_DIRS)-1;
+ }
+ }
+ if ($sys_use_snippet) {
+ $thistab='snippet';
+ $TABS_IDS[]=$thistab;
+ $TABS_DIRS[]='/'.$thistab.'/';
+ $TABS_TITLES[]=$Language->getText('menu','code_snippet');
+ if (strstr(getStringFromServer('REQUEST_URI'),$thistab)){
+ $selected=count($TABS_DIRS)-1;
+ }
+ }
+ if ($sys_use_people) {
+ $thistab='people';
+ $TABS_IDS[]=$thistab;
+ $TABS_DIRS[]='/'.$thistab.'/';
+ $TABS_TITLES[]=$Language->getText('menu','project_help_wanted');
+ if (strstr(getStringFromServer('REQUEST_URI'),$thistab)){
+ $selected=count($TABS_DIRS)-1;
+ }
+ }
+ // 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);
+
+ if (user_ismember(1,'A')) {
+ $thistab='admin';
+ $TABS_IDS[]=$thistab;
+ $TABS_DIRS[]='/'.$thistab.'/';
+ $TABS_TITLES[]=$Language->getText('menu',$thistab);
+ if (strstr(getStringFromServer('REQUEST_URI'),$thistab)){
+ $selected=count($TABS_DIRS)-1;
+ }
+
+ }
+ if (user_ismember($GLOBALS['sys_stats_group'])) {
+ $thistab='reporting';
+ $TABS_IDS[]=$thistab;
+ $TABS_DIRS[]='/'.$thistab.'/';
+ $TABS_TITLES[]=$Language->getText('menu',$thistab);
+ if (strstr(getStringFromServer('REQUEST_URI'),$thistab)){
+ $selected=count($TABS_DIRS)-1;
+ }
+ }
+
+ 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 {
+ $TABS_DIRS[]='/projects/'.$project->getUnixName().'/';
+ $TABS_TITLES[]=$project->getPublicName();
+ $selected=count($TABS_DIRS)-1;
+ }
+ }
+ } elseif (count($PLUGIN_TABS_DIRS)>0) {
+ foreach ($PLUGIN_TABS_DIRS as $PLUGIN_TABS_DIRS_VALUE) {
+ if (strstr($GLOBALS['REQUEST_URI'],$PLUGIN_TABS_DIRS_VALUE)) {
+ $selected=array_search($PLUGIN_TABS_DIRS_VALUE,$TABS_DIRS);
+ break;
+ }
+ }
+ }
+ $c=(count($TABS_TITLES)-1);
+ if(isset($params['group']) && $params['group']) {
+ /* project is selected */
+ $c--;
+ }
+ for ($i=0; $i<=$c; $i++) {
+ if ($selected == $i){
+ $this->selected_title = $TABS_TITLES[$i];
+ $this->selected_dir = $TABS_DIRS[$i];
+ $this->selected_id = $TABS_IDS[$i];
+
+ $return .= '<div id="gforge-selected" title="'.$TABS_TITLES[$i].'" >'.$TABS_TITLES[$i].'</div> <span>|</span>';
+ }
+ else{
+ $return .= '<a id="gforge-'.$TABS_IDS[$i].'" title="'.$TABS_TITLES[$i].'"
+href="'.$TABS_DIRS[$i].'">'.$TABS_TITLES[$i].'</a> <span>|</span>';
+ }
+ }
+ if(isset($params['group']) && $params['group']) {
+ $return.= '<div id="gforge-selected"> '.$TABS_TITLES[$i].'</div>';
+ $this->selected_title = $TABS_TITLES[$i];
+ }
+ return $return;
+}
+
+ /**
+ * projectTabs() - Prints out the project tabs, contained here in case
+ * we want to allow it to be overriden
+ *
+ * @param string Is the tab currently selected
+ * @param string Is the group we should look up get title info
+ */
+ function projectTabs($toptab,$group) {
+ global $Language;
+
+ // get group info using the common result set
+ $project =& group_get_object($group);
+ if (!$project || !is_object($project)) {
+ return;
+ }
+ if ($project->isError()) {
+ //wasn't found or some other problem
+ return;
+ }
+ if (!$project->isProject()) {
+ return;
+ }
+
+ $TABS_DIRS[]='/projects/'.$project->getUnixName().'/';
+ $TABS_TITLES[]=$project->getPublicName();
+
+ // Summary
+ $TABS_DIRS[]='/projects/'. $project->getUnixName() .'/';
+ $TABS_IDS[]='gforge-project-summary';
+ $TABS_TITLES[]=$Language->getText('group','short_summary');
+ (($toptab == 'home') ? $selected=(count($TABS_TITLES)-1) : '' );
+
+ if (user_ismember($group,'A')) {
+ // Project Admin
+ $TABS_DIRS[]='/project/admin/?group_id='. $group;
+ $TABS_IDS[]='gforge-project-admin';
+ $TABS_TITLES[]=$Language->getText('group','short_admin');
+ (($toptab == 'admin') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+ /* Homepage */
+/* $TABS_DIRS[]='http://'. $project->getHomePage();
+ $TABS_TITLES[]=$Language->getText('group','short_homepage');
+*/
+
+ // Forums
+ if ($project->usesForum()) {
+ $TABS_DIRS[]='/forum/?group_id='.$group;
+ $TABS_IDS[]='gforge-project-forum';
+ $TABS_TITLES[]=$Language->getText('group','short_forum');
+ (($toptab == 'forums') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // Artifact Tracking
+ if ($project->usesTracker()) {
+ $TABS_DIRS[]='/tracker/?group_id='.$group;
+ $TABS_IDS[]='gforge-project-tracker';
+ $TABS_TITLES[]=$Language->getText('group','short_tracker');
+ (($toptab == 'tracker' || $toptab == 'bugs' || $toptab == 'support' || $toptab == 'patch')
+ ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // Mailing Lists
+ if ($project->usesMail()) {
+ $TABS_DIRS[]='/mail/?group_id='.$group;
+ $TABS_IDS[]='gforge-project-mail';
+ $TABS_TITLES[]=$Language->getText('group','short_mail');
+ (($toptab == 'mail') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // Project Manager
+ if ($project->usesPm()) {
+ $TABS_IDS[]='gforge-project-task';
+ $TABS_DIRS[]='/pm/?group_id='.$group;
+ $TABS_TITLES[]=$Language->getText('group','short_pm');
+ (($toptab == 'pm') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // Doc Manager
+ if ($project->usesDocman()) {
+ $TABS_DIRS[]='/docman/?group_id='.$group;
+ $TABS_IDS[]='gforge-project-docman';
+ $TABS_TITLES[]=$Language->getText('group','short_docman');
+ (($toptab == 'docman') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // Surveys
+ if ($project->usesSurvey()) {
+ $TABS_DIRS[]='/survey/?group_id='.$group;
+ $TABS_IDS[]='gforge-project-survey';
+ $TABS_TITLES[]=$Language->getText('group','short_survey');
+ (($toptab == 'surveys') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ //newsbytes
+ if ($project->usesNews()) {
+ $TABS_IDS[]='gforge-project-news';
+ $TABS_DIRS[]='/news/?group_id='.$group;
+ $TABS_TITLES[]=$Language->getText('group','short_news');
+ (($toptab == 'news') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // SCM systems
+ if ($project->usesSCM()) {
+ $TABS_IDS[]='gforge-project-scm';
+ $TABS_DIRS[]='/scm/?group_id='.$group;
+ $TABS_TITLES[]=$Language->getText('group','short_scm');
+ (($toptab == 'scm') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // groupmenu_after_scm hook
+ $hookParams['DIRS'] = &$TABS_DIRS;
+ $hookParams['TITLES'] = &$TABS_TITLES;
+ $hookParams['toptab'] = &$toptab;
+ $hookParams['selected'] = &$selected;
+ $hookParams['group_id'] = $group ;
+
+ plugin_hook ("groupmenu_scm", $hookParams) ;
+
+ // Downloads
+ if ($project->usesFRS()) {
+ $TABS_IDS[]='gforge-project-frs';
+ $TABS_DIRS[]='/frs/?group_id='.$group;
+ $TABS_TITLES[]=$Language->getText('group','short_files');
+ (($toptab == 'frs') ? $selected=(count($TABS_TITLES)-1) : '' );
+ }
+
+ // groupmenu hook
+ $hookParams['DIRS'] = &$TABS_DIRS;
+ $hookParams['TITLES'] = &$TABS_TITLES;
+ $hookParams['toptab'] = &$toptab;
+ $hookParams['selected'] = &$selected;
+ $hookParams['group'] = $group;
+
+ plugin_hook ("groupmenu", $hookParams) ;
+
+ $return ='';
+ $c=(count($TABS_TITLES)-1);
+ for ($i=0; $i<=$c; $i++) {
+ if ($selected==$i){
+ $this->selected_title = $TABS_TITLES[$i];
+ $this->selected_dir = $TABS_DIRS[$i];
+ $this->selected_ids = $TABS_IDS[$i];
+ $return .= '<div id="gforge-selected" >'.$TABS_TITLES[$i].'</div> <span>|</span>';
+
+ }
+ else{
+ if ($TABS_IDS[$i]==''){
+ $return .= '<a id="gforge-project-std" title="'.$TABS_TITLES[$i].'" href="'.$TABS_DIRS[$i].'">'.$TABS_TITLES[$i].'</a> <span>|</span>';
+
+ }
+ else {
+ $return .= '<a id="'.$TABS_IDS[$i].'" title="'.$TABS_TITLES[$i].'" href="'.$TABS_DIRS[$i].'">'.$TABS_TITLES[$i].'</a> <span>|</span>';
+ }
+ }
+ }
+
+ return $return;
+ }
+
+
+ function searchBox() {
+ global $Language,$words,$forum_id,$group_id,$group_project_id,$atid,$exact,$type_of_search;
+
+ if(get_magic_quotes_gpc()) {
+ $defaultWords = stripslashes($words);
+ } else {
+ $defaultWords = $words;
+ }
+
+ // if there is no search currently, set the default
+ if ( ! isset($type_of_search) ) {
+ $exact = 1;
+ }
+
+ print '
+ <form action="/search/" method="get">';
+
+
+ $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
+ );
+
+ $searchManager =& getSearchManager();
+ $searchManager->setParametersValues($parameters);
+ $searchEngines =& $searchManager->getAvailableSearchEngines();
+ echo '<select name="type_of_search">';
+ for($i = 0, $max = count($searchEngines); $i < $max; $i++) {
+ $searchEngine =& $searchEngines[$i];
+ echo '<option value="'.$searchEngine->getType().'"'.( $type_of_search == $searchEngine->getType() ? ' selected="selected"' : '' ).'>'.$searchEngine->getLabel($parameters).'</option>'."\n";
+ }
+ echo '</select>';
+ $parameters = $searchManager->getParameters();
+ foreach($parameters AS $name => $value) {
+ print '<input type="hidden" value="'.$value.'" name="'.$name.'" />';
+ }
+
+ print '<input type="text" size="12" name="words" value="'.$defaultWords.'" />';
+
+
+ print '<input type="submit" name="Search" value="'.$Language->getText('searchbox','search').'" />';
+
+
+ if (isset($group_id)) {
+ print '
+
+ <a class="lnkutility" href="/search/advanced_search.php?group_id='.$group_id.'"> '.$Language->getText('searchbox', 'advanced_search').'</a>';
+ }
+ print '</form>';
+
+ }
+
+ function advancedSearchBox($sectionsArray, $group_id, $words, $isExact) {
+ global $Language;
+ // 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 />
+ <table border="0">
+ <tr>
+ <td colspan ="2">
+ <input type="text" size="60" name="words" value="'.stripslashes(htmlspecialchars($words)).'" />
+ <input type="submit" name="submitbutton" value="'.$Language->getText('advanced_search', 'search_button').'" />
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ <input type="radio" name="mode" value="'.SEARCH__MODE_AND.'" '.($isExact ? 'checked="checked"' : '').' />'.$Language->getText('advanced_search', 'and_search').'
+ </td>
+ <td>
+ <input type="radio" name="mode" value="'.SEARCH__MODE_OR.'" '.(!$isExact ? 'checked="checked"' : '').' />'.$Language->getText('advanced_search', 'or_search').'
+ </td>
+ </tr>
+ </table><br /></div>'
+ .$this->createUnderSections($sectionsArray).'
+ </form>';
+
+
+ //create javascript methods for select none/all
+ print '
+ <script type="text/javascript">
+ <!-- method for disable/enable checkboxes
+ function setCheckBoxes(parent, checked) {
+
+
+ for (var i = 0; i < document.advancedsearch.elements.length; i++)
+ if (document.advancedsearch.elements[i].type == "checkbox")
+ if (document.advancedsearch.elements[i].name.substr(0, parent.length) == parent)
+ document.advancedsearch.elements[i].checked = checked;
+ }
+ //-->
+ </script>
+ ';
+
+ }
+
+ function createUnderSections($sectionsArray) {
+ global $Language;
+ $countLines = 0;
+ foreach ($sectionsArray as $section) {
+ if(is_array($section)) {
+ $countLines += (3 + count ($section));
+ } else {
+ //2 lines one for section name and one for checkbox
+ $countLines += 3;
+ }
+ }
+ $breakLimit = round($countLines/3);
+ $break = $breakLimit;
+ $countLines = 0;
+ $return = '
+ <table width="100%" border="0" cellspacing="0" cellpadding="1">
+ <tr class="tableheader">
+ <td>
+ <table width="100%" cellspacing="0" border="0">
+ <tr class="tablecontent">
+ <!--<td colspan="2">'.$Language->getText('advanced_search', 'search_in').':</td-->
+ <td align="right">'.$Language->getText('advanced_search', 'select').' <a href="javascript:setCheckBoxes(\'\', true)">'.$Language->getText('advanced_search', 'all').'</a> / <a href="javascript:setCheckBoxes(\'\', false)">'.$Language->getText('advanced_search', 'none').'</a></td>
+ </tr>
+ <tr height="20" class="tablecontent">
+ <td colspan="3"> </td>
+ </tr>
+ <tr align="center" valign="top" class="tablecontent">
+ <td>';
+ foreach($sectionsArray as $key => $section) {
+ $oldcountlines = $countLines;
+ if (is_array($section)) {
+ $countLines += (3 + count ($section));
+ } 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
+ if ((($countLines - $break) >= ($break - $countLines)) && ((($break + $breakLimit)/$breakLimit) <= 3)) {
+ $return .= '</td><td>';
+ $break += $breakLimit;
+ }
+ }
+
+ $return .= '<table width="90%" border="0" cellpadding="1" cellspacing="0">
+ <tr><td><table width="100%" border="0" cellspacing="0" cellpadding="3">
+ <tr>
+ <td cellspacing="0">
+ <a href="#'.$key.'">'.$Language->getText('group', $key).'</a>'
+ .' </td>
+ <td align="right">'
+ .$Language->getText('advanced_search', 'select').' <a href="javascript:setCheckBoxes(\''.$key.'\', true)">'.$Language->getText('advanced_search', 'all').'</a> / <a href="javascript:setCheckBoxes(\''.$key.'\', false)">'.$Language->getText('advanced_search', 'none').'</a>
+ </td>
+ </tr>
+ <tr class="tablecontent">
+ <td colspan="2">';
+
+ if (!is_array($section)) {
+ $return .= ' <input type="checkbox" name="'.urlencode($key).'"';
+ if (isset($GLOBALS[urlencode($key)]))
+ $return .= ' checked="checked" ';
+ $return .= ' /></input>'.$Language->getText('group', $key).'<br />';
+ }
+ else
+ foreach($section as $underkey => $undersection) {
+ $return .= ' <input type="checkbox" name="'.urlencode($key.$underkey).'"';
+ if (isset($GLOBALS[urlencode($key.$underkey)]))
+ $return .= ' checked ';
+ $return .= '></input>'.$undersection.'<br />';
+
+ }
+
+ $return .= ' </td>
+ </tr>
+ </table></td></tr></table><br />';
+
+ if ($countLines >= $break) {
+ if (($countLines - $break) < ($break - $countLines)) {
+ $return .= '</td><td width="33%">';
+ $break += $breakLimit;
+ }
+ }
+ }
+
+ return $return.' </td>
+ </tr>
+ </table></td></tr></table>';
+ }
+
+ /**
+ * beginSubMenu() - Opening a submenu.
+ *
+ * @return string Html to start a submenu.
+ */
+ function beginSubMenu () {
+ $return = '
+ <p/><strong>';
+ return $return;
+ }
+
+ /**
+ * endSubMenu() - Closing a submenu.
+ *
+ * @return string Html to end a submenu.
+ */
+ function endSubMenu () {
+ $return = '</strong></p>';
+ return $return;
+ }
+
+ /**
+ * printSubMenu() - Takes two array of titles and links and builds the contents of a menu.
+ *
+ * @param array The array of titles.
+ * @param array The array of title links.
+ * @return string Html to build a submenu.
+ */
+ function printSubMenu ($title_arr,$links_arr) {
+ $count=count($title_arr);
+ $count--;
+
+ $return = '';
+
+ for ($i=0; $i<$count; $i++) {
+ $return .= '
+ <a href="'.$links_arr[$i].'">'.$title_arr[$i].'</a> | ';
+ }
+ $return .= '
+ <a href="'.$links_arr[$i].'">'.$title_arr[$i].'</a>';
+ return $return;
+ }
+
+ /**
+ * subMenu() - Takes two array of titles and links and build a menu.
+ *
+ * @param array The array of titles.
+ * @param array The array of title links.
+ * @return string Html to build a submenu.
+ */
+ function subMenu ($title_arr,$links_arr) {
+ $return = $this->beginSubMenu () ;
+ $return .= $this->printSubMenu ($title_arr,$links_arr) ;
+ $return .= $this->endSubMenu () ;
+ return $return;
+ }
+
+ /**
+ * multiTableRow() - create a mutlilevel row in a table
+ *
+ * @param string the row attributes
+ * @param array the array of cell data, each element is an array,
+ * the first item being the text,
+ * the subsequent items are attributes (dont include
+ * the bgcolor for the title here, that will be
+ * handled by $istitle
+ * @param boolean is this row part of the title ?
+ *
+ */
+ function multiTableRow($row_attr, $cell_data, $istitle) {
+ $return= '
+ <tr '.$row_attr;
+ if ( $istitle ) {
+ $return .=' align="center" class="multiTableRowTitle"';
+ }
+ $return .= '>';
+ for ( $c = 0; $c < count($cell_data); $c++ ) {
+ $return .='<td ';
+ for ( $a=1; $a < count($cell_data[$c]); $a++) {
+ $return .= $cell_data[$c][$a].' ';
+ }
+ $return .= '>';
+ if ( $istitle ) {
+ $return .='<span class="multiTableRowTitle">';
+ }
+ $return .= $cell_data[$c][0];
+ if ( $istitle ) {
+ $return .='</span>';
+ }
+ $return .= '</td>';
+
+ }
+ $return .= '</tr>
+ ';
+
+ return $return;
+ }
+
+ /**
+ * feedback() - returns the htmlized feedback string when an action is performed.
+ *
+ * @param string feedback string
+ * @return string htmlized feedback
+ */
+ function feedback($feedback) {
+ if (!$feedback) {
+ return '';
+ } else {
+ return '
+ <span class="feedback">'.strip_tags($feedback, '<br>').'</span>';
+ }
+ }
+
+ /**
+ * getThemeIdFromName()
+ *
+ * @param string the dirname of the theme
+ * @return integer the theme id
+ */
+ function getThemeIdFromName($dirname) {
+ $res=db_query("SELECT theme_id FROM themes WHERE dirname='$dirname'");
+ return db_result($res,0,'theme_id');
+ }
+
+ function quickNav() {
+ if (!session_loggedin()) {
+ return '';
+ } else {
+ $res=db_query("SELECT * FROM groups NATURAL JOIN user_group WHERE user_id='".user_getid()."' ORDER BY group_name");
+echo db_error();
+ if (!$res || db_numrows($res) < 1) {
+ return '';
+ } else {
+ $ret = '
+ <form name="quicknavform" action="" >
+ <select name="quicknav" onChange="location.href=document.quicknavform.quicknav.value">';
+ $ret .= '
+ <option value="">Quick Jump To...</option>';
+ for ($i=0; $i<db_numrows($res); $i++) {
+ $ret .= '
+ <option value="/projects/'.db_result($res,$i,'unix_group_name').'/">'.db_result($res,$i,'group_name').'</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A') {
+ $ret .= '
+ <option value="/project/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ //tracker
+ if (db_result($res,$i,'use_tracker')) {
+ $ret .= '
+ <option value="/tracker/?group_id='.db_result($res,$i,'group_id').'"> Tracker</option>';
+ if (db_result($res,$i,'admin_flags') || db_result($res,$i,'tracker_flags')) {
+ $ret .= '
+ <option value="/tracker/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //task mgr
+ if (db_result($res,$i,'use_pm')) {
+ $ret .= '
+ <option value="/pm/?group_id='.db_result($res,$i,'group_id').'"> Task Manager</option>';
+ if (trim(db_result($res,$i,'admin_flags')) =='A' || db_result($res,$i,'project_flags')) {
+ $ret .= '
+ <option value="/pm/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //FRS
+ if (db_result($res,$i,'use_frs')) {
+ $ret .= '
+ <option value="/frs/?group_id='.db_result($res,$i,'group_id').'"> Files</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A' || db_result($res,$i,'release_flags')) {
+ $ret .= '
+ <option value="/frs/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //SCM
+ if (db_result($res,$i,'use_scm')) {
+ $ret .= '
+ <option value="/scm/?group_id='.db_result($res,$i,'group_id').'"> SCM</option>';
+ /*if (db_result($res,$i,'admin_flags') || db_result($res,$i,'project_flags')) {
+ $ret .= '
+ <option value="/pm/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ } */
+ }
+ //forum
+ if (db_result($res,$i,'use_forum')) {
+ $ret .= '
+ <option value="/forum/?group_id='.db_result($res,$i,'group_id').'"> Forum</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A' || db_result($res,$i,'forum_flags')) {
+ $ret .= '
+ <option value="/forum/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //mail
+ if (db_result($res,$i,'use_mail')) {
+ $ret .= '
+ <option value="/mail/?group_id='.db_result($res,$i,'group_id').'"> Lists</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A') {
+ $ret .= '
+ <option value="/mail/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //doc
+ if (db_result($res,$i,'use_docman')) {
+ $ret .= '
+ <option value="/docman/?group_id='.db_result($res,$i,'group_id').'"> Docs</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A' || db_result($res,$i,'doc_flags')) {
+ $ret .= '
+ <option value="/docman/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //news
+ if (db_result($res,$i,'use_news')) {
+ $ret .= '
+ <option value="/news/?group_id='.db_result($res,$i,'group_id').'"> News</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A') {
+ $ret .= '
+ <option value="/news/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ //survey
+ if (db_result($res,$i,'use_survey')) {
+ $ret .= '
+ <option value="/survey/?group_id='.db_result($res,$i,'group_id').'"> Surveys</option>';
+ if (trim(db_result($res,$i,'admin_flags'))=='A') {
+ $ret .= '
+ <option value="/survey/admin/?group_id='.db_result($res,$i,'group_id').'"> Admin</option>';
+ }
+ }
+ }
+ $ret .= '
+ </select>
+ </form>';
+ }
+ }
+ return $ret;
+ }
+
+}
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
+?>
Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/css/gforge-simple-theme.css
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/css/gforge-simple-theme.css (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/css/gforge-simple-theme.css 2011-02-24 17:23:48 UTC (rev 11749)
@@ -0,0 +1,620 @@
+/*main styles*/
+html,body{margin: 0;padding:0}
+body{font-family: arial,sans-serif;font-size: 76%}
+
+A {
+ text-decoration: none;
+ color: CornFlowerBlue;
+}
+/* styles for header */
+div#container{ BACKGROUND-color:#204a87}
+
+div#container A{
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+ color: #eeeeec;
+}
+
+div#header{background-color:#36C;color: #ff0}
+
+
+div#logo{float: left;width: 200px;\width:210px;w\idth:210px;padding: 1em 0 0 10px;height: 52px;
+ BACKGROUND: url(/themes/gforge-simple-theme/images/logo.png) no-repeat; }
+
+div#logo H1 {
+ width: 200px;
+ PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px;
+ MARGIN: 0px; POSITION: top; HEIGHT: 52px;
+}
+
+div#logo H1 A {
+ width: 200px;
+ DISPLAY: block; TEXT-INDENT: -99em; HEIGHT: 52px;
+}
+
+
+div#util{float: right; width: 100px;\width:110px;w\idth:110px;padding: 1em 5px;
+text-transform: lowercase;
+FONT: 11px Lucida Grande, Tahoma, sans-serif;
+border: 0px;
+top-margin:0px;
+
+}
+
+
+
+div#toolscontent{margin: 0 210px;padding: 1em 10px}
+
+
+div#content{margin: 0 170px;padding: 1em 10px}
+
+
+/* style for footer */
+div#footer{clear:both; text-align:center; padding: 5px 0;
+ color: #000}
+
+
+
+/*
+
+FINE*/
+
+#contenitore{
+ width: 100%;
+ display: inline;
+ background-color: #204a87;
+
+}
+
+
+#gforge-top {
+ float:left;
+ width: 250px;
+ background-color: #204a87;
+BACKGROUND: url(/themes/gforge-simple-theme/images/logo.png) no-repeat;
+}
+
+/*
+<H1><a href="/">GForge</a></H1>
+*/
+
+
+#menudx{
+ text-transform: lowercase;
+ float:right;
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+ font-size:95%;
+ border: 0px;
+ background-color: #204a87;
+ color:#000;
+ top-margin:0px;
+ height: 52px;
+ float:right;
+ width: 10em;
+}
+
+#toputilities {
+ height: 52px;
+ float: left;
+ width: 60%;
+ background-color: #204a87;
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+
+}
+
+#toputilities FORM SELECT {
+ FONT: 10px Lucida Grande, Tahoma, sans-serif;
+
+
+}
+#toputilities TEXTAREA, INPUT, SELECT, OPTION{
+// background-color: #729fcf;
+// border: 2px;
+// border-color: green;
+ FONT: 9px Lucida Grande, Tahoma, sans-serif;
+
+
+}
+
+#toputilities A{
+ color: white;
+}
+
+
+#topempty {
+ height: 52px;
+ float: right;
+ width: 35em;
+ background-color: #204a87;
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+
+}
+
+
+
+#menudx a{
+ color: #eeeeec;
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+
+
+}
+
+
+/* TODO:
+
+copy gforge-compat.css styles and personalize them.
+*/
+ at import url(/themes/gforge-simple-theme/css/base.css);
+
+#gforge-header {
+ width: 100%;
+ display: inline;
+ height: 52px;
+ background-color: #00004e;
+ width: 85%;
+}
+
+#gforge-top {
+ BACKGROUND-color:#00004e; ; MARGIN-BOTTOM: 0px; OVERFLOW: hidden; HEIGHT: 52px; width: 185px;
+ FLOAT: left;
+}
+
+
+#gforge-top H1 {
+ PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px;
+ BACKGROUND: url(/themes/gforge-simple-theme/images/logo.png) no-repeat; MARGIN: 0px; POSITION: top; HEIGHT: 52px;
+}
+#gforge-top H1 A {
+ DISPLAY: block; BACKGROUND: url(images/logo.png) no-repeat; WIDTH: 498px; TEXT-INDENT: -99em; HEIGHT: 52px;
+}
+
+#gforge-utility {
+
+text-transform: lowercase;
+float:right;
+FONT: 11px Lucida Grande, Tahoma, sans-serif;
+font-size:95%;
+width:15%;
+border: 1px solid #669;
+background-color: #ededed;
+color:#000;
+top-margin:0px;
+}
+
+
+
+#footer {
+ width: 100%;
+
+
+}
+
+/** NAVIGATION **/
+
+div#gforge-top-navigation{
+BACKGROUND-color:#3465a4;}
+
+
+/* OUTER TABS */
+
+/* first level navigation (usually main tabs) */
+
+
+
+
+
+
+#gforge-toptab {
+ margin: 10px auto;
+ background-color: blue;
+ }
+
+
+
+#gforge-toptab-nav {
+ FLOAT: right; BACKGROUND-color:#3465a4; MARGIN: 0px; HEIGHT: 34px;
+}
+#gforge-toptab-nav A {
+ FLOAT: left; FONT: 11px/34px Lucida Grande, Tahoma, sans-serif; TEXT-TRANSFORM: lowercase; COLOR: #eee; TEXT-DECORATION: none;
+}
+
+#gforge-toptab-nav A:hover {
+ LINE-HEIGHT: 24px
+}
+
+#gforge-toptab-nav A#gforge-home:hover {
+ BORDER-TOP: #8ae234 5px solid
+}
+
+#gforge-toptab-nav A#gforge-my:hover {
+ BORDER-TOP: #fce94f 5px solid
+}
+#gforge-toptab-nav A#gforge-reporting:hover {
+ BORDER-TOP: #fcaf3e 5px solid
+}
+#gforge-toptab-nav A#gforge-admin:hover {
+ BORDER-TOP: #e9b96e 5px solid
+}
+#gforge-toptab-nav A#gforge-people:hover {
+ BORDER-TOP: #8ae234 5px solid
+}
+#gforge-toptab-nav A#gforge-softwaremap:hover {
+ BORDER-TOP: #ad7fa8 5px solid
+}
+#gforge-toptab-nav A#gforge-snippet:hover {
+ BORDER-TOP: #ef2929 5px solid
+}
+
+
+#gforge-toptab-nav #gforge-selected {
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+ color:white;
+ background-color: #c4a000;
+ height: 34px;
+ line-height: 24px;
+ FLOAT: left; FONT: 11px/34px Lucida Grande, Tahoma, sans-serif; TEXT-TRANSFORM: lowercase; TEXT-DECORATION: none
+
+}
+/* does not work*/
+#gforge-toptab-nav SPAN {
+ DISPLAY: block; BACKGROUND-image: url(/themes/gforge-simple-theme/images/top-sep.gif) no-repeat center top; FLOAT: left; MARGIN: 0px 6px; OVERFLOW: hidden; WIDTH: 1px; CURSOR: default; TEXT-INDENT: -5em; HEIGHT: 34px
+}
+
+
+/* END OUTER TABS */
+
+
+/* PROJECT TABS */
+
+#gforge-secondlevel-nav {
+ FLOAT: right; BACKGROUND-color:#729fcf; MARGIN: 0px; HEIGHT: 34px;
+
+}
+
+#gforge-secondlevel-nav A {
+ FLOAT: left; FONT: 11px/34px Lucida Grande, Tahoma, sans-serif; TEXT-TRANSFORM: lowercase; COLOR: #eee; TEXT-DECORATION: none
+}
+
+#gforge-secondlevel-nav A:hover {
+ LINE-HEIGHT: 24px
+}
+
+
+#gforge-secondlevel-nav A#gforge-project-summary:hover {
+ BORDER-TOP: #c4a000 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-admin:hover {
+ BORDER-TOP: #ce5c00 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-forum:hover {
+ BORDER-TOP: #8f5902 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-tracker:hover {
+ BORDER-TOP: #4e9a06 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-mail:hover {
+ BORDER-TOP: #204a87 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-task:hover {
+ BORDER-TOP: #5c3566 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-docman:hover {
+ BORDER-TOP: #a40000 5px solid
+}
+
+#gforge-secondlevel-nav A#gforge-project-survey:hover {
+ BORDER-TOP: #73d216 5px solid
+}
+
+#gforge-secondlevel-nav A#gforge-project-news:hover {
+ BORDER-TOP: #c17d11 5px solid
+}
+
+#gforge-secondlevel-nav A#gforge-project-scm:hover {
+ BORDER-TOP: #fcaf3e 5px solid
+}
+#gforge-secondlevel-nav A#gforge-project-plugin:hover {
+ BORDER-TOP: #edd400 5px solid
+}
+
+#gforge-secondlevel-nav A#gforge-project-frs:hover {
+ BORDER-TOP: #a40000 5px solid
+}
+
+#gforge-secondlevel-nav #gforge-selected {
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+ color:white;
+ background-color: #75507b;
+ height: 34px;
+ line-height: 24px;
+ FLOAT: left; FONT: 11px/34px Lucida Grande, Tahoma, sans-serif; TEXT-TRANSFORM: lowercase; COLOR: #eee; TEXT-DECORATION: none
+
+}
+
+
+
+#gforge-secondlevel-nav SPAN {
+ DISPLAY: block; BACKGROUND: url(images/top-sep.gif) no-repeat center top; FLOAT: left; MARGIN: 0px 6px; OVERFLOW: hidden; WIDTH: 1px; CURSOR: default; TEXT-INDENT: -5em; HEIGHT: 34px
+}
+
+
+
+
+
+
+
+
+
+
+
+
+/* END PROJECT TABS */
+
+
+
+#gforge-content{
+ width: 100%;
+ FONT: 11px Lucida Grande, Tahoma, sans-serif;
+ float: right;
+ margin: 0px;
+ padding: 0px;
+
+ }
+
+/* from base.css */
+
+.altRowStyleEven {
+ background-color: #EAEAEA;
+ font-weight: none
+ }
+
+.altRowStyleOdd {
+ background-color: #E0E0E0;
+ font-weight: none
+}
+
+
+/* definition for content table */
+.tableheading {
+ background-color:#D0D0D0;
+ text-align: center;
+ font-weight: bold;
+ }
+
+.tablecontent {
+ font-size: 11px;
+ background-color: #eeeeee
+
+ }
+
+.tablegetmore {
+ background-color: #EAEAEA
+ }
+
+div#tabletop {
+ width: 950px;
+ background-image: url(/themes/gforge-simple-theme/images/box-grad.png);
+}
+
+div#tabletop TABLE{
+ width: 950px;
+}
+div#tabletop THEAD{
+ text-align: center;
+ font-weight: bold;
+ border: 0px;
+ padding: 0px;
+ margin: 0px;
+}
+
+div#tabletop THEAD A{
+ color: black;
+}
+
+div#tabletop THEAD TD{
+ color: #00004a;
+}
+
+div#tabletop TBODY{
+ background-color: #eeeeee;
+}
+
+
+
+div#gforge-content-snippet {
+
+}
+div#gforge-content-softwaremap {
+
+}
+
+
+/* priority styles */
+.priority1 { background-color: #dadada}
+.priority2 { background-color: #dacaca}
+.priority3 { background-color: #dababa}
+.priority4 { background-color: #daaaaa}
+.priority5 { background-color: #da8a8a}
+
+
+/* START */
+
+/* Default stylesheet for gforge
+
+
+/* end form elements */
+
+STRONG {font-weight: bold}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-weight:none;
+ padding:0;
+}
+
+H1 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: x-large
+ }
+H2 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: large
+ }
+H3 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: medium
+ }
+
+H4 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: small
+ }
+
+H5 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: x-small
+ }
+
+H6 {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: xx-small
+ }
+
+
+
+.titlebar {
+ FONT-SIZE:11px;
+ color: black;
+ text-decoration: none;
+ }
+
+.develtitle {
+ FONT-SIZE: 11px;
+ COLOR: #535c5f;
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ }
+
+
+/* styles for prev next up and down*/
+.prev, .next, up, down {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ font-size: small;
+ text-decoration: bold
+ }
+
+/* top */
+.up {
+ color: #009900
+ }
+
+.down {
+ color: #CC0000
+ }
+
+/* global styles */
+
+/* style for error messages
+ Use this style if you need to display an error, e.g:
+ User does not exist
+*/
+.error {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ color: red;
+ text-decoration: bold;
+ font-size: 14px;
+}
+
+/* style for warning messages
+ Use this style if you need to display a warning*/
+
+.warning {
+ font-family: Lucida Grande, Tahoma, sans-serif;
+ color: red:
+ text-decoration: none
+ }
+
+/* style for feedback
+ Use this style to tell the user that the operation he
+ requested was executed successfully, e.g:
+ User was successfully registered
+*/
+.feedback {
+ color: red;
+ font-size: 13px;
+ text-align: center;
+ text-decoration: none
+ border: 1px #0ac solid;
+ }
+
+/* style for attention
+ Use this if you wish to display important messages
+ within a text.
+ Note that once registered, the project cannot be deleted
+*/
+
+.important {
+ color: red;
+ font-weight: bold
+ }
+
+
+.veryimportant {
+ color: red;
+ font-weight: bold;
+ font-size: large;
+ text-align: center
+ }
+
+
+/* the following style are for displaying items in different states */
+
+.active {
+ background-color: #73d216;
+ text-decoration: none;
+ font-weight: normal
+ }
+
+.inactive {
+ background-color: #c17d11;
+ }
+
+.deleted {
+ background-color: #cc0000;
+ color: white;
+ }
+
+.suspended {
+
+ background-color: #edd400;
+ }
+
+.pending {
+ background-color: #f57900;
+ }
+
+/* the following style is used when a word or an item should be highlighted; e.g.
+ selected release or words in the advanced search */
+
+.selected {
+ background-color: pink
+ }
+
+/* style for required fields */
+.requiredfield {
+ color: red;
+ font-weight: bold
+ }
+
+
+.bookmark {
+ font-size: 10px;
+}
+
+/* END*/
+
+fieldset {
+
+}
+legend {
+ font-size: 12px;
+}
+
Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-grad.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-grad.png (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-grad.png 2011-02-24 17:23:48 UTC (rev 11749)
@@ -0,0 +1,5 @@
+PNG
+
+
+IHDR Ð
Y pHYs ÒÝ~ü tIMEÔ (Öþó gIDATxíË¡ 1îþ[ù± uî[3É«Êÿî?ÀÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌüÙ
+<² IEND®B`
\ No newline at end of file
Property changes on: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-grad.png
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topleft.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topleft.png (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topleft.png 2011-02-24 17:23:48 UTC (rev 11749)
@@ -0,0 +1,6 @@
+PNG
+
+
+IHDR
+ K ÆT# pHYs ÒÝ~ü tIMEÔ 22á6È ©IDATxíÍË
+0
á÷9 ¸p
%ÔéFZëeºè¢P2Û/bf¼_±ª*çÜ8t°º®ó<6j_EaÝ¿¦}W¥Rê½÷Zë½ØeNG ú¾ïºînÜ4Í¥ fvÎÝrÛ¶«Ãp i$!H<ϳ´½®«ThY[ffiûÃçß±0üãmÉ'N8ñßðÛQxV9 IEND®B`
\ No newline at end of file
Property changes on: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topleft.png
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topright.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topright.png (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topright.png 2011-02-24 17:23:48 UTC (rev 11749)
@@ -0,0 +1,7 @@
+PNG
+
+
+IHDR
+ K ÆT# pHYs #½u tIMEÔ -Ähþ ³IDATxíÏ1
+0
á(Øx [±Îá=E$Øcá.ììüíGæ¬ë:Ïó¢(ªªÊ²¾KhGuY¬ð 4MÓ÷ý=_
+Ã0MS±m["zñm]×_#¢sÎ{dD4ÆH<Ï33§J)dM¯ß¶,ÄëºJ¼m´½ï»ôú8@â$I¤mf~pü¶´-YäÈ#Gþ>Ò{Eyï« IEND®B`
\ No newline at end of file
Property changes on: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/box-topright.png
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/logo.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/logo.png (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-simple-theme/images/logo.png 2011-02-24 17:23:48 UTC (rev 11749)
@@ -0,0 +1,22 @@
+PNG
+
+
+IHDR Æ 4 æ·} ´PLTE ïïï÷÷÷ççïïï÷÷÷ÿÖÖÞÞÞçÎÎÞÖÖçÞÞïÆÆÖ½½ÎÆÆÞ½½ÖµµÎ¥¥½Æµ¥¥Æ½µ¥{{µ{{¥sskkcckkccZZRRJJ{RRBBsJJBB{99k99s11k11s))c))k!!Z!!cRZcJRZJR 1 9 B J/¤úØ <tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ »ë§ bKGD;9ôl pHYs H H FÉk> ¤IDATxÚÝZwH?
+ j£$U
+j)92üÿÿ×-ì,ìÚ\ûîÅvÌË3°óïÙÍ_ÅA}4ÿ' à£9üi ëØædbÖ*,~ PÄ«FRíß IÀÙ!DÚ/J²·ýúi¤b²;"ÃdAîøúDé#ÑrJÜ·H0`?%Ú:Ê%!O·}|×%ÂFìSWì É+þh^ß(¯~' tbÆ÷«l¶ÍIüMÈ$¹[5ðW³Yú6deú«Ä±þ»üRdxÿd"¼æõô·¹eÖ¯9hL^Z»ÈÔåⷨȻÌÜÅäuËÞ]kmXÄF¡8Ú:O~ÊxyÁ
`G´HXή»>n(íV\\s¨«êp²:µYñI^ô`(¢õt¬ªºn<ídw
cß®#÷ÎYÌf
+IÝr|sò$,¯Lf?F-aI ;-ÍnZ)LÖ×¢Ovv]A#5ÉyÒ&1_Ç$6¤k¥µD_
AËIËÓ~»®®Ã1Röí¤.Í2θyF
+ &Ú¦ÀJ6ÁÎÎd!v`,é°(ÉôrèJcç×µY=KèÄ»0k½úØóÉùòª6 RÔ76îßa´
+#oÁU£øåyίÃà±`Ö+&íôÀ g>Ùì\áoOæM\uhM«Ò2jCòÌy¨ÜÁªøNËOÕ
+lùæ!Ä·¹ÔÚBªK.{}å£4pXÏ0\qp£³MÃcÜD*ùNîÖ¨r`Ompt,ûp9«:ÀAÅ5"Ʋ¶Ø7Ô¿ò9g¿Ð÷ÓuÚñrñfÛ
+F¦£Ñà.p¾Ô¤cDÏLÉ!oÁXËY!A/õÀ¶aÏ ÁÐË»ìÝ
+ÝàäÏu*>9^!D9î®´+¡#)®31²ïÈÁ² CÜ6W5пÅ6gTYzi4c¡Õ-IJ«¾]+ °ø¾¿+ª_S3²P¥õãº
+c¶WÉ¥"!§CôÀ,³¤
+ô$G,Fgppm8Ò®z°H£2[@ÖÊXðɲ
+Ó¸J.pÄÐ{c*ØH0¨oÐÊ å¿^Y8PQoÝ^«ßîæ"iÓ0`X·Ef
+¬®Á`ÒÊ«";a8ñHD¡÷Ê®löhqdr&þÒc$°6©-êÙÿüÖ-4:0>®ÝJæ`3¥õ UÓõuiD%ÐÍå'·ë-mÜ!iC 5È0Ò.%ì×F*hcJGÌ7X´ÔãkÓßÈÉXò
+4L·jòÁ´1`d½0AcCÛNñ¼·õ«G{QÏeÞh§?«ìmwP \Ðx|úsS¦ñÉÌS²É@- ©¤]YaºÆzþÞ4V6W;S~îdñ\êã¸/Í
¼áJå0£fdfxà ¤3ëìBÒ¼+¯©XYç¶aó ÓÆL:5U;cU¤Ô±¾> Få,>äͦ³&K9F|^t]ÏâqÓOÑçX¯N?gÚrðË
+eWϼ#Äê7bA!ÁÐ"ÈH\/
+d#ÔTФFfTt(VâõicÅqp_d!¤ºÐþ]Ѹ¾æÆIÅ7¢ãÛ\øíR¬ÿa&?ÉÂa,"¤K6S\æS@ô&n±¦ÚÑíþÚ0¨kÖÑejOüF漦Hk?áQÖØìà°@4.¾NÛ´zñÄà è[_ÛÂvËøïÑ×ξ"°jqYúiMÒâ ¸ÝÚðâèt /
VµÞQ͵i @(
+¹ðæ¥×#'}2®òJ¡ØHI×iÑ78ïAeÑÎÓ££ØÐ40j¦Ó!ð;§ÏÍ¡Û^¼2A÷ s
+í`ìðfâ/òe¹¬º0Ê@-VúR>§b«ÅeÔÀ@D×Ä©Ä._t Ú Bm"=¼í6ËÕzÔç¨@3-EÃÎz´èÏ®ÿ>ó¬ò¦¨CÓmÓÃÚ*'ÎËÇVßÇ
(¡óÂÔ'OÁáç?£´|½Íîb]Bl£u3×µ×Nas¸»Äw^1WÉsyirò)k¯ßsª×â5Í:óàdÑùÃתù<Sgsß9[¼¦)+ªÙ[ÏDH·*Þñ-Më
+óeL´DBMâH#s¿w49´opC´
Ê(.Þuï7º-ßÓì§ÙÏ *Ëq»rF4^nüçÿ ¥ÏeúÑT]ÕÀÄï[Eïÿ dç¥mu]MæÞå×îï>ò£»¹û¢?úÿ©~;úC`üfÏ×÷ tEXtSoftware gif2png 2.4.6¤3 IEND®B`
\ No newline at end of file
More information about the evolvis-commits
mailing list