Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 157939
Collapse All | Expand All

(-)includes/footer.php (-12 / +3 lines)
Lines 1-12 Link Here
1
<?php include $pre."includes/nav.php"; ?>
1
<?php
2
2
/* no longer used */
3
<p>
3
?>
4
	<a href="http://www.eclipse.org/emft">EMFT Home</a> |
5
	<a href="http://www.eclipse.org/emf/emf.php">EMF Home</a> |
6
	<a href="#top">Top of Page</a>
7
</p>
8
9
<!-- wrapper for left nav -->
10
</td></tr></table>
11
12
</body></html>
(-)includes/header.php (-71 / +7 lines)
Lines 1-73 Link Here
1
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
1
<?php
2
<?php include_once $pre."includes/php42fix.php"; 
2
	include_once $pre . "includes/scripts.php"; 
3
		include_once $pre."includes/scripts.php"; 
3
	$WWWpre = "http://www.eclipse.org/emft/";
4
		$WWWpre = "http://www.eclipse.org/emft/";
4
	$WWWprePhysical = "/home/data/httpd/www.eclipse.org/html/emft/";
5
		$WWWprePhysical = "/home/data/httpd/www.eclipse.org/html/emft/";
6
5
7
		$isEMFserver = (false!==strpos($SERVER_NAME,"emf"));
6
	$isEMFserver = (preg_match("/emf/", $_SERVER["SERVER_NAME"]));
8
		$isWWWserver = ($SERVER_NAME=="www.eclipse.org"||$SERVER_NAME=="eclipse.org");	
7
	$isWWWserver = (preg_match("/^(?:www.|)eclipse.org$/", $_SERVER["SERVER_NAME"]));
9
		$isEclipseCluster = ($SERVER_NAME=="www.eclipse.org"||$SERVER_NAME=="eclipse.org"||$SERVER_NAME=="download.eclipse.org"||$SERVER_NAME=="download1.eclipse.org"); 
8
	$isEclipseCluster = (preg_match("/^(?:www.||download.|download1.)eclipse.org$/", $_SERVER["SERVER_NAME"]));
10
?>
9
?>
11
<html>
12
<head>
13
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
14
   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">
15
   <title><?php if (!$HTMLTitle) { echo "Eclipse Tools - EMF Technologies - $scn"; } else { echo $HTMLTitle; } ?></title>
16
   <link REL="SHORTCUT ICON" HREF="http://www.eclipse.org/emft/images/eclipse-icons/eclipse32.ico">
17
	<script type="text/javascript" src="http://www.eclipse.org/emft/includes/nav.js"></script>
18
	<link rel="stylesheet" href="http://www.eclipse.org/emft/includes/style.css" type="text/css">
19
	<!-- $Id: header.php,v 1.5 2006/04/10 17:01:01 nickb Exp $ -->
20
	<!-- PHP version: <?php echo phpversion(); ?> -->
21
	<!-- Server Name: <?php echo $SERVER_NAME; ?> -->
22
</head>
23
<body>
24
<?php if (!$noHeader) { ?>
25
	<link rel="stylesheet" href="http://www.eclipse.org/emft/includes/tooltip.css" type="text/css"/>
26
	<div id="dhtmltooltip"></div>
27
	<script type="text/javascript" src="http://www.eclipse.org/emft/includes/tooltip.js"></script>
28
<!-- wrapper for left nav -->
29
<table cellspacing="0" cellpadding="0" border="0" width="100%">
30
	<tr valign="top"><td colspan="1" align="left" width="100%">
31
    <table border="0" cellspacing="0" cellpadding="0" WIDTH="100%" BGCOLOR="#006699" >
32
33
     <tr>
34
          <td BGCOLOR="#000000" width="116" ><a name="top"></a><a href="http://www.eclipse.org" target="_top"><img src="http://www.eclipse.org/images/EclipseBannerPic.jpg" width="115" height="50" border="0"/></a></td>
35
          <td WIDTH="637"><img SRC="http://www.eclipse.org/images/gradient.jpg" border="0" height="50" width="282"/></td>
36
          <td WIDTH="250"><img src="http://www.eclipse.org/images/eproject-simple.GIF" width="250" height="48"/></td>
37
     </tr>
38
    </table>
39
   </td>
40
  </tr>
41
</table>
42
<table cellspacing="0" cellpadding="0" border="0">
43
	<tr valign=top>
44
		<td align=left width=115 bgcolor="#6699CC"><?php foreach (getFile("includes/nav.html") as $line) { echo $line; } ?></td>
45
		<td><img src="http://www.eclipse.org/emf/images/c.gif" border="0" width="3" height="1"></td><td align="left" width="100%">
46
&#160;
47
<table border="0" cellpadding="2" width="100%">
48
  <tbody>
49
50
    <tr>
51
      <td align="left" width="60%">
52
        <font class="indextop"><?php if (!$ProjectName[0]) { echo "EMFT"; } else { echo $ProjectName[0]; } ?></font><br>
53
        <font class="indexsub"><?php if (!$ProjectName[1]) { echo "Eclipse Modeling Framework Technologies"; } else { echo $ProjectName[1]; } ?></font>
54
      </td>
55
      <td width="40%">
56
        <img src="<?php if (!$ProjectName[3]) { echo "http://www.eclipse.org/emf/images/c.gif"; } else { echo (strstr($ProjectName[3],$WWWpre)?$ProjectName[3]:$WWWpre.$ProjectName[3]); } ?>" align="right"/>
57
      </td>
58
59
    </tr>
60
  </tbody>            
61
</table>
62
63
<table BORDER=0 CELLPADDING=2 WIDTH="100%" >
64
<tr>
65
<td ALIGN=LEFT VALIGN=TOP BGCOLOR="#0070A0"><b><font face="Arial,Helvetica"><font color="#FFFFFF"><?php if (!$ProjectName[2]) { echo "Eclipse Modeling Framework Technologies"; } else { echo $ProjectName[2]; } ?></font></font></b><a name="top">&#160;</a></td>
66
</tr>
67
</table>
68
<table BORDER=0 CELLPADDING=2 WIDTH="100%" >
69
<tr>
70
<td ALIGN=right VALIGN=TOP><b><font face="Arial,Helvetica"><small><a href="#quicknav">Quick Nav</a></small></td>
71
</tr>
72
</table>
73
<?php } // end if $noHeader ?>
(-)includes/nav.html (-98 lines)
Lines 1-248 Link Here
1
<!-- not really XML, but designed to be embedded as XML, not HTML -->
2
<div>
3
<table border="0" cellspacing="0" cellpadding="0" BGCOLOR="#90C8FF" width="116">
4
  <!-- common links - both projects -->
5
  <tr>
6
    <td valign="CENTER" height="21" BGCOLOR="#0080C0">&#160; <a href="http://www.eclipse.org/emft" target="_top" class="navhead">EMFT home</a></td>
7
8
  </tr>
9
10
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
11
  <tr valign="CENTER">
12
    <td valign="CENTER" height="21">
13
      &#160; <a href="http://www.eclipse.org/emft/projects/eodm/" target="_top" class="nav"><i class="nav" style="color:#555555">eodm</i></a>
14
    </td>
15
  </tr>
16
17
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
18
  <tr valign="CENTER">
19
    <td valign="CENTER" height="21">
20
      &#160; <a href="http://www.eclipse.org/emft/projects/jet/" target="_top" class="nav"><i class="nav" style="color:#555555">jet</i></a>,
21
      <a href="http://www.eclipse.org/emft/projects/jeteditor/" target="_top" class="nav"><i class="nav" style="color:#555555">editor</i></a>
22
    </td>
23
  </tr>
24
25
26
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
27
  <tr valign="CENTER">
28
    <td valign="CENTER" height="21">
29
      &#160; <a href="http://www.eclipse.org/emft/projects/net4j/" target="_top" class="nav"><i class="nav" style="color:#555555">net4j</i></a>,
30
      <a href="http://www.eclipse.org/emft/projects/cdo/" target="_top" class="nav"><i class="nav" style="color:#555555">cdo</i></a>
31
    </td>
32
  </tr>
33
34
35
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
36
  <tr valign="CENTER">
37
    <td valign="CENTER" height="21">
38
      &#160; <a href="http://www.eclipse.org/emft/projects/ocl" target="_top" class="nav"><i class="nav" style="color:#555555">ocl</i></a>
39
    </td>
40
  </tr>
41
42
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
43
  <tr valign="CENTER">
44
    <td valign="CENTER" height="21">
45
      &#160; <a href="http://www.eclipse.org/emft/projects/query" target="_top" class="nav"><i class="nav" style="color:#555555">query</i></a>
46
    </td>
47
  </tr>
48
49
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
50
  <tr valign="CENTER">
51
    <td valign="CENTER" height="21">
52
      &#160; <a href="http://www.eclipse.org/emft/projects/transaction" target="_top" class="nav"><i class="nav" style="color:#555555">transaction</i></a>
53
    </td>
54
  </tr>
55
56
<tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
57
  <tr valign="CENTER">
58
    <td valign="CENTER" height="21">
59
      &#160; <a href="http://www.eclipse.org/emft/projects/validation" target="_top" class="nav"><i class="nav" style="color:#555555">validation</i></a>
60
    </td>
61
  </tr>
62
63
  <tr><td bgcolor="#CFFFFF" width="116" height="1"></td></tr>
64
  <tr valign="CENTER">
65
    <td valign="CENTER" height="21">
66
      &#160; <a href="http://download.eclipse.org/technology/emft/downloads/" class="nav">Downloads</a>
67
    </td>
68
  </tr>
69
70
  <tr>
71
    <td bgcolor="#CFFFFF" width="116" height="1"></td>
72
  </tr>
73
  <tr valign="CENTER">
74
    <td valign="CENTER" height="21">&#160; <a href="http://download.eclipse.org/technology/emft/updates/" class="nav">Update Manager</a></td>
75
  </tr>
76
77
  <!--
78
  <tr>
79
    <td bgcolor="#CFFFFF" width="116" height="1"></td>
80
  </tr>
81
  <tr valign="CENTER">
82
    <td valign="CENTER" height="21">
83
      &#160; <a href="http://www.eclipse.org/emft/docs.php" class="nav">Documentation</a><br/>
84
85
    </td>
86
  </tr>
87
88
  <tr>
89
    <td bgcolor="#CFFFFF" width="116" height="1"></td>
90
91
  </tr>
92
  <tr valign="CENTER">
93
    <td valign="CENTER" height="21">
94
      &#160; <a href="http://www.eclipse.org/emft/faq/faq.php" class="nav">FAQs</a>
95
96
    </td>
97
  </tr>
98
(-)includes/nav.js (-4 / +1 lines)
Lines 1-4 Link Here
1
function goBugzLink() {
1
/* no longer used */
2
	var collist = "%26query_format%3Dadvanced&column_changeddate=on&column_bug_severity=on&column_priority=on&column_rep_platform=on&column_bug_status=on&column_product=on&column_component=on&column_version=on&column_target_milestone=on&column_short_short_desc=on&splitheader=0";
3
	document.location.href='https://bugs.eclipse.org/bugs/colchange.cgi?rememberedquery=product%3DEMFT%26bug_status%3DNEW%26bug_status%3DASSIGNED%26bug_status%3DREOPENED%26order%3Dbugs.bug_status%2Cbugs.target_milestone%2Cbugs.bug_id'+collist;
4
}
(-)includes/nav.php (-179 / +62 lines)
Lines 1-182 Link Here
1
<!-- $Id: nav.php,v 1.10 2006/05/19 16:43:54 nickb Exp $ -->
1
<!-- $Id: nav.php,v 1.10 2006/05/19 16:43:54 nickb Exp $ -->
2
<!-- quick nav -->
2
<div class="homeitem">
3
		&nbsp;
3
	<h3>Downloads</h3>
4
		<table border="0">
4
	<p>
5
			<tr>
5
		<a href="<?php echo $pre; ?>downloads/">Downloads</a>
6
			<td ALIGN=LEFT VALIGN=TOP BGCOLOR="#0070A0" colspan=3><b><font face="Arial,Helvetica"><font color="#FFFFFF">Quick Nav</font></font></b><a name="quicknav">&nbsp;</a></td>
6
		<?php if ($isEMFserver) { ?>
7
			</tr>
7
		:: <a href="http://emf.torolab.ibm.com/emft/build.php">New Build</a>
8
		<tr>
8
		<?php } ?>
9
      <td width="65%" valign="top">
9
		<br/>
10
10
	Release Notes: <a href="http://www.eclipse.org/emft/news/release-notes.php?version=1.0.0">1.0.0</a>
11
		<table width="100%" id="AutoNumber1" border="0" bordercolor="#111111"
11
	</p>
12
 style="border-collapse: collapse;" cellspacing="0" cellpadding="0">
12
	<p><a href="http://download.eclipse.org/technology/emft/updates/">Update Manager Site</a></p>
13
          <tr>
13
</div>
14
            <td> <a
14
15
 href="<?php echo $pre; ?>downloads/"><img
15
<div class="homeitem">
16
 src="<?php echo $WWWpre; ?>images/download.gif" border="0"></a></td>
16
	<h3>Community</h3>
17
17
	<p>
18
            <td height="42"> <a
18
		<a href="news://news.eclipse.org/eclipse.technology.emft">EMFT newsgroup</a><br/>
19
 href="<?php echo $pre; ?>downloads/" target="_self"
19
		<a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft">Web Interface</a>
20
 class="category">Downloads</a>
20
	</p>
21
 
21
	<p>
22
 <?php if (strstr($SERVER_NAME,"emf.torolab.ibm.com")) { ?>
22
		<a href="http://dev.eclipse.org/mailman/listinfo/emft-dev">Mailing List</a>
23
:: <a href="http://emf.torolab.ibm.com/emft/build.php" target="_self" class="category">New Build</a>
23
		<a href="http://dev.eclipse.org/mhonarc/lists/emft-dev/maillist.html">Archives</a>,
24
 <?php } ?>
24
		<a href="mailto:emft-dev@eclipse.org">Send a Message</a>
25
25
	</p>
26
<br><a class="subcategory" href="http://download.eclipse.org/technology/emft/updates/">Update Manager Site</a><br>
26
</div>
27
27
28
<br>
28
<div class="homeitem">
29
 </td>
29
	<h3>Documentation</h3>
30
30
	<p>
31
	<td width="11" rowspan="4"><br>
31
		<a href="http://www.eclipse.org/emf/faq/faq.php?FAQ=EMF">EMF FAQ</a>, 
32
            </td>
32
		<a href="http://www.eclipse.org/eclipse/faq/eclipse-faq.html">Eclipse FAQ</a>
33
33
	</p>
34
 <td> <a href="news://news.eclipse.org/eclipse.technology.emft"> <img
34
35
 src="<?php echo $WWWpre; ?>images/news.gif" border="0"></a></td>
35
	<p>
36
            <td> <a href="news://news.eclipse.org/eclipse.technology.emft"
36
		<a href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=EMFT">EMFT Components</a><br/> <!-- not in emf -->
37
 class="category" target="_top">EMFT newsgroup</a><br>
37
		<a href="http://www.eclipse.org/downloads/download.php?file=/technology/emft/javadoc/index.php">EMFT Javadocs</a><br/>
38
38
		<a href="http://wiki.eclipse.org/index.php/EMFT_Procedures">EMFT Build &amp; Promote Procedures</a>
39
            <a href="http://www.eclipse.org/search/search.cgi"
39
	</p>
40
 target="_self" class="subcategory">Search</a>, <a
40
</div>
41
 href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft"
41
42
 target="_self" class="subcategory">Web
42
<div class="homeitem">
43
Interface</a></td>
43
	<h3>Development</h3>
44
44
	<p><a name="cvs2" href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.emft/">EMFT CVS Repository</a></p>
45
45
46
			</tr>
46
	<p>
47
          <tr>
47
		<a href="http://bugs.eclipse.org/bugs">Bugzilla</a><br/>
48
48
49
<td> <a href="http://bugs.eclipse.org/bugs"> <img
49
		<?php
50
 src="<?php echo $WWWpre; ?>images/bugzilla.gif" border="0"></a></td>
50
		$statuses = array(
51
51
			"Open" => "%26bug_status%3DNEW%26bug_status%3DASSIGNED%26bug_status%3DREOPENED",
52
            <td height="42"> <a href="http://bugs.eclipse.org/bugs"
52
			"Closed This Week" => "%26bug_status%3DRESOLVED%26bug_status%3DVERIFIED%26bug_status%3DCLOSED%26changedin%3D7"
53
 target="_self" class="category">Bugzilla</a><br>
54
 
55
<a href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=EMFT" class="subcategory">EMFT Components</a><br/>
56
57
<?php
58
	
59
	$statuses = array(
60
		"Open" => "%26bug_status%3DNEW%26bug_status%3DASSIGNED%26bug_status%3DREOPENED",
61
		"Closed This Week" => "%26bug_status%3DRESOLVED%26bug_status%3DVERIFIED%26bug_status%3DCLOSED%26changedin%3D7"
62
	);
63
	$blcnt=0;
64
    $collist = "%26query_format%3Dadvanced&column_changeddate=on&column_bug_severity=on&column_priority=on&column_rep_platform=on&column_bug_status=on&column_product=on&column_component=on&column_version=on&column_target_milestone=on&column_short_short_desc=on&splitheader=0";
65
	foreach ($statuses as $statusLabel => $statusString) { 
66
		$bugzLinks = array(
67
			"EMFT" => "https://bugs.eclipse.org/bugs/colchange.cgi?rememberedquery=product%3DEMFT".$statusString."%26order%3Dbugs.bug_status%2Cbugs.target_milestone%2Cbugs.bug_id".$collist
68
		);
53
		);
69
		foreach ($bugzLinks as $label => $url) {
54
		$collist = "%26query_format%3Dadvanced&amp;column_changeddate=on&amp;column_bug_severity=on&amp;column_priority=on&amp;column_rep_platform=on&amp;column_bug_status=on&amp;column_product=on&amp;column_component=on&amp;column_version=on&amp;column_target_milestone=on&amp;column_short_short_desc=on&amp;splitheader=0";
70
			if ($blcnt>0) { echo ", "; } $blcnt++;
55
		foreach ($statuses as $statusLabel => $statusString)
71
			echo "\n\t\t".'<a href="'.$url.'" target="_bugz" class="subcategory">'.$statusLabel.'</a>';
56
		{
57
			$bugzLinks = array(
58
				"EMFT" => "https://bugs.eclipse.org/bugs/colchange.cgi?rememberedquery=product%3DEMFT$statusString%26order%3Dbugs.bug_status%2Cbugs.target_milestone%2Cbugs.bug_id$collist"
59
			);
60
			$bugzLinks = preg_replace("/^(.+)$/", "<a href=\"$1\" target=\"_bugz\">$statusLabel</a>", $bugzLinks);
61
			print join(", ", $bugzLinks) . "<br/>\n";
72
		}
62
		}
73
	}
63
		?>
74
?>
64
	</p>
75
65
</div>
76
</td>
77
           
78
				<td> <a
79
 href="http://dev.eclipse.org/mailman/listinfo/emft-dev"> <img
80
 src="<?php echo $WWWpre; ?>images/mail.gif" border="0"></a></td>
81
82
            <td height="42"> <a
83
 href="http://dev.eclipse.org/mailman/listinfo/emft-dev" class="category"
84
 target="_self">Mailing List</a><br>
85
            <a
86
 href="http://dev.eclipse.org/mhonarc/lists/emft-dev/maillist.html"
87
 target="_self" class="subcategory">Archives</a>, <a
88
 href="mailto:emft-dev@eclipse.org" class="subcategory">Send
89
Message</a></td>
90
91
92
          </tr>
93
          <tr>
94
95
				<td rowspan=1 valign=top> <img src="<?php echo $WWWpre; ?>images/reference.gif"
96
 border="0"></td>
97
				<!-- set to rowspan=2 to add more docs here, and to move the FAQs to the right column -->
98
99
				<td height="42" rowspan=1 valign=top>  
100
				<!-- set to rowspan=2 to add more docs here, and to move the FAQs to the right column -->
101
102
<b class="category">Documentation</b><br>
103
<a href="http://www.eclipse.org/downloads/download.php?file=/technology/emft/javadoc/index.php" target="_self" class="subcategory">EMFT Javadocs</a><br/> 
104
<a href="http://wiki.eclipse.org/index.php/EMFT_Procedures" target="_self" class="subcategory">EMFT Build &amp; Promote Procedures</a>
105
106
&nbsp;
107
</td>
108
109
            <td> <a name="cvs1" class="category">
110
            <img src="<?php echo $WWWpre; ?>images/cvs.gif" border="0"></a></td>
111
            <td> <a name="cvs2" class="category">CVS Repositories</a><br>
112
<!-- <?php if (strstr($SERVER_NAME,"emf.torolab.ibm.com")) { ?>
113
<a href="<?php echo $pre; ?>whatsnew-cvs/?source=" target="_self" class="subcategory">What's New, CVS?</a> :: <a href="/whatsnew-cvs/build.php" target="_self" class="subcategory">Regenerate</a> <br>
114
<?php } ?> -->
115
 <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.emft/" target="_self" class="subcategory">EMFT</a>
116
&nbsp;</td>
117
          </tr>
118
          <tr>
119
120
				<td><img
121
 src="<?php echo $WWWpre; ?>images/release-notes.gif" border="0"></td>
122
<td><a name="relnotes1" class="category">Release Notes</a><br>
123
	<a class="subcategory" href="http://www.eclipse.org/emft/news/release-notes.php?version=1.0.0">1.0.0</a>
124
</td>
125
126
            <td><img
127
src="<?php echo $WWWpre; ?>images/faq.gif" border="0"></td>
128
129
            <td> <b class="category">FAQ</b> 	<i class="subcategory">[ ... coming soon ... ]</i><br>
130
<a href="http://www.eclipse.org/emf/faq/faq.php?FAQ=EMF"
131
 target="_self" class="category">EMF FAQ</a>, 
132
 <a href="http://www.eclipse.org/eclipse/faq/eclipse-faq.html"
133
 target="_self" class="subcategory">Eclipse FAQ</a></td>
134
135
				
136
			 </tr>
137
        </tbody>
138
139
      </table>
140
      </td>
141
      <td width="14" valign="top">&nbsp;</td>
142
      <td width="35%" valign="top">
143
      
144
		<!-- right column tables start -->
145
      <table cellspacing="0" cellpadding="0" width="100%" border="0">
146
	       <tr>
147
            <td rowspan="2" height="15" bgcolor="#8ABDBF"><span style="color: #ffffff; font-weight:bold; font-size: 11px; font-family: Verdana,Arial,Helvetica;">&nbsp;&nbsp;&nbsp;What's New</span></td>
148
            <td width="60%">&nbsp;</td>
149
          </tr>
150
          <tr>
151
            <td height="3" bgcolor="#8ABDBF"><img src="<?php echo $WWWpre; ?>images/c.gif" width=1 height=10></td>
152
          </tr>
153
      </table>
154
      <table cellspacing="0" cellpadding="0" width="100%" border="0">
155
          <tr>
156
				<td bgcolor="#8ABDBF"><img src="<?php echo $WWWpre; ?>images/c.gif" width=2 height=1></td>
157
				<td bgcolor="white"><img src="<?php echo $WWWpre; ?>images/c.gif" width=5 height=1></td>
158
            <td width="100%">
159
160
<?php getNews(3,"whatsnew"); ?>
161
162
      <table cellspacing="0" cellpadding="0" width="100%" border="0">
163
          <tr><td><p class="normal">
164
 <a href="<?php echo $WWWpre; ?>news/news-whatsnew.php">What's New</a> 
165
[<a href="<?php echo $WWWpre; ?>news/news-whatsnew.php">more</a>]</a><br><br>
166
</td></tr></table>
167
168
            </td>
169
				<td bgcolor="white"><img src="<?php echo $WWWpre; ?>images/c.gif" width=5 height=1></td>
170
				<td bgcolor="#8ABDBF"><img src="<?php echo $WWWpre; ?>images/c.gif" width=2 height=1></td>
171
          </tr>
172
          <tr>
173
				<td bgcolor="#8ABDBF" colspan=5><img src="<?php echo $WWWpre; ?>images/c.gif" width=1 height=2></td>
174
			</tr>
175
      </table>
176
		<!-- end right column tables -->
177
178
      </td>
179
    </tr>
180
  </tbody>
181
</table>
182
<table><tr><td><span style="font-size:1px">&nbsp;</span></td></tr></table>
(-)includes/php42fix.php (-28 / +3 lines)
Lines 1-28 Link Here
1
<?php 
1
<?php
2
	// PHP 4.2 compliance fix - convert $_GET["foo"] into $foo, etc.
2
/* no longer used */
3
	if (phpversion()-0 >= 4.2) { 
3
?>
4
		$vars = $_GET;  foreach ($vars as $v => $ars) { if (!$$v) { $$v = $ars; } }
5
		$vars = $_POST; foreach ($vars as $v => $ars) {	if (!$$v) { $$v = $ars; } }
6
		if (!$PHP_SELF) {			$PHP_SELF =			$_SERVER["PHP_SELF"]; }
7
		if (!$QUERY_STRING) {	$QUERY_STRING =	$_SERVER["QUERY_STRING"]; }
8
		if (!$SERVER_NAME) {		$SERVER_NAME =		$_SERVER["SERVER_NAME"]; }
9
		if (!$HTTP_HOST) {		$HTTP_HOST =		$_SERVER["HTTP_HOST"]; }
10
		if (!$SCRIPT_FILENAME) {$SCRIPT_FILENAME =$_SERVER["SCRIPT_FILENAME"]; }
11
		$HTTP_GET_VARS = $_GET;
12
		$HTTP_POST_VARS = $_POST;
13
		$HTTP_COOKIE_VARS = $_COOKIE; // NEW NOV 26 2003
14
	} else {
15
		$vars = $HTTP_GET_VARS;  foreach ($vars as $v => $ars) { if (!$$v) { $$v = $ars; } }
16
		$vars = $HTTP_POST_VARS; foreach ($vars as $v => $ars) {	if (!$$v) { $$v = $ars; } }
17
		if (!$PHP_SELF) {			$PHP_SELF =			$HTTP_SERVER_VARS["PHP_SELF"]; }
18
		if (!$QUERY_STRING) {	$QUERY_STRING =	$HTTP_SERVER_VARS["QUERY_STRING"]; }
19
		if (!$SERVER_NAME) {		$SERVER_NAME =		$HTTP_SERVER_VARS["SERVER_NAME"]; }
20
		if (!$HTTP_HOST) {		$HTTP_HOST =		$HTTP_SERVER_VARS["HTTP_HOST"]; }
21
		if (!$SCRIPT_FILENAME) {$SCRIPT_FILENAME =$HTTP_SERVER_VARS["SCRIPT_FILENAME"]; }
22
	}
23
24
$qs = $QUERY_STRING;
25
$sn = $SERVER_NAME;
26
$scn = $PHP_SELF;
27
28
?>
(-)includes/scripts.php (-78 / +40 lines)
Lines 115-124 Link Here
115
			ini_set("display_errors","0"); // suppress file not found errors
115
			ini_set("display_errors","0"); // suppress file not found errors
116
			$handle=opendir($dir);
116
			$handle=opendir($dir);
117
			while (($file = readdir($handle))!==false) {
117
			while (($file = readdir($handle))!==false) {
118
			  if ( ($ext=="" || preg_match("/".$ext."$/",$file)) && $file!=".." && $file!="." && $type=="f" && is_file($dir."/".$file)) { 
118
			  if ( ($ext=="" || preg_match("/".$ext."$/",$file)) && $file!=".." && $file!="." && $type=="f") { 
119
				  $stuff[] = "$file"; 
119
				  $stuff[] = "$file"; 
120
				  //w("$index, $dir, $file, f$i",1);
120
				  //w("$index, $dir, $file, f$i",1);
121
			  } else if ( ($ext=="" || preg_match("/".$ext."$/",$file)) && $file!=".." && $file!="." && $type=="d" && is_dir($dir."/".$file)) {
121
			  } else if ( ($ext=="" || preg_match("/".$ext."$/",$file)) && $file!=".." && $file!="." && $type=="d") {
122
				  $stuff[] = "$file"; 
122
				  $stuff[] = "$file"; 
123
				 //w("$index, $dir, $file, d$i",1);
123
				 //w("$index, $dir, $file, d$i",1);
124
			  }
124
			  }
Lines 131-136 Link Here
131
				global $_SERVER;
131
				global $_SERVER;
132
				echo "<p> Directory ($dir) <b>".(!is_dir($dir)?"NOT FOUND":(!is_readable($dir)?"NOT READABLE":"PROBLEM"))."</b> on mirror: <b>".$_SERVER["HTTP_HOST"]."</b>! </p>";
132
				echo "<p> Directory ($dir) <b>".(!is_dir($dir)?"NOT FOUND":(!is_readable($dir)?"NOT READABLE":"PROBLEM"))."</b> on mirror: <b>".$_SERVER["HTTP_HOST"]."</b>! </p>";
133
				echo "<p> Please report this error to <a href=\"mailto:webmaster@eclipse.org?Subject=Directory ($dir) ".(!is_dir($dir)?"NOT FOUND":(!is_readable($dir)?"NOT READABLE":"PROBLEM"))." in scripts.php::loadDirSimple() on mirror ".$_SERVER["HTTP_HOST"]."\">webmaster@eclipse.org</a>, or make directory readable. </p>";
133
				echo "<p> Please report this error to <a href=\"mailto:webmaster@eclipse.org?Subject=Directory ($dir) ".(!is_dir($dir)?"NOT FOUND":(!is_readable($dir)?"NOT READABLE":"PROBLEM"))." in scripts.php::loadDirSimple() on mirror ".$_SERVER["HTTP_HOST"]."\">webmaster@eclipse.org</a>, or make directory readable. </p>";
134
				/*echo '
135
					<p> While this problem is being resolved, you can get a copy of the latest EMF, SDO, or XSD from here:
136
					<ul>
137
						<li><a href="http://download.eclipse.org/tools/emf/downloads/drops/2.0/I200406030436/">http://download.eclipse.org/tools/emf/downloads/drops/2.0/I200406030436/</a> [Main Public Mirror]</li>
138
						<li><a href="http://fullmoon.toronto.ibm.com/tools/emf/downloads/drops/2.0/I200406030436/">http://fullmoon.toronto.ibm.com/tools/emf/downloads/drops/2.0/I200406030436/</a> [IBM Only]</li>
139
						<li><a href="http://fullmoon.hursley.ibm.com/tools/emf/downloads/drops/2.0/I200406030436/">http://fullmoon.hursley.ibm.com/tools/emf/downloads/drops/2.0/I200406030436/</a> [IBM Only]</li>
140
					</ul>
141
					</p>
142
					<p> Thanks for your patience! </p>
143
					';*/
134
				$hadLoadDirSimpleError=1;
144
				$hadLoadDirSimpleError=1;
135
			}
145
			}
136
			//exit;
146
			//exit;
Lines 138-170 Link Here
138
		return $stuff;
148
		return $stuff;
139
	}
149
	}
140
150
141
	function wArr($arr) { // ie., wArr(array,separator,showKeys,trailingCharacter);
151
	function wArr($arr) {
142
	// since PHP won't display an array's contents when you do echo($array), this returns the array like this:
152
		print "<pre>\n";
143
	/* usage: wArr($array)		// 0:apple, 1:peach, 2:grapes\n
153
		print_r($arr);
144
			  wArr($array,"\n") (use "\n" as separator instead of ", ")
154
		print "</pre>\n";
145
			  wArr($array,"",false); (use default separator, but don't display keys 			
146
			  wArr($array,"",false,false); (use default separator, but don't display keys and no trailing char	*/
147
		$sep=(func_num_args()>1&&func_get_arg(1))?func_get_arg(1):"<br>"; 
148
		$key=(func_num_args()>2)?func_get_arg(2):true;  // assume we want keys
149
		$trail=(func_num_args()>3)?func_get_arg(3):"\n";  // assume we want a trailing newline
150
		$i=0;
151
		if (is_array($arr) && sizeof($arr)>0) { 
152
			foreach ($arr as $ark => $arv) {
153
				w(($key?$ark.": ":"")); 
154
				if (is_array($arv)) { 
155
					w("<ul>");
156
					wArr($arv,$sep,$key,$trail);
157
					w("</ul>");
158
				} else {
159
					w($arv);
160
				}
161
				$i++;
162
				if ($i<sizeof($arr)) { w($sep); }
163
			} 	
164
			w($trail);
165
		} else {
166
			//w($arr.$trail);
167
		}
168
	} 
155
	} 
169
156
170
	function w($s) { // shortcut for echo() with second parameter: "add break+newline"
157
	function w($s) { // shortcut for echo() with second parameter: "add break+newline"
Lines 173-183 Link Here
173
		} else { 
160
		} else { 
174
			$br=func_get_arg(1);
161
			$br=func_get_arg(1);
175
			if (stristr($br,"b")) {
162
			if (stristr($br,"b")) {
176
				$br="<br>";
163
				$br="<br/>";
177
			} else if (stristr($br,"n")) {
164
			} else if (stristr($br,"n")) {
178
				$br="\n";
165
				$br="\n";
179
			} else if ($br) { 
166
			} else if ($br) { 
180
				$br="<br>\n"; 
167
				$br="<br/>\n"; 
181
			}
168
			}
182
		}
169
		}
183
		echo($s.$br); 
170
		echo($s.$br); 
Lines 200-206 Link Here
200
		return array($contents);
187
		return array($contents);
201
	}
188
	}
202
189
203
	function getNews($lim,$key,$style="horiz",$divider="") {
190
	function getNews($lim,$key,$style="horiz") {
204
		global $CVSpre,$pre,$isWWWserver; 
191
		global $CVSpre,$pre,$isWWWserver; 
205
		$xml = getFile("news/news.xml"); 
192
		$xml = getFile("news/news.xml"); 
206
		if (!$xml) {
193
		if (!$xml) {
Lines 227-292 Link Here
227
				$xmlCurrentDate = $m[1];
214
				$xmlCurrentDate = $m[1];
228
				$xmlItems[] = array($m[1] => "");
215
				$xmlItems[] = array($m[1] => "");
229
			} else if ($xmlCollect && !preg_match("/\<\/news\>/",$line,$m)) { // while collecting contents
216
			} else if ($xmlCollect && !preg_match("/\<\/news\>/",$line,$m)) { // while collecting contents
230
				if (preg_match("/href=\"downloads\//",$line) && !preg_match("/href=\"http/",$line)) { 
217
				$line = preg_replace("/href=\"\#latest/","href=\""."downloads.php#latest",$line);
231
					$line = preg_replace("/href=\"/","href=\"".($isWWWserver?"http://download.eclipse.org/technology/emft/":$pre),$line);
218
				//$line = preg_replace("/href=\"\#(emf\_3)/","href=\"whatsnew.php?ver=3.x#emf_3",$line);
219
				//$line = preg_replace("/href=\"\#([IMNRS]\d{12})/","href=\""."news-release-notes.php?ver=2.0.0#$1",$line); // not needed
220
				$line = preg_replace("/href=\"\#emf\_((\d)(\d)(\d))/","href=\""."news-release-notes.php?ver=$2.$3.$4#emf_$1",$line);
221
				if (preg_match("/href=\"downloads.php\"/",$line) && !preg_match("/href=\"http/",$line)) { 
222
					$line = preg_replace("/href=\"/","href=\"".($isWWWserver?"http://download.eclipse.org/tools/emf/scripts/":$pre),$line);
223
				} else if (preg_match("/href=\".+\.php\"/",$line) && !preg_match("/href=\"http/",$line)) { 
224
					$line = preg_replace("/href=\"/","href=\"$pre",$line);
225
				} else if (preg_match("/href=\".+\.php\?.+\=.+\.html(#[a-zA-Z0-9\_\.]+|#|)\"/",$line) && !preg_match("/href=\"http/",$line)) { 
226
					// a link such as docs.php?doc=docs/../faq/index.html - no moleste!
227
				} else if (preg_match("/href=\".+\.html(#[a-zA-Z0-9\_\.]+|#|)\"/",$line) && !preg_match("/href=\"http/",$line)) { 
228
					$line = preg_replace("/href=\"/","href=\"$CVSpre",$line);
232
				}
229
				}
233
				$xmlItems[sizeof($xmlItems)-1][$xmlCurrentDate] .= $line;
230
				$xmlItems[sizeof($xmlItems)-1][$xmlCurrentDate] .= $line;
234
			} else if (preg_match("/\<\/news\>/",$line,$m)) { // end of item
231
			} else if (preg_match("/\<\/news\>/",$line,$m)) { // end of item
235
				$xmlCollect = 0;
232
				$xmlCollect = 0;
236
			} 
233
			} 
237
		}
234
		}
238
		if ($style=="horiz") { 
235
239
			echo "<table>";
236
		if ($style=="vert") { 
240
			foreach ($xmlItems as $i => $pair) { 
241
				if ($lim<0 || $i<$lim) {
242
					echo "<tr valign=top>";
243
					foreach ($pair as $date => $contents) { 
244
						if (date("Y",strtotime($date))<date("Y")) { 
245
							echo '<td><span class="'.($key=="whatsnew"?"normal":"").'"><b>'.
246
								date( ($key=="whatsnew"?"M":"F").'\&\n\b\s\p\;j\<\s\u\p\>S\<\/\s\u\p\>, Y',
247
								strtotime($date)).'</b></span></td>'."\n";
248
						} else {
249
							echo '<td><span class="'.($key=="whatsnew"?"normal":"").'"><b>'.
250
								date( ($key=="whatsnew"?"M":"F").'\&\n\b\s\p\;j\<\s\u\p\>S\<\/\s\u\p\>', 
251
								strtotime($date)).'</b></span></td>'."\n";
252
						}
253
						echo '<td><span class="'.($key=="whatsnew"?"normal":"").'">&#160;-&#160;</span></td>'."\n";
254
						echo '<td><span class="'.($key=="whatsnew"?"normal":"").'">';
255
						if (strtotime($date)>strtotime("-3 weeks")) { 
256
							echo '<img src="http://www.eclipse.org/emf/images/new.gif" width="31" height="14">';
257
						}
258
						echo $contents.'</span></td>'."\n";
259
					}
260
					echo "</tr>";
261
				}
262
			}
263
			echo "</table>";
264
		} else if ($style=="vert") { 
265
			foreach ($xmlItems as $i => $pair) { 
237
			foreach ($xmlItems as $i => $pair) { 
266
				if ($lim<0 || $i<$lim) {
238
				if ($lim<0 || $i<$lim) {
267
					echo "<tr valign=top>";
239
					echo "<p>\n";
268
					foreach ($pair as $date => $contents) { 
240
					foreach ($pair as $date => $contents) { 
269
						echo "<td>";
270
						if (strtotime($date)>strtotime("-3 weeks")) { 
241
						if (strtotime($date)>strtotime("-3 weeks")) { 
271
							echo '<img src="http://www.eclipse.org/emf/images/new.gif" width="31" height="14">';
242
							echo '<img src="http://www.eclipse.org/emf/images/new.gif" alt="New!" width="31" height="14"/>';
272
						}
273
						if (date("Y",strtotime($date))<date("Y")) { 
274
							echo '<span class="'.($key=="whatsnew"?"normal":"").'"><b>'.
275
								date( ($key=="whatsnew"?"M":"F").'\&\n\b\s\p\;j\<\s\u\p\>S\<\/\s\u\p\>, Y',
276
								strtotime($date)).'</b></span> - '."\n";
277
						} else {
278
							echo '<span class="'.($key=="whatsnew"?"normal":"").'"><b>'.
279
								date( ($key=="whatsnew"?"M":"F").'\&\n\b\s\p\;j\<\s\u\p\>S\<\/\s\u\p\>', 
280
								strtotime($date)).'</b></span> - '."\n";
281
						}
243
						}
282
						echo '<span class="'.($key=="whatsnew"?"normal":"").'">';
244
						$app = (date("Y",strtotime($date))<date("Y") ? ", Y" : "");
283
						echo $contents.'</span></td>'."\n";
245
						echo '<b>' . date(($key=="whatsnew"?"M":"F").'\&\n\b\s\p\;j\<\s\u\p\>S\<\/\s\u\p\>' . $app, strtotime($date)).'</b> - '."\n";
246
						echo $contents;
284
					}
247
					}
285
					echo "</tr>\n";
248
					echo "</p>\n";
286
					echo $divider;
287
				}
249
				}
288
			}
250
			}
289
		}
251
		}
290
	}
252
	}
291
	
253
	
292
?>
254
?>
(-)includes/style.css (-62 / +1 lines)
Lines 1-62 Link Here
1
/* eclipse header frame css */
1
/* no longer used */
2
3
.input {background: "#ffffcc";color: "#000000" ;font-weight: normal;}
4
a.nav:link { text-decoration: none; color: "#000000"; }
5
a.nav:visited { text-decoration: none; color: "#000000"; }
6
a.nav:hover { text-decoration: underline; color: "#000000"; }
7
8
/* eclipse left nav frame css */
9
10
p, table, td, th {  font-family: arial, helvetica, geneva; font-size: 10pt}
11
pre {  font-family: "Courier New", Courier, mono; font-size: 10pt}
12
h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}
13
code {  font-family: "Courier New", Courier, mono; font-size: 10pt}
14
sup {  font-family: arial,helvetica,geneva; font-size: 10px}
15
h3 {  font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
16
li {  font-family: arial, helvetica, geneva; font-size: 10pt}
17
h1 {  font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
18
/* body {  font-family: arial, helvetica, geneva; font-size: 10pt; clip:   rect(   )} */
19
.navhead {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: xx-small; color: #FFFFFF; font-weight: bold; text-decoration: underline}
20
a.nav:link { text-decoration: none; color: #000000; }
21
a.nav:visited { text-decoration: none; color: #000000; }
22
a.nav:hover { text-decoration: underline; color: #000000; }
23
a.navhead:link { text-decoration: none;}
24
a.navhead:visited { text-decoration: none;}
25
a.navhead:hover { text-decoration: underline;}
26
27
/* eclipse default_style.css */
28
29
p, table, td, th {  font-family: arial, helvetica, geneva; font-size: 10pt}
30
pre {  font-family: "Courier New", Courier, mono; font-size: 10pt}
31
h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}
32
code {  font-family: "Courier New", Courier, mono; font-size: 10pt}
33
sup {  font-family: arial,helvetica,geneva; font-size: 10px}
34
h3 {  font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
35
li {  font-family: arial, helvetica, geneva; font-size: 10pt}
36
h1 {  font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
37
/* body {  font-family: arial, helvetica, geneva; font-size: 10pt; clip:   rect(   ); margin-top: 5mm; margin-left: 3mm} */
38
.indextop { font-size: x-large;; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold}
39
.indexsub { font-size: xx-small;; font-family: Arial, Helvetica, sans-serif; color: #8080FF}
40
41
	.head_section { background-color: #0080c0; color: #ffffff; font-family: arial, helvetica, geneva; font-size: 10pt; }
42
	.box	{ background-color: #f0f0f0; color: #000000; font-family: arial, helvetica, geneva; font-size: 8pt; }
43
	.box-9pt	{ background-color: #f0f0f0; color: #000000; font-family: arial, helvetica, geneva; font-size: 9pt; }
44
45
/* emf styles */
46
47
body { 
48
	font-family: verdana, arial, helvetica, geneva; font-size: 9pt; clip:   rect(   ); margin-top: 0mm; margin-left: 0mm;
49
}
50
.nav { font-size: 9pt; font-family: Arial, Helvetica, sans-serif; }
51
.normal{font-family:Verdana;font-size:8pt}
52
p{font-family:Verdana;font-size:8pt}
53
a.category{text-decoration:none;font-size:8pt;font-family:Verdana,Arial,Helvetica;font-weight:bold}
54
a:hover.category {text-decoration:underline}
55
.whatsnew {border-left:solid #8ABDBF 1px; border-right:solid #8ABDBF 1px;border-bottom:solid #8ABDBF 1px;}
56
a.subcategory{text-decoration:none;font-size:8pt;font-family:Verdana,Arial,Helvetica}
57
a:hover.subcategory {text-decoration:underline}
58
59
tt.code            { color: #4444CC; }
60
pre.code           { color: #4444CC; }
61
.highlight         {  background-color: #FFFFCC; }
62
(-)news/news-whatsnew.php (-20 / +23 lines)
Lines 1-21 Link Here
1
<?php $pre = "../"; 
1
<?php
2
		$HTMLTitle = "EMFT What's New";
2
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon());
3
		$ProjectName = array(
4
			"What's New",
5
			'Eclipse Modeling Framework Technologies',
6
			"What's New",
7
			"images/reference.gif"
8
			);
9
		include $pre."includes/header.php"; ?>
10
11
<table BORDER=0 CELLPADDING=2 WIDTH="100%" >
12
<tr>
13
<td>&#160;&#160;&#160; </td>
14
<td>
15
<?php getNews(-1,"all"); ?>
16
</td>
17
</tr>
18
</table>
19
<?php include $pre."includes/footer.php"; ?>
20
3
21
<!-- $Id: news-whatsnew.php,v 1.1 2006/02/20 23:15:11 nickb Exp $ -->
4
ob_start();
5
6
$pre = "../";
7
include "${pre}includes/scripts.php";
8
9
print "<div id=\"midcolumn\">\n";
10
print "<div class=\"homeitem3col\">\n";
11
print "<h3>All News</h3>\n";
12
getNews(-1, "all", "vert");
13
print "</div>\n";
14
print "</div>\n";
15
16
$html = ob_get_contents();
17
ob_end_clean();
18
19
$pageTitle = "EMFT - All News";
20
$pageKeywords = ""; // TODO: add something here
21
$pageAuthor = "Neil Skrypuch";
22
23
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
24
?>
(-)news/release-notes.css (-39 / +1 lines)
Lines 1-39 Link Here
1
<STYLE type="text/css">
1
/* no longer used */
2
td.spacer {padding-bottom: 0px; padding-top: 0px;}
3
.title { font-family: sans-serif; color: #99AACC;}
4
.bodyText { font-family: sans-serif; font-size: 9pt; color:#000000;  }
5
.sub-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white;}
6
.log-text {font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 9pt; color:black;}
7
.big-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: black;}
8
9
.light-row {
10
  background:#FFFFFF;
11
  cursor: pointer;
12
  _cursor: hand;
13
}
14
.dark-row {
15
  background:#EEEEFF;
16
  cursor: pointer;
17
  _cursor: hand;
18
}
19
.dark-row2 {
20
  background:#EEEEEE;
21
  cursor: pointer;
22
  _cursor: hand;
23
}
24
25
.header {background:#99AADD}
26
.content-header {background:#CCCCCC; }
27
#indent {word-wrap : break-word;width :300px;text-indent:10px;}
28
.red { color:red; }
29
30
pre.code { color: #4444CC; }
31
tt.code { color: #4444CC; }
32
33
.title {font-family: sans-serif; font-style: bold; font-weight: bold; font-size: 9pt; color:black;}
34
.details {font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 9pt; color:black;}
35
.datestamp { font-family: sans-serif; color: purple; font-size: 9pt}
36
37
/* $Id$ */
38
39
</STYLE>
(-)news/release-notes.php (-42 / +73 lines)
Lines 1-38 Link Here
1
<?php 
1
<?php 
2
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon());
3
4
ob_start();
2
5
3
$pre = "../";
6
$pre = "../";
4
7
5
// Process query string
8
$params = array();
6
$vars = explode("&", $_SERVER['QUERY_STRING']);
9
if (preg_match("/^(\d\.\d)$/", $_GET["version"], $regs))
7
for ($i=0;$i<=count($vars);$i++) {
10
{
8
  $var = explode("=", $vars[$i]);
11
	$params["version"] = $regs[1];
9
  $qsvars[$var[0]] = $var[1];
12
}
13
else
14
{
15
	$params["version"] = "";
10
}
16
}
11
17
12
$params = array();
18
if (preg_match("/^(" . join($projects, "|") . ")$/", $_GET["project"], $regs))
13
$params["project"] = $qsvars["proj"] ? $qsvars["proj"] : $qsvars["project"]; 
19
{
14
$params["version"] = $qsvars["version"];
20
	$params["project"] = $regs[1];
15
$params["showFiltersOrHeaderFooter"] = 1;
21
}
16
22
else
17
$HTMLTitle = "Eclipse Modeling Framework Technologies - Release Notes";
23
{
18
$ProjectName = array(
24
	$params["project"] = "";
19
	"Release Notes",
20
	"Eclipse Modeling Framework Technologies",
21
	"Release Notes",
22
	"images/reference.gif"
23
);
24
25
include $pre . "includes/header.php"; 
26
27
$projs = loadDirSimple($pre."news","release-notes-.*\.xml","f"); sort($projs); reset($projs);
28
29
echo '<form name="rnForm">&#160;&#160;&#160;<b><select name="rnSelect" onchange="document.location.href=\''.$_SERVER["SCRIPT_NAME"].'?proj=\'+this.options[this.selectedIndex].value">' ."\n";
30
echo '<option value="">Choose an EMFT subproject:</option>';
31
foreach ($projs as $projF) {
32
	$p = explode("-",$projF); $p = explode(".",$p[2]); $p = $p[0];
33
	echo '<option '.($qsvars["proj"]==$p?'selected ':'').'value="'.$p.'"> - emft.'.$p.'</option>'."\n";
34
}
25
}
35
echo '</select></b></form>'."\n";
26
27
$html .= <<<EOHTML
28
<div id="rightcolumn">
29
	<div class="sideitem">
30
		<h6>Subproject:</h6>
31
		<form action="release-notes.php" method="get" id="subproject_form">
32
		<p>
33
			<select name="project" onchange="javascript:document.getElementById('subproject_form').submit()">
34
				<option value="">Subproject:</option>
35
EOHTML;
36
37
				$p = join("", preg_replace("/^(.+)$/", "<option value=\"$1\">$1</option>\n", $projects));
38
				$html .=  preg_replace("/<option (value=\"{$params["project"]}\")>/", "<option selected=\"selected\" $1>", $p);
39
40
$html .= <<<EOHTML
41
			</select>
42
			<br/>
43
			<input type="submit" value="Go!"/>
44
		</p>
45
		</form>
46
	</div>
47
</div>
48
EOHTML;
36
49
37
/*
50
/*
38
 * To work, this script must be run with a version of PHP4 which
51
 * To work, this script must be run with a version of PHP4 which
Lines 42-70 Link Here
42
 *  
55
 *  
43
 * 	<xsl:param name="project"></xsl:param> <!-- this is used for multiple projects in the same file -->
56
 * 	<xsl:param name="project"></xsl:param> <!-- this is used for multiple projects in the same file -->
44
 * 	<xsl:param name="version"></xsl:param>
57
 * 	<xsl:param name="version"></xsl:param>
45
 *  <xsl:param name="showFiltersOrHeaderFooter"></xsl:param>
46
 * 	
47
 */
58
 */
48
59
49
if ($params["project"]) { 
60
if ($params["project"])
61
{
50
	// define XML and XSL sources 
62
	// define XML and XSL sources 
51
	$XMLfile = $params["project"]?"release-notes-".$params["project"].".xml":"release-notes.xml";
63
	$XMLfile = "release-notes-{$params["project"]}.xml";
52
	$XSLfile = "release-notes.xsl";
64
	$XSLfile = "release-notes.xsl";
53
	
65
	
54
	$processor = xslt_create();
66
	$processor = xslt_create();
55
	$fileBase = 'file://' . getcwd () . '/';
67
	$fileBase = 'file://' . getcwd() . '/';
56
	xslt_set_base ( $processor, $fileBase );
68
	xslt_set_base($processor, $fileBase);
57
	$result = xslt_process($processor, $fileBase.$XMLfile, $fileBase.$XSLfile, NULL, array(), $params);
69
	$result = xslt_process($processor, $fileBase . $XMLfile, $fileBase . $XSLfile, NULL, array(), $params);
58
	
70
	
59
	if(!$result) {
71
	if (!$result)
60
		echo "Trying to parse ".$XMLfile." with ".$XSLfile."...<br/>";
72
	{
61
		echo "ERROR #".xslt_errno($processor) . " : " . xslt_error($processor);
73
		echo "Trying to parse $XMLfile with $XSLfile...<br/>";
74
		echo "ERROR #" . xslt_errno($processor) . " : " . xslt_error($processor);
62
	}
75
	}
63
	
76
	
64
	echo $result;
77
	echo $result;
65
	
78
}
66
	echo '<p><a href="view-source:http://www.eclipse.org/emft/news/'.$XMLfile.'" class="red">View as XML</a></p>'."\n";
79
else
80
{
81
	$content = preg_replace("/id=\"rightcolumn\"/", "id=\"midcolumn\"", $html);
82
	$content = preg_replace("/class=\"sideitem\"/", "class=\"homeitem3col\"", $content);
83
	$content = preg_replace("#<h6>Subproject:</h6>#", "<h3>Choose a subproject</h3>", $content);
84
	$content = preg_replace("/subproject_form/", "subproject_form2", $content);
85
86
	print $content;
67
}
87
}
68
88
69
include $pre . "includes/footer.php"; ?>
89
$html = ob_get_contents() . $html;
70
<!-- $Id: release-notes.php,v 1.11 2006/07/21 20:57:36 nickb Exp $ -->
90
ob_end_clean();
91
$html = preg_replace('/^\Q<?xml version="1.0" encoding="ISO-8859-1"?>\E/', "", $html);
92
$html = preg_replace("/<(link|div) xmlns:\S+/", "<$1", $html);
93
94
$pageTitle = "EMFT - Release Notes";
95
$pageKeywords = ""; // TODO: add something here
96
$pageAuthor = "Neil Skrypuch";
97
98
$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/emft/includes/relnotes.css"/>' . "\n");
99
$App->AddExtraHtmlHeader('<script src="/emft/includes/toggle.js" type="text/javascript"></script>' . "\n"); //ie doesn't understand self closing script tags, and won't even try to render the page if you use one
100
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
101
?>
(-)news/release-notes.xsl (-249 / +135 lines)
Lines 1-299 Link Here
1
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
1
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
2
<xsl:output method="html" encoding="ISO-8859-1"/>
2
<xsl:output method="xml" encoding="ISO-8859-1"/>
3
3
4
	<xsl:key name="entryProj" match="entry" use="@project"/>
4
	<xsl:key name="entryProj" match="entry" use="@project"/>
5
	<xsl:key name="versionDefVer" match="version-def" use="@version"/>
5
	<xsl:key name="versionDefVer" match="version-def" use="@version"/>
6
6
7
	<xsl:param name="showFiltersOrHeaderFooter"></xsl:param> <!-- LEAVE BLANK - pass value of '1' into stylesheet via javascript -->
8
	<xsl:param name="project"></xsl:param>
7
	<xsl:param name="project"></xsl:param>
9
	<xsl:param name="version"></xsl:param>
8
	<xsl:param name="version"></xsl:param>
10
9
11
<xsl:variable name="xx">
10
<xsl:variable name="xx">
12
  <xsl:call-template name="show_notes">
11
	<xsl:call-template name="show_notes">
13
  </xsl:call-template>
12
	</xsl:call-template>
14
</xsl:variable>
13
</xsl:variable>
15
14
16
<xsl:template name="show_notes" match="/">
15
<xsl:template name="show_notes" match="/">
17
<xsl:for-each select="data">
16
<xsl:for-each select="data">
18
	<html xmlns="http://www.w3.org/1999/xhtml">
17
	<div id="midcolumn">
19
	<xsl:if test="$showFiltersOrHeaderFooter='1'">
20
	<style>@import url("release-notes.css");</style>
21
	<script type="text/javascript" src="http://www.eclipse.org/emf/includes/detaildiv.js"></script>
22
	</xsl:if>
23
	<xsl:if test="$showFiltersOrHeaderFooter!='1'">
24
	<head>
25
    <title>EMFT Release Notes</title>
26
    <link REL="SHORTCUT ICON" HREF="http://http://www.eclipse.org/emf/images/eclipse-icons/eclipse32.ico"/>
27
	<script type="text/javascript" src="http://www.eclipse.org/emf/includes/nav.js"></script>
28
	<script type="text/javascript" src="http://www.eclipse.org/emf/includes/detaildiv.js"></script>
29
	<link rel="stylesheet" href="http://www.eclipse.org/emf/includes/style.css" type="text/css"/>
30
	<style>@import url("release-notes.css");</style>
31
	</head>
32
33
	<!-- wrapper for left nav -->
34
	<table cellspacing="0" cellpadding="0" border="0" width="99%">
35
		<tr valign="top"><td colspan="1" align="left" width="99%"><table border="0" cellspacing="0" cellpadding="0" width="99%" BGCOLOR="#006699" >
36
37
		 <tr>
38
			  <td BGCOLOR="#000000" width="116" height="50"><a name="top"></a><a href="http://www.eclipse.org" target="_top"><img src="http://www.eclipse.org/images/EclipseBannerPic.jpg" width="115" height="50" border="0"/></a></td>
39
			  <td width="637" height="50" style="background-repeat: repeat-y;" background="http://www.eclipse.org/images/gradient.jpg"></td>
40
			  <td width="250" height="50"><img src="http://www.eclipse.org/images/eproject-simple.GIF" width="250" height="48"/></td>
41
		 </tr>
42
43
		</table></td>
44
	  </tr>
45
	</table>
46
	</xsl:if>
47
48
<table cellspacing="0" cellpadding="0" border="0" width="99%">
49
	<tr valign="top">
50
		<xsl:if test="$showFiltersOrHeaderFooter!='1'">
51
		<td align="left" width="115" bgcolor="#6699CC">
52
			<!-- left nav here -->
53
			<xsl:copy-of select="document('../includes/nav.xml')/div"/>
54
		</td>
55
		</xsl:if>
56
57
		<td><img src="http://www.eclipse.org/images/c.gif" height="1" width="3"/></td><td align="left" width="99%">
58
	<xsl:if test="$showFiltersOrHeaderFooter!='1'">
59
		&#160;
60
		<table border="0" cellpadding="2" width="99%">
61
		  <tbody>
62
63
			<tr>
64
			  <td align="left" width="60%">
65
				<font class="indextop">
66
				Release Notes<xsl:if test="$project!='' or $version!=''">:
67
					<xsl:if test="$project!=''"><xsl:value-of select="$project" />&#160;</xsl:if>
68
					<xsl:if test="$version!=''"><xsl:value-of select="$version" />&#160;</xsl:if>
69
				</xsl:if>
70
				</font><br/>
71
				<font class="indexsub">Eclipse Modeling Framework Technologies</font>
72
73
			  </td>
74
			  <td width="40%">
75
					<img src="http://www.eclipse.org/emf/images/reference.gif" hspace="50" align="right"/>
76
			  </td>
77
78
			</tr>
79
		  </tbody>            
80
		</table>
81
82
		<table border="0" cellpadding="2" width="99%" >
83
		<tr>
84
85
		<td align="LEFT" valign="TOP" BGCOLOR="#0070A0"><b><font face="Arial,Helvetica"><font color="#FFFFFF">
86
			Release Notes<xsl:if test="$project!='' or $version!=''">:
87
				<xsl:if test="$project!=''"><xsl:value-of select="$project" />&#160;</xsl:if>
88
				<xsl:if test="$version!=''"><xsl:value-of select="$version" />&#160;</xsl:if>
89
			</xsl:if>
90
		</font></font></b><a name="top">&#160;</a></td>
91
		</tr>
92
		</table>
93
	</xsl:if>
94
95
	<!-- form controls -->
18
	<!-- form controls -->
96
  <xsl:if test="count(version-def)>2">
19
	<xsl:if test="count(version-def)>2">
97
  <table width="60%">
20
		<div class="homeitem3col">
98
      <tr>
21
		<h3>Filters</h3>
99
        <td>
22
		<form action="/emft/news/release-notes.php" method="get" name="mainform">
100
          <hr size="1" width="100%"/>
23
		<p>
101
          <form action="http://www.eclipse.org/emft/news/release-notes.php" method="get" name="mainform">
24
		<label for="version">Project version: </label>
102
            <span class="log-text">Project version: </span>
25
		<select id="version" name="version">
103
            <select class="log-text" name="version" size="1">
26
		<option value=""> Choose... </option>
104
              <option value=""> Choose... </option>
27
		<xsl:for-each select="version-def">
105
              <xsl:for-each select="version-def">
28
			<xsl:choose>
106
              <xsl:choose>
29
				<xsl:when test="$version = @version">
107
                <xsl:when test="$version = @version">
30
					<option value="{@version}" selected="selected"><xsl:value-of select="@label"/></option>
108
                  <option value="{@version}" selected="selected"><xsl:value-of select="@label" /></option>
31
				</xsl:when>
109
                </xsl:when>
32
				<xsl:otherwise>
110
                <xsl:otherwise>
33
					<option value="{@version}"><xsl:value-of select="@label"/></option>
111
                  <option value="{@version}"><xsl:value-of select="@label" /></option>
34
				</xsl:otherwise>
112
                </xsl:otherwise>
35
			</xsl:choose>
113
              </xsl:choose>
36
		</xsl:for-each>
114
              </xsl:for-each>
37
		</select>
115
            </select>
38
		<xsl:text disable-output-escaping="yes">&#038;#160;</xsl:text>
116
            &#160;
39
		<input type="submit" value="Go!"/>
117
            <input class="black-no-underline" type="submit" name="z" value="Go!"/>
40
		<input type="hidden" name="project" value="{$project}"/>
118
            <input type="hidden" name="proj" value="{$project}"/>
41
		</p>
119
          </form>
42
		</form>
120
        </td>
43
		<!--
121
      </tr>
44
		<form action="http://download.eclipse.org/tools/emf/scripts/news-whatsnew-cvs.php" method="get" name="bugform" onSubmit="javascript:document.getElementById('Bugzilla').value = document.getElementById('bug').value" target="_blank">
122
      <!-- <tr>
45
			<input type="hidden" name="source" value="emf"/>
123
        <td>
46
			<label for="bug">CVS Delta for Bug ID: </label><input size="7" type="text" name="bug" id="bug"/>
124
          <form action="http://download.eclipse.org/tools/emf/scripts/news-whatsnew-cvs.php" method="get" name="bugform" onSubmit="javascript:document.getElementById('Bugzilla').value = document.getElementById('bug').value" target="_blank">
47
			<input type="hidden" name="Bugzilla" id="Bugzilla" value=""/>
125
            <input type="hidden" name="source" value="emf"/>
48
			<input type="submit" value="Go!"/>
126
            <label for="bug">CVS Delta for Bug ID: </label><input size="7" type="text" name="bug" id="bug"/>
49
		</form>
127
            <input type="hidden" name="Bugzilla" id="Bugzilla" value=""/>
50
		-->
128
            <input type="submit" value="Go!"/>
51
		</div>
129
          </form>
52
	</xsl:if>
130
        </td>
131
      </tr> -->
132
  </table>
133
  </xsl:if>
134
  
53
  
135
	<!-- nav header table (release/milestone list) -->
54
	<!-- nav header table (release/milestone list) -->
136
	<table border="0" cellspacing="1" cellpadding="3" width="99%">
137
	<xsl:for-each select="project-def">
55
	<xsl:for-each select="project-def">
138
		<xsl:if test="((count(key('entryProj',@project)) != 0 and $project = @project) or $project = '')">
56
		<xsl:if test="((count(key('entryProj',@project)) != 0 and $project = @project) or $project = '')">
139
			<tr class="header">
57
			<div class="homeitem3col">
140
				<td colspan="1" class="sub-header">
58
			<h3><a class="projtitle" href="#{@project}"><xsl:value-of select="@label"/></a></h3>
141
					<a class="sub-header" style="text-decoration:none" href="#{@project}"><xsl:value-of select="@label" /></a>
59
			<ul>
142
				</td>
60
			<li class="header">
143
				<td colspan="1" class="sub-header">
61
			<div class="fr">Bugs Closed</div>
144
					Bugs Closed <small>(click below to show bugs for a given release)</small>
62
			</li>
145
				</td>
63
			<xsl:variable name="thisProject"><xsl:value-of select="@project"/></xsl:variable>
146
			</tr>
147
			<xsl:variable name="thisProject"><xsl:value-of select="@project" /></xsl:variable>
148
			<xsl:for-each select="//version-def">
64
			<xsl:for-each select="//version-def">
149
				<xsl:if test="not(contains(@label,'.x')) and (starts-with(@version,$version) or $version = '') and ($project = $thisProject or $project = '')">
65
				<xsl:if test="not(contains(@label,'.x')) and (starts-with(@version,$version) or $version = '') and ($project = $thisProject or $project = '')">
150
					<xsl:variable name="thisVersion"><xsl:value-of select="@version" /></xsl:variable>
66
					<li>
151
					<xsl:variable name="matchCount"><xsl:for-each select="//bug">
67
					<xsl:variable name="thisVersion"><xsl:value-of select="@version"/></xsl:variable>
152
						<xsl:if test="starts-with(../@version,$thisVersion) and ../@project = $thisProject">1</xsl:if>
68
					<xsl:variable name="matchCount">
153
					</xsl:for-each></xsl:variable>
69
						<xsl:for-each select="//bug">
70
							<xsl:if test="starts-with(../@version,$thisVersion) and ../@project = $thisProject">1</xsl:if>
71
						</xsl:for-each>
72
					</xsl:variable>
154
73
155
					<xsl:variable name="isReleaseBuild"><xsl:for-each select="//entry"><xsl:if test="@build = @version and @version = $thisVersion">1</xsl:if></xsl:for-each></xsl:variable>
74
					<xsl:variable name="isReleaseBuild">
156
					<xsl:variable name="linkAnchorSuffix"><xsl:if test="string-length($isReleaseBuild) &gt; 0">.<xsl:value-of select="$thisVersion" />.<xsl:value-of select="$thisVersion" /></xsl:if></xsl:variable>
75
						<xsl:for-each select="//entry">
76
							<xsl:if test="@build = @version and @version = $thisVersion">1</xsl:if>
77
						</xsl:for-each>
78
					</xsl:variable>
157
79
158
					<!-- project: <xsl:value-of select="$thisProject" />, version: <xsl:value-of select="$thisVersion" /> -->
80
					<!-- project: <xsl:value-of select="$thisProject" />, version: <xsl:value-of select="$thisVersion" /> -->
159
					<tr id="name{$thisProject}.{$thisVersion}.{$thisVersion}" valign="top" class="dark-row" onMouseOver="rowOver('{$thisProject}.{$thisVersion}.{$thisVersion}','#C0D8FF')" onMouseOut="rowOut('{$thisProject}.{$thisVersion}.{$thisVersion}','#EEEEFF')" >
81
					<div class="cb">
160
						<td class="normal" width="22%" onclick="document.location.href='#{$thisProject}{$linkAnchorSuffix}';" onMouseOver="window.status='Click for detailed list of bugs';return true" onMouseOut="window.status='';return true">
82
					<div class="fr">
161
							<a href="javascript://" style="text-decoration:none">
83
					<xsl:if test="string-length($matchCount)>=0">
162
								<b><xsl:value-of select="$thisVersion" /> Release</b>
84
						<xsl:value-of select="string-length($matchCount)"/>
163
								<xsl:if test="string-length($isReleaseBuild) &lt; 1"> (In Progress)</xsl:if>
85
					</xsl:if>
164
							</a>
86
					</div>
165
						</td>
87
					<xsl:choose>
166
						<td class="normal" width="70%" onClick="servOC('{$thisProject}.{$thisVersion}.{$thisVersion}',{string-length(matchCount)})" onMouseOver="window.status='Click for list of bugs';return true" onMouseOut="window.status='';return true"><a href="javascript://" style="text-decoration:none"><xsl:if test="string-length($matchCount)>0"><xsl:value-of select="string-length($matchCount)" /> bugs</xsl:if></a>
88
						<xsl:when test="string-length($isReleaseBuild) &lt; 1">
167
						</td>
89
							<b><xsl:value-of select="$thisVersion"/> Release</b>
168
					</tr>
90
						</xsl:when>
169
					<tr style="display:none" id="ihtr{$thisProject}.{$thisVersion}.{$thisVersion}"><td bgcolor="#C0D8FF" colspan="2"><table cellspacing="0" cellpadding="0" border="0" bgcolor="white" width="100%">
91
						<xsl:otherwise>
170
						<tr><td width="10"></td><td style="border:0px solid #000000"><div frameborder="0" id="ihif{$thisProject}.{$thisVersion}.{$thisVersion}">
92
							<b><a href="#r{$thisVersion}"><xsl:value-of select="$thisVersion"/> Release</a></b>
171
						<img src="http://www.eclipse.org/images/c.gif" height="3" width="1"/><br/>
93
						</xsl:otherwise>
172
						<xsl:for-each select="//bug">
94
					</xsl:choose>
173
							<xsl:sort select="@id" data-type="number" order="descending" />
95
					<xsl:if test="string-length($isReleaseBuild) &lt; 1"> (In Progress)</xsl:if>
174
							<xsl:if test="starts-with(../@version,$thisVersion) and ../@project = $thisProject">
96
					</div>
175
								<nobr>
97
					<div style="display:none" id="{$thisProject}-{$thisVersion}">
176
								<xsl:if test="(substring(../@build,1,5) = ../@version) or number(substring(../@build,2,8)) &gt;= 20041202">
98
					<xsl:for-each select="//bug">
177
									<a href="http://download.eclipse.org/technology/emft/whatsnew-cvs/?source={../@project}&amp;bug={@id}&amp;Bugzilla={@id}"><img src="http://www.eclipse.org/emf/images/delta.gif" border="0" alt="CVS Deltas - What's New, CVS?"/></a><img src="http://www.eclipse.org/images/c.gif" height="1" width="2"/>
99
						<xsl:sort select="@id" data-type="number" order="descending" />
178
								</xsl:if>
100
						<xsl:if test="starts-with(../@version,$thisVersion) and ../@project = $thisProject">
179
								<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id={@id}" target="_bugz">
101
							<div class="fl">
180
									<xsl:value-of select="@id" />
102
							<a href="http://www.eclipse.org/emf/searchcvs.php?q={@id}"><img src="http://www.eclipse.org/emf/images/delta.gif" alt="CVS Delta"/></a>
181
								</a>,
103
							<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id={@id}" target="_bugz"><xsl:value-of select="@id"/></a>, <xsl:text disable-output-escaping="yes">&#038;#160;</xsl:text>
182
								</nobr> &#160; 
104
							</div>
183
							</xsl:if>
105
						</xsl:if>
184
						</xsl:for-each> <a href="javascript:servOC('{$thisProject}.{$thisVersion}.{$thisVersion}',{string-length(matchCount)})" style="text-decoration:none;color:black">&#9632;</a>
106
					</xsl:for-each>
185
						<br/><img src="http://www.eclipse.org/images/c.gif" height="3" width="1"/>
107
					<div class="fl">&#9632;</div>
186
					</div></td><td width="10"></td></tr></table></td></tr>
108
					</div>
109
					<div class="cb"><a id="{$thisProject}-{$thisVersion}-tog" href="javascript:toggle('{$thisProject}-{$thisVersion}')">show bug numbers</a></div>
110
					</li>
187
				</xsl:if>
111
				</xsl:if>
188
			</xsl:for-each>
112
			</xsl:for-each>
189
			<tr><td class="spacer"> </td></tr>
113
			</ul>
114
			</div>
190
		</xsl:if>
115
		</xsl:if>
191
		<xsl:if test="count(key('entryProj',@project)) = 0">
116
		<xsl:if test="count(key('entryProj',@project)) = 0">
192
			<tr><td colspan="2" class="normal"> &#187; No Release Notes found for <xsl:value-of select="@project" />.</td></tr>
117
			&#187; No Release Notes found for <xsl:value-of select="@project"/>.
193
		</xsl:if>
118
		</xsl:if>
194
	</xsl:for-each>
119
	</xsl:for-each>
195
	</table>
196
	<p> </p>
197
120
198
	<!-- content! -->
121
	<!-- content! -->
199
	<table border="0" cellspacing="1" cellpadding="5" width="99%">
200
	<xsl:for-each select="project-def">
122
	<xsl:for-each select="project-def">
201
		<xsl:if test="((count(key('entryProj',@project)) != 0 and $project = @project) or $project = '')">
123
		<xsl:if test="((count(key('entryProj',@project)) != 0 and $project = @project) or $project = '')">
202
			<tr class="content-header">
124
			<div class="homeitem3col">
203
				<td colspan="1" class="sub-header" width="99%">
125
			<h3><xsl:value-of select="@label"/><a name="{@project}"><xsl:text disable-output-escaping="yes">&#038;nbsp;</xsl:text></a></h3>
204
					<a name="{@project}"><xsl:value-of select="@label"/></a>
126
			<ul>
205
				</td>
206
				<td width="5" align="top" valign="right"><a class="bodyText" style="text-decoration:none" href="#top">^</a></td>
207
			</tr>
208
			<xsl:for-each select="key('entryProj',@project)">
127
			<xsl:for-each select="key('entryProj',@project)">
128
				<xsl:sort select="@build" order="ascending" data-type="number"/>
209
				<xsl:if test="(starts-with(@version,$version) or $version = '') and ($project = @project or $project = '')">
129
				<xsl:if test="(starts-with(@version,$version) or $version = '') and ($project = @project or $project = '')">
210
				<xsl:variable name="thisVersion"><xsl:value-of select="@version" /></xsl:variable>
130
					<xsl:variable name="thisVersion"><xsl:value-of select="@version"/></xsl:variable>
211
				<xsl:variable name="thisProject"><xsl:value-of select="@project" /></xsl:variable>
131
					<xsl:variable name="thisProject"><xsl:value-of select="@project"/></xsl:variable>
212
				<xsl:variable name="matchCount"><xsl:for-each select="//bug">
132
					<xsl:variable name="matchCount">
213
					<xsl:if test="starts-with(../@version,$thisVersion) and ../@project = $thisProject">1</xsl:if>
133
						<xsl:for-each select="//bug">
214
				</xsl:for-each></xsl:variable>
134
							<xsl:if test="starts-with(../@version,$thisVersion) and ../@project = $thisProject">1</xsl:if>
135
						</xsl:for-each>
136
					</xsl:variable>
215
137
216
					<xsl:if test="@build = @version">
138
					<xsl:if test="@build = @version">
217
						<!-- {@project}.{@version}.{@build} -->
139
						<!-- {@project}.{@version}.{@build} -->
218
						<tr><td colspan="1" class="normal">&#160;</td></tr>
140
						<li class="release">
219
						<tr class="content-header">
141
						<xsl:value-of select="@build"/> Release
220
							<td colspan="1" class="sub-header" width="99%">
142
						<xsl:if test="string-length($matchCount)>1"><xsl:text disable-output-escaping="yes">&#038;#160;</xsl:text>(<xsl:value-of select="string-length($matchCount)"/> Bugs)</xsl:if>
221
								<a name="{@project}.{@version}.{@build}"><xsl:value-of select="@build"/> Release</a>
143
						<a name="r{@version}"><xsl:text disable-output-escaping="yes">&#038;nbsp;</xsl:text></a>
222
							<xsl:if test="string-length($matchCount)>1">&#160;(<xsl:value-of select="string-length($matchCount)" /> Bugs)</xsl:if>
144
						</li>
223
							</td>
224
							<td width="5" align="top" valign="right"><a class="bodyText" style="text-decoration:none" href="#top">^</a></td>
225
						</tr>
226
					</xsl:if>
145
					</xsl:if>
227
146
228
					<xsl:variable name="rowColor">
147
					<li class="outerli">
229
						<xsl:choose>
148
					<xsl:choose>
230
							<xsl:when test="(position() mod 2 = 1)">#EEEEEE</xsl:when>
149
						<xsl:when test="@build = @version"><xsl:value-of select="@build"/> Release</xsl:when>
231
							<xsl:otherwise>#FFFFFF</xsl:otherwise>
150
						<xsl:when test="starts-with(@build,@version)"><xsl:value-of select="@build"/></xsl:when>
232
						</xsl:choose>
151
						<xsl:otherwise><xsl:value-of select="@version"/><xsl:text disable-output-escaping="yes">&#038;#160;</xsl:text><xsl:value-of select="@build"/></xsl:otherwise>
233
					</xsl:variable>
152
					</xsl:choose>
234
					<tr valign="top" bgcolor="{$rowColor}">
153
					<xsl:if test="count(bug)>1"> (<xsl:value-of select="count(bug)"/> Bugs)</xsl:if>
235
						<td class="normal" align="left" width="99%" colspan="2">
154
236
							
155
					<xsl:if test="count(bug)>0">
237
							<a name="{@project}.{@version}.{@build}"><b class="title">
156
						<xsl:if test="note!=''">
238
								<xsl:choose>
157
							<xsl:copy-of select="note/node()"/>
239
									<xsl:when test="@build = @version"><b><xsl:value-of select="@build" /> Release</b></xsl:when>
158
						</xsl:if>
240
									<xsl:when test="starts-with(@build,@version)"><b><xsl:value-of select="@build" /></b></xsl:when>
159
						<ul>
241
									<xsl:otherwise><xsl:value-of select="@version" />&#160;<xsl:value-of select="@build" /></xsl:otherwise>
160
						<xsl:for-each select="bug">
242
								</xsl:choose>
161
						<xsl:sort select="@id" data-type="number" order="descending"/>
243
							</b></a>
162
							<li>
244
							<xsl:if test="count(bug)>1">&#160;(<xsl:value-of select="count(bug)" /> Bugs)</xsl:if>
163
						<a href="http://www.eclipse.org/emf/searchcvs.php?q={@id}"><img src="http://www.eclipse.org/emf/images/delta.gif" alt="CVS Delta"/></a><xsl:text disable-output-escaping="yes">&#038;#160;</xsl:text>
245
164
							<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id={@id}" target="_bugz"><xsl:value-of select="@id"/></a><xsl:text disable-output-escaping="yes">&#038;#160;</xsl:text>
246
							<xsl:if test="note!=''">
165
							<xsl:value-of select="."/>
247
								<br/><span class="details"><xsl:copy-of select="note" /></span>
166
							</li>
248
							</xsl:if>
167
						</xsl:for-each>
249
							<xsl:if test="count(bug)>0">
168
						</ul>
250
								<table width="99%" cellspacing="0" cellpadding="2">
169
					</xsl:if>
251
								<xsl:for-each select="bug">
170
					</li>
252
									<xsl:sort select="@id" data-type="number" order="descending" />
253
									<tr id="name{../@project}{../@build}{position()}" onMouseOver="rowOver('{../@project}{../@build}{position()}','#C0D8FF')" onMouseOut="rowOut('{../@project}{../@build}{position()}','{$rowColor}')">
254
										<td>&#160;</td>
255
										<xsl:if test="(substring(../@build,1,5) = ../@version) or number(substring(../@build,2,8)) &gt;= 20041202">
256
											<td><a href="http://download.eclipse.org/technology/emft/whatsnew-cvs/?source={../@project}&amp;bug={@id}&amp;Bugzilla={@id}"><img src="http://www.eclipse.org/emf/images/delta.gif" border="0" alt="CVS Deltas - What's New, CVS?"/></a></td>
257
											<td>&#160;</td>
258
										</xsl:if>
259
										<td align="right"><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id={@id}" target="_bugz"><xsl:value-of select="@id" /></a></td>
260
										<td>&#160;</td>
261
										<td width="99%"><xsl:value-of select="." /></td>
262
									</tr>
263
								</xsl:for-each>
264
								</table>
265
							</xsl:if>
266
						</td>
267
					</tr>
268
				</xsl:if>
171
				</xsl:if>
269
			</xsl:for-each>
172
			</xsl:for-each>
270
			<tr><td class="spacer"><br/></td><td class="spacer"><br/></td></tr>
173
			</ul>
174
			</div>
271
		</xsl:if>
175
		</xsl:if>
272
		<xsl:if test="count(key('entryProj',@project)) = 0">
176
		<xsl:if test="count(key('entryProj',@project)) = 0">
273
			<tr><td colspan="1" class="normal">n/a</td></tr>
177
			<div>n/a</div> <!-- will this ever happen? -->
274
		</xsl:if>
178
		</xsl:if>
275
	</xsl:for-each>
179
	</xsl:for-each>
276
	</table>
180
	</div>
277
278
<xsl:if test="$showFiltersOrHeaderFooter!='1'">
279
280
<p>
281
	<a name="quicknav">
282
	<a href="/emf/emf.php">EMF Home</a> |
283
	<a href="/emf/sdo.php">SDO Home</a> | 
284
	<a href="/emf/xsd.php">XSD Home</a> | 
285
	<a href="#top">Top of Page</a>
286
	</a>
287
</p>
288
289
<!-- wrapper for left nav -->
290
</xsl:if>
291
292
</td></tr></table>
293
294
</html>
295
</xsl:for-each>
181
</xsl:for-each>
296
</xsl:template>
182
</xsl:template>
297
183
298
</xsl:stylesheet>
184
</xsl:stylesheet>
299
<!-- $Id: release-notes.xsl,v 1.11 2006/07/21 21:35:02 nickb Exp $ -->
185
<!-- $Id: release-notes.xsl,v 1.11 2006/07/21 21:35:02 nickb Exp $ -->
(-)projects/index.php (-200 / +91 lines)
Lines 1-204 Link Here
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1
<?php
2
<?php 
2
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon());
3
		$HTMLTitle = "EMFT - ".strtoupper($page)." Home";
4
		$noHeader=true; 
5
		$newsInSidebar=true; // don't include news in footer
6
		$pre = !$pre?"../":$pre;
7
		include $pre."includes/header.php"; ?>
8
9
<!-- wrapper for left nav -->
10
<table cellspacing="0" cellpadding="0" border="0" width="100%">
11
	<tr valign="top"><td colspan="1" align="left" width="100%">
12
    <table border="0" cellspacing="0" cellpadding="0" WIDTH="100%" BGCOLOR="#006699" >
13
14
     <tr>
15
          <td BGCOLOR="#000000" width="116" ><a name="top"></a><a href="http://www.eclipse.org" target="_top"><img src="http://www.eclipse.org/images/EclipseBannerPic.jpg" width="115" height="50" border="0"/></a></td>
16
          <td WIDTH="637"><img SRC="http://www.eclipse.org/images/gradient.jpg" border="0" height="50" width="282"/></td>
17
          <td WIDTH="250"><img src="http://www.eclipse.org/images/eproject-simple.GIF" width="250" height="48"/></td>
18
     </tr>
19
    </table>
20
   </td>
21
  </tr>
22
</table>
23
<table cellspacing="0" cellpadding="0" border="0">
24
	<tr valign=top>
25
		<td align=left width=115 bgcolor="#6699CC"><?php include_once $pre."includes/nav.html"; ?></td>
26
		<td><img src="http://www.eclipse.org/emf/images/c.gif" border="0" width="3" height="1"></td><td align="left" width="100%">
27
&#160;
28
<table border="0" cellpadding="2" width="100%">
29
  <tbody>
30
31
    <tr>
32
      <td align="left" width="60%">
33
        <font class="indextop"><?php if (!$ProjectName[0]) { echo "EMFT"; } else { echo $ProjectName[0]; } ?></font><br>
34
        <font class="indexsub"><?php if (!$ProjectName[1]) { echo "Eclipse Modeling Framework Technologies"; } else { echo $ProjectName[1]; } ?></font>
35
      </td>
36
      <td width="40%">
37
        <img src="<?php if (!$ProjectName[3]) { echo "http://www.eclipse.org/emf/images/c.gif"; } else { echo (strstr($ProjectName[3],$WWWpre)?$ProjectName[3]:$WWWpre.$ProjectName[3]); } ?>" align="right"/>
38
      </td>
39
40
    </tr>
41
  </tbody>            
42
</table>
43
44
<table BORDER=0 CELLPADDING=2 WIDTH="100%" >
45
<tr>
46
<td ALIGN=right VALIGN=TOP><b><font face="Arial,Helvetica"><small><a href="#quicknav">Quick Nav</a></small></td>
47
</tr>
48
</table>
49
50
51
<!-- main content starts here -->
52
The Eclipse Modeling Framework Technology project was initiated to incubate new technologies that
53
extend or complement EMF. For IP log 
54
information see the <a href="http://www.eclipse.org/emft/eclipse-project-ip-log.csv">IP Log</a> (CSV).
55
56
<br><br>
57
See the following for the EMFT 1.0 Release Review Presentations:<br>
58
<a href="http://www.eclipse.org/emft/doc/rel_review/ocl_query_val_tran_1.0/EMFT_OCL_Query_Validation_Transaction_1.0_Release_Review.htm">EMFT 1.0 Release Review Presentation (OCL, Transaction, Query and Validation)</a>.<br/> 
59
60
<br><br>
61
<table border="0" cellpadding="2" width="100%" >
62
<tr valign="top">
63
64
	<td width="99%"> 
65
	<table cellpadding="2" cellspacing="2" border="0" width="100%">
66
			<?php 
67
			
68
			if (!$pages || !is_array($pages) || sizeof($pages)<1) {
69
				// default pages list - columns for the projects  
70
				$pages=loadDirSimple($pre."projects",".*","d"); sort($pages); reset ($pages); 
71
			} ?>
72
			<?php foreach ($pages as $page) { if ($page==$proj && is_file($pre."projects/".$page."/overview.php")) { $introText = ""; $detailText = ""; ?>
73
			<tr><td nowrap class="head_section"><b><?php echo strtoupper($page); ?></b><a name="top">&#160;</a></td></tr>
74
			<tr><td class="box-9pt" width="100%"><?php include_once $page."/overview.php"; 
75
			echo $detailText; doDownloadLink($page); ?></td></tr>
76
			<tr><td>&#160;</td></tr>
77
			<?php } } ?>
78
			<?php foreach ($pages as $page) { if ($page!=$proj && is_file($pre."projects/".$page."/overview.php")) { $introText = ""; $detailText = ""; ?>
79
			<tr><td nowrap class="head_section"><b><?php echo strtoupper($page); ?></b><a name="top">&#160;</a></td></tr>
80
			<tr><td class="box-9pt" width="100%"><?php include_once $page."/overview.php"; 
81
			echo $introText; doMoreLink($page); doDownloadLink($page); ?></td></tr>
82
			<tr><td>&#160;</td></tr>
83
			<?php } } ?>
84
	</table>
85
	</td> 
86
87
	<td rowspan="1" valign="top">
88
89
	<table width="212" cellpadding="2" cellspacing="2" border="0">
90
		<tr>
91
92
			<td colspan="3" class="head_section">
93
				<b>News</b>
94
			</td>
95
		</tr>
96
		<tr>
97
			<td class="box">	
98
				<br />
99
					<table>
100
					<?php getNews(3,"whatsnew","vert"); ?>
101
					</table>
102
				<br/>
103
104
	- <a href="http://www.eclipse.org/emft/news/release-notes.php">EMFT Release Notes</a><br><br>
105
106
	- <a href="<?php echo $pre; ?>news/news-whatsnew.php">What's New</a> [<a href="<?php echo $pre; ?>news/news-whatsnew.php">more</a>]</a><br><br>
107
108
109
			</td>
110
		</tr>
111
	</table>
112
113
	<br />
114
115
	<table width="212" cellpadding="2" cellspacing="2" border="0">
116
		<tr>
117
118
			<td colspan="3" class="head_section">
119
				<b>Eclipse Modeling Corner</b>
120
			</td>
121
		</tr>
122
		<tr>
123
			<td class="box">	<br/>
124
			Want to <a href="http://www.eclipse.org/emf/models/models.xml">contribute</a> to <a href="http://www.eclipse.org/emf/emf.php">EMF</a>? Now you can!<br/><br/>
125
			Have a look, post your comments, <a href="http://www.eclipse.org/emf/models/models.xml">submit</a> your code, or just read what others have written. <br><br>
126
		</td>
127
		</tr></table>
128
129
	<br/>
130
131
<!--	<table width="212" cellpadding="2" cellspacing="2" border="0">
132
		<tr>
133
134
			<td colspan="3" class="head_section">
135
				<b>Subprojects</b>
136
			</td>
137
		</tr>
138
		<tr>
139
			<td class="box">	
140
				<br />
141
				- <a href="/emf/emf.php">Eclipse Modeling Framework (EMF)</a><br /><br />
142
143
				- <a href="/emf/sdo.php">Service Data Objects (SDO)</a><br /><br />
144
145
				- <a href="/emf/xsd.php">XML Schema Infoset Model (XSD)</a><br /><br />
146
				
147
			</td>
148
		</tr>
149
	</table>
150
151
	<br /> -->
152
153
	<table width="212" cellpadding="2" cellspacing="2" border="0">
154
		<tr>
155
			<td colspan="3" class="head_section">
156
				<b>Related links</b>
157
158
			</td>
159
		</tr>
160
		<tr>
161
			<td class="box">	
162
				<br />
163
					- <a href="http://www.eclipse.org/emf">EMF</a><br /><br />
164
					- <a href="http://www.eclipse.org/uml2">UML2</a><br /><br />
165
					- <a href="http://www.eclipse.org/emf/docs.php?doc=docs/UsingUpdateManager/UsingUpdateManager.html">Using Update Manager</a><br /><br />
166
					- <a href="http://www.eclipse.org/newsgroups">Eclipse newsgroups</a><br /><br />
167
					- <a href="http://wiki.eclipse.org/index.php/EMFT_Procedures">EMFT Build &amp; Promote Procedures</a><br /><br />
168
169
				</ul>
170
			</td>
171
		</tr>
172
	</table>
173
174
	</td>
175
176
</tr>
177
178
</table>
179
180
<?php include $pre."includes/nav.php"; ?>
181
182
<p>
183
	<a href="<?php if ($isWWWserver) { ?>/emf<?php } else { ?>/tools/emf/scripts<?php } ?>/emf.php">EMF Home</a> |
184
	<a href="<?php if ($isWWWserver) { ?>/emf<?php } else { ?>/tools/emf/scripts<?php } ?>/sdo.php">SDO Home</a> | 
185
	<a href="<?php if ($isWWWserver) { ?>/emf<?php } else { ?>/tools/emf/scripts<?php } ?>/xsd.php">XSD Home</a> | 
186
	<a href="#top">Top of Page</a>
187
</p>
188
189
<!-- $Id: index.php,v 1.21 2006/06/14 16:19:46 pelder Exp $ -->
190
</body></html>
191
192
<?php 
193
194
function doMoreLink($proj) { global $pre; 
195
	echo ' <a href="'.$pre.'projects/'.$proj.'/">More...</a>';
196
} 
197
198
function doDownloadLink($proj) { global $pre; 
199
	echo '<p align="right"><small><a href="http://download.eclipse.org/technology/emft/downloads/?proj='.$proj.'">Downloads</a></small></p>';
200
} 
201
3
4
ob_start();
5
6
$pre = ($pre ? $pre : "../");
7
include $pre . "includes/header.php";
8
$proj = (preg_match("#^/emft/projects/(.+)/index.php$#", $_SERVER["PHP_SELF"], $regs) ? $regs[1] : "");
202
?>
9
?>
203
10
11
<div id="midcolumn">
12
	<div class="homeitem3col">
13
		<h3>About EMFT</h3>
14
		<p>
15
			The Eclipse Modeling Framework Technology project was initiated to incubate new technologies that extend or complement EMF.
16
			For IP log information see the <a href="http://www.eclipse.org/emft/eclipse-project-ip-log.csv">IP Log</a> (CSV).
17
		</p>
18
19
		<p>
20
			See the following for the EMFT 1.0 Release Review Presentations:
21
			<a href="http://www.eclipse.org/emft/doc/rel_review/ocl_query_val_tran_1.0/EMFT_OCL_Query_Validation_Transaction_1.0_Release_Review.htm">EMFT 1.0 Release Review Presentation (OCL, Transaction, Query and Validation)</a>.
22
		</p>
23
	</div>
24
25
	<?php
26
	foreach (array_keys($projects) as $page) //projects are defined in _projectCommon.php
27
	{
28
		$extra = "";
29
30
		print "<div class=\"homeitem3col\">\n";
31
		print "<a name=\"$projects[$page]\"></a>";
32
		print "<h3>$page</h3>\n";
33
		include_once "$projects[$page]/overview.php"; 
34
		if ($projects[$page] == $proj)
35
		{
36
			print $detailText;
37
		}
38
		else
39
		{
40
			print $introText;
41
			$extra = "<li><a href=\"${pre}projects/$projects[$page]/#$projects[$page]\">More...</a></li>";
42
		}
43
		print "<ul class=\"extras\">$extra<li><a href=\"http://download.eclipse.org/technology/emft/downloads/?proj=$projects[$page]\">Downloads</a></li></ul>\n";
44
		print "</div>\n";
45
	}
46
	?>
47
48
	<?php include $pre . "includes/nav.php"; ?>
49
	<!-- $Id: index.php,v 1.21 2006/06/14 16:19:46 pelder Exp $ -->
50
</div>
51
52
<div id="rightcolumn">
53
	<div class="sideitem">
54
		<h6>News</h6>
55
		<?php getNews(3, "whatsnew", "vert"); ?>
56
		<ul>
57
			<li><a href="http://www.eclipse.org/emft/news/release-notes.php">EMFT Release Notes</a></li>
58
			<li><a href="<?php echo $pre; ?>news/news-whatsnew.php">What's New</a> [<a href="<?php echo $pre; ?>news/news-whatsnew.php">more</a>]</li>
59
		</ul>
60
	</div>
61
62
	<div class="sideitem">
63
		<h6>Modeling Corner</h6>
64
		<p>Want to <a href="http://wiki.eclipse.org/index.php/Modeling_Corner">contribute</a> models, projects, files, ideas, utilities, or code to 
65
		<a href="http://www.eclipse.org/emft/">EMFT</a> or any other part of the <a href="http://www.eclipse.org/modeling/">Modeling Project</a>? 
66
		Now you can!</p>
67
		<p>Have a look, post your comments, submit a link, or just read what others have written. <a href="http://wiki.eclipse.org/index.php/Modeling_Corner">Details here</a>.</p>
68
	</div>
69
70
	<div class="sideitem">
71
		<h6>Related links</h6>
72
		<ul>
73
			<li><a href="http://www.eclipse.org/emf">EMF</a></li>
74
			<li><a href="http://www.eclipse.org/uml2">UML2</a></li>
75
			<li><a href="http://www.eclipse.org/emf/docs.php?doc=docs/UsingUpdateManager/UsingUpdateManager.html">Using Update Manager</a></li>
76
			<li><a href="http://www.eclipse.org/newsgroups">Eclipse newsgroups</a></li>
77
			<li><a href="http://wiki.eclipse.org/index.php/EMFT_Procedures">EMFT Build &amp; Promote Procedures</a></li>
78
			<!-- <li><a href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_1.html">Eclipse 3.1 Project Plan</a></li> -->
79
		</ul>
80
	</div>
81
</div>
82
83
<?php
84
$html = ob_get_contents();
85
ob_end_clean();
86
87
$pageTitle = "EMFT - Home";
88
$pageKeywords = ""; // TODO: add something here
89
$pageAuthor = "Neil Skrypuch";
90
91
$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/emft/includes/index.css"/>' . "\n");
92
$App->AddExtraHtmlHeader('<style type="text/css">.homeitem { clear: none; }</style>' . "\n"); //hack for ie, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=154356
204
93
94
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
95
?>
(-)projects/overview_empty_stub.php (-12 / +12 lines)
Lines 1-14 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>This is an intro stub.
4
	'This is an intro stub. <br>' .
4
	To edit it, go to <b>/cvsroot/org.eclipse/www/emft/projects/$page/</b> and 
5
	'To edit it, go to <b>/cvsroot/org.eclipse/www/emft/projects/'.$page.'/</b> and ' .
5
	update <b>overview.php</b>.</p>
6
	'update <b>overview.php</b>.'; 
6
EOT;
7
	
7
	
8
$detailText = 
8
$detailText = <<<EOT
9
	'This is a detail page stub. <br>' .
9
	<p>This is a detail page stub.
10
	'This will contain a full page of content &amp; possibly graphics introducing this project. <br>' .
10
	This will contain a full page of content &amp; possibly graphics introducing this project.
11
	'To edit it, go to <b>/cvsroot/org.eclipse/www/emft/projects/'.$page.'/</b> and ' .
11
	To edit it, go to <b>/cvsroot/org.eclipse/www/emft/projects/$page/</b> and 
12
	'update <b>overview.php</b>.'; 
12
	update <b>overview.php</b>.</p>
13
13
EOT;
14
?>
14
?>
(-)projects/cdo/overview.php (-15 / +13 lines)
Lines 1-17 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>CDO is both a technology for distributed shared EMF models and a fast server-based O/R mapping solution.</p>
4
    'CDO is both a technology for distributed shared EMF models and a fast server-based 
4
EOT;
5
    O/R mapping solution.';
6
    	
5
    	
7
$detailText = 
6
$detailText = <<<EOT
8
    'CDO is both a technology for distributed shared EMF models and a fast server-based 
7
	<p>CDO is both a technology for distributed shared EMF models and a fast server-based 
9
    O/R mapping solution. With CDO you can easily enhance your existing models in such a way that 
8
	O/R mapping solution. With CDO you can easily enhance your existing models in such a way that 
10
    saving a resource transparently commits the applied changes to a relational database. Optionally 
9
	saving a resource transparently commits the applied changes to a relational database. Optionally 
11
    other connected clients are actively notified about these changes so that their model copies get 
10
	other connected clients are actively notified about these changes so that their model copies get 
12
    partially invalidated and all user interfaces reflect the current state at once. Stored resources 
11
	partially invalidated and all user interfaces reflect the current state at once. Stored resources 
13
    are demand-loaded from the database only as needed. CDO uses the Net4j technology as a flexible 
12
	are demand-loaded from the database only as needed. CDO uses the Net4j technology as a flexible 
14
    an scalable signalling backbone.';
13
	and scalable signalling backbone.</p>
15
14
EOT;
16
15
?>
17
?>
(-)projects/eodm/overview.php (-26 / +27 lines)
Lines 1-28 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>EODM is an implementation of RDF(S)/OWL metamodels of the <a href="http://www.omg.org/ontology">Ontology Definition Metamodel (ODM)</a>
4
	'EODM is an implementation of RDF(S)/OWL metamodels of the <a href="http://www.omg.org/ontology">Ontology Definition Metamodel (ODM)</a> ' .
4
	using EMF with additional parsing, inference, model transformation and editing functions.
5
	'using EMF with additional parsing, inference, model transformation and editing functions. ' .
5
	EODM is part of the <a href="http://www.alphaworks.ibm.com/tech/semanticstk">IBM Integrated Ontology Development Toolkit (IODT)</a>.</p>
6
	'EODM is part of the <a href="http://www.alphaworks.ibm.com/tech/semanticstk">IBM Integrated Ontology Development Toolkit (IODT)</a>. ' ; 
6
EOT;
7
	
7
	
8
$detailText = 
8
$detailText = <<<EOT
9
	'EODM is an implementation of RDF(S)/OWL metamodels of the <a href="http://www.omg.org/ontology">Ontology Definition Metamodel (ODM)</a> ' .
9
	<p>EODM is an implementation of RDF(S)/OWL metamodels of the <a href="http://www.omg.org/ontology">Ontology Definition Metamodel (ODM)</a>
10
	'using EMF with additional parsing, inference, model transformation and editing functions. ' .
10
	using EMF with additional parsing, inference, model transformation and editing functions.
11
	'EODM is part of the <a href="http://www.alphaworks.ibm.com/tech/semanticstk">IBM Integrated Ontology Development Toolkit (IODT)</a>. ' . 
11
	EODM is part of the <a href="http://www.alphaworks.ibm.com/tech/semanticstk">IBM Integrated Ontology Development Toolkit (IODT)</a>.
12
	'The proposed ODM standard unifies UML and MOF Standards from OMG and the emerging Semantic Web standards ' .
12
	The proposed ODM standard unifies UML and MOF Standards from OMG and the emerging Semantic Web standards
13
	'from <a href="http://www.w3.org">W3C</a> - <a href="http://www.w3.org/RDF">RDF (Resource Description Framework)</a> ' .
13
	from <a href="http://www.w3.org">W3C</a> - <a href="http://www.w3.org/RDF">RDF (Resource Description Framework)</a>
14
	'and <a href="http://www.w3.org/2004/OWL">OWL (Web Ontology Language)</a> specifically. ' .
14
	and <a href="http://www.w3.org/2004/OWL">OWL (Web Ontology Language)</a> specifically.
15
	'It is the fist coherent effort to integrate Model Driven Technologies and Semantic Web Technologies. ' . 
15
	It is the fist coherent effort to integrate Model Driven Technologies and Semantic Web Technologies.
16
	'EODM uses Eclipse and Eclipse Modeling Framework (EMF) to drive this integration. It is the first design ' . 
16
	EODM uses Eclipse and Eclipse Modeling Framework (EMF) to drive this integration. It is the first design
17
	'and implementation of ODM within the Eclipse, EMF and Semantic Web community. EODM allows users to load a ' . 
17
	and implementation of ODM within the Eclipse, EMF and Semantic Web community. EODM allows users to load a
18
	'RDF/OWL ontology into EMF-based Java objects, to manipulate and infer the EMF Java objects which represents ' . 
18
	RDF/OWL ontology into EMF-based Java objects, to manipulate and infer the EMF Java objects which represents
19
	'the RDF/OWL ontology in memory, and to serialize the Java objects to an ontology in RDF/XML syntax. EODM also ' .
19
	the RDF/OWL ontology in memory, and to serialize the Java objects to an ontology in RDF/XML syntax. EODM also
20
	'provides model transformation capabilities between RDF/OWL and other modeling languages, such as ECore, UML and ER etc. ' .
20
	provides model transformation capabilities between RDF/OWL and other modeling languages, such as ECore, UML and ER etc.</p>
21
	'<br><br> ' .
21
	<p>EODM includes the following components:</p>
22
	'EODM includes the following components: <br><br>' .
22
	<ol>
23
    '1) EMF-based RDF/OWL Model<br>' .
23
		<li>EMF-based RDF/OWL Model</li>
24
    '2) RDF Core which includes RDF parser, reasoner and transformer<br>' .
24
		<li>RDF Core which includes RDF parser, reasoner and transformer</li>
25
    '3) OWL Core which includes OWL parser, reasoner and transformer<br>' .
25
		<li>OWL Core which includes OWL parser, reasoner and transformer</li>
26
    '4) Basic Workbench which provides basic Eclipse editors for RDF/OWL<br>' ;
26
		<li>Basic Workbench which provides basic Eclipse editors for RDF/OWL</li>
27
    
27
	</ol>
28
?>
28
EOT;
29
?>
(-)projects/jet/overview.php (-22 / +24 lines)
Lines 1-26 Link Here
1
<?php 
1
<?php 
2
$introText = <<<EOT
3
	<p>The JET component provides code generation framework &amp; facilities that are used by EMF.
4
	JSP-like template files can be edited and transformed into any kind of source artifact including java, html, properties or xml files in a very simple way.</p>
5
EOT;
2
6
3
$introText = 
7
$detailText = <<<EOT
4
	'The JET component provides code generation framework & facilities that are used by EMF. <br>' .
8
	<p>JET is typically used in the implementation of a "code generator". A code-generator is an important component of Model Driven Development (MDD).
5
	'JSP-like template files can be edited and transformed into any kind of source artifact including java, html, properties or xml files in a very simple way.';
9
	The goal of MDD is to describe a software system using abstract models (such as EMF/ECORE models or UML models), and then refine and
10
	transform these models into code. Although is possible to create abstract models, and manually transform them into code, the real power of MDD comes from automating this process.
11
	Such <b>transformations</b> accelerate the MDD process, and result in better code quality. The transformations can capture the "best practices" of experts, and can
12
	ensure that a project consistently employes these practices.</p>
6
13
7
$detailText = 
14
	<p>However, transformations are not always perfect. Best practices are often dependent on context - what is optimal in one context may be
8
	'<p>JET is typically used in the implementation of a "code generator". A code-generator is an important component of Model Driven Development (MDD). <br>' .
15
	suboptimal in another. Transformations can address this issue by including some mechanism for end-user modification of the code generator.
9
	'The goal of MDD is to describe a software system using abstract models (such as EMF/ECORE models or UML models), and then refine and ' .
16
	This is frequently done by using "templates" to create artifacts, and allowing users to substitute their own implementations of these templates if necessary.
10
	'transform these models into code. Although is possible to create abstract models, and manually transform them into code, the real power of MDD comes from automating this process. <br>' .
17
	This is the role of JET.</p>
11
	'Such <b>transformations</b> accelerate the MDD process, and result in better code quality. The transformations can capture the "best practices" of experts, and can ' .
12
	'ensure that a project consistently employes these practices.</p>' .
13
	'<p>However, transformations are not always perfect. Best practices are often dependent on context - what is optimal in one context may be ' .
14
	'suboptimal in another. Transformations can address this issue by including some mechanism for end-user modification of the code generator. This is frequently done by using ' .
15
	'"templates" to create artifacts, and allowing users to substitute their own implementations of these templates if necessary. <br>' .
16
	'This is the role of JET.</p>' .
17
	'<p>This component provides:</p>' .
18
	'<ul>' .
19
	' <li>Expand the JET language to support custom tags (which are distributed in "tag libraries). (The language specification will be described in a separate document.)</li> ' .
20
	' <li>Define Java interfaces and Eclipse Extension points for declaring custom tag libraries.</li> ' .
21
	' <li>Provide Standard JET tag libraries that make it possible to create entire transformations without recourse to Java and the Eclipse APIs. (These tag libraries will be described in a separate document.)</li>' . 
22
	' <li>Provide Eclipse API and UI for invoking such transformations.</li>' .
23
	' <li>Provide a JET template editor</li>' .
24
	'</ul>'; 
25
18
26
?>
19
	<p>This component provides:</p>
20
	<ol>
21
		<li>Expand the JET language to support custom tags (which are distributed in "tag libraries"). (The language specification will be described in a separate document.)</li>
22
		<li>Define Java interfaces and Eclipse Extension points for declaring custom tag libraries.</li>
23
		<li>Provide Standard JET tag libraries that make it possible to create entire transformations without recourse to Java and the Eclipse APIs. (These tag libraries will be described in a separate document.)</li>
24
		<li>Provide Eclipse API and UI for invoking such transformations.</li>
25
		<li>Provide a JET template editor.</li>
26
	</ol>
27
EOT;
28
?>
(-)projects/jeteditor/overview.php (-11 / +11 lines)
Lines 1-14 Link Here
1
<?php 
1
<?php 
2
$introText = <<<EOT
3
	<p>The JETEditor provides a rich text editor component for editing JET templates within Eclipse.
4
	The editor features syntax coloring, error highlighting and code completion.</p>
5
EOT;
2
6
3
$introText = 
7
$detailText = <<<EOT
4
	'The JETEditor provides a rich text editor component for editing JET templates within Eclipse. <br>' .
8
	<p>The mix of JSP-like script and template content in JET templates might rapidly become confusing and makes template editing challenging.
5
	'The editor features syntax coloring, error highlighting and code completion.';
9
	Template authors need a way to have a clearer view of the different text partitions and to reduce the complexity of writing the templates.
6
10
	The JET Editor leverages Eclipse text editor framework to provide this capability via features like syntax coloring, error highlighting and code completion.
7
$detailText = 
11
	Whereas JET Editor is bound to support the new EMFT implementation of the JET templates technology in a near future, it should currently
8
	'The mix of JSP-like script and template content in JET templates might rapidly become confusing and makes template editing challenging.' .
12
	only be used for the org.eclipse.emf.codegen implementation of the JET technology.</p>
9
	'<br/>Template authors need a way to have a clearer view of the different text partitions and to reduce the complexity of writing the templates.' .
13
EOT;
10
	'The JET Editor leverages Eclipse text editor framework to provide this capability via features like syntax coloring, error highlighting and code completion.' .
11
	'<br/>Whereas JET Editor is bound to support the new EMFT implementation of the JET templates technology in a near future, it should currently ' .
12
	'only be used for the org.eclipse.emf.codegen implementation of the JET technology.' ;
13
14
?>
14
?>
(-)projects/net4j/overview.php (-10 / +11 lines)
Lines 1-12 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>Net4j is an extensible client-server system based on the Eclipse Runtime and the Spring Framework.</p>
4
	'Net4j is an extensible client-server system based on the Eclipse Runtime and the Spring Framework.'; 
4
EOT;
5
	
5
	
6
$detailText = 
6
$detailText = <<<EOT
7
    'Net4j is an extensible client-server system based on the Eclipse Runtime and the Spring Framework.
7
	<p>Net4j is an extensible client-server system based on the Eclipse Runtime and the Spring Framework.
8
    You can easily extend the protocol stack with Eclipse plugins that provide new transport or application protocols. Net4j\'s 
8
	You can easily extend the protocol stack with Eclipse plugins that provide new transport or application protocols. Net4j's 
9
    focus on performance and scalability is featured by non-blocking I/O, zero-copy signals and multiplexed binary protocols. 
9
	focus on performance and scalability is featured by non-blocking I/O, zero-copy signals and multiplexed binary protocols. 
10
    Net4j was originally developed to support the CDO technology for distributed shared and persistent EMF models but can 
10
	Net4j was originally developed to support the CDO technology for distributed shared and persistent EMF models but can 
11
    also multiplex your own user-supplied application protocols through the same socket connection.';
11
	also multiplex your own user-supplied application protocols through the same socket connection.</p>
12
?>
12
EOT;
13
?>
(-)projects/ocl/overview.php (-15 / +19 lines)
Lines 1-17 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>The OCL component provides capabilities for queries, constraint parsing, constraint validation and content assist for user models.
4
	'The OCL component provides capabilities for queries, constraint parsing, constraint validation and content assist for user models. It defines the API for constructing, validating, and evaluating OCL queries and constraints on EMF model elements. The OCL expression syntax are used to implement OCL queries and constraints. It provides support for OCL syntax completion and parsing on the meta-model and user model level.';
4
	It defines the API for constructing, validating, and evaluating OCL queries and constraints on EMF model elements.
5
	The OCL expression syntax are used to implement OCL queries and constraints.
6
	It provides support for OCL syntax completion and parsing on the meta-model and user model level.</p>
7
EOT;
5
	
8
	
6
$detailText = 
9
$detailText = <<<EOT
7
	'The OCL component provides the following capabilities to support OCL integration. <br>' .
10
	<p>The OCL component provides the following capabilities to support OCL integration.</p>
8
	'1) Defines APIs for OCL expression syntax. <br>' .
11
	<ol>
9
	'2) OCL expressions are used to implement OCL queries (Query) and constraints. <br>' .
12
		<li>Defines APIs for OCL expression syntax.</li>
10
	'3) The Visitor interface allows walking an OCL expression AST. <br>' .
13
		<li>OCL expressions are used to implement OCL queries (Query) and constraints.</li>
11
	'<p>The OCL parser is generated by the LALR Parser Generator, a SourceForge project, ' .
14
		<li>The Visitor interface allows walking an OCL expression AST.</li>
12
	'licensed under the <a href="http://www.eclipse.org/legal/epl-v10.html">EPL v1.0</a>. ' .
15
	</ol>
13
	'Download it from the <a href="http://sourceforge.net/projects/lpg/">LPG home page</a>. ' .
16
	<p>The OCL parser is generated by the LALR Parser Generator, a SourceForge project,
14
	'This site includes the generator executable required to regenerate the parser ' .
17
	licensed under the <a href="http://www.eclipse.org/legal/epl-v10.html">EPL v1.0</a>.
15
	'code.</p>';
18
	Download it from the <a href="http://sourceforge.net/projects/lpg/">LPG home page</a>.
16
19
	This site includes the generator executable required to regenerate the parser code.</p>
17
?>
20
EOT;
21
?>
(-)projects/query/overview.php (-17 / +19 lines)
Lines 1-19 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>The query component provides capabilities to specify and execute queries against EMF model elements and their contents.</p>
4
	'The query component provides capabilities to specify and execute queries against EMF model elements and their contents.';
4
EOT;
5
	
5
	
6
$detailText = 
6
$detailText = <<<EOT
7
	'The query component facilitates the process of search and retrieval of model elements of interest in a flexible yet controlled and structured manner. Provides API support for the basic EObject based Condition objects that are used to formulate queries for EMF models. <br>' .
7
	<p>The query component facilitates the process of search and retrieval of model elements of interest in a flexible yet controlled and structured manner. Provides API support for the basic EObject based Condition objects that are used to formulate queries for EMF models.</p>
8
	'The query component provides the following classes/interfaces to support queries. <br>' .
8
	<p>The query component provides the following classes/interfaces to support queries.</p>
9
	'1) The IEObjectSource interface provides the search scope elements to be used in a query. <br>' .
9
	<ol>
10
	'2) The SELECT class implements a template-function that does the iteration over model elements and applies the search condition on each; it collects the resulting elements into a QueryResultSet object and returns it to the caller. <br>' .
10
		<li>The IEObjectSource interface provides the search scope elements to be used in a query.</li>
11
	'3) The FROM class represents the elements to search. It is responsible of providing an appropriate iterator for the elements in the search space. <br>' .
11
		<li>The SELECT class implements a template-function that does the iteration over model elements and applies the search condition on each; it collects the resulting elements into a QueryResultSet object and returns it to the caller.</li>
12
	'4) The WHERE class applies the search conditions over the elements in the search set. <br>' .
12
		<li>The FROM class represents the elements to search. It is responsible of providing an appropriate iterator for the elements in the search space.</li>
13
	'5) The UPDATE class passes the elements who satisfy the search condition to a caller-supplied modification function. It collects the modified elements into a QueryResultSet object and returns it to the caller. <br>' .
13
		<li>The WHERE class applies the search conditions over the elements in the search set.</li>
14
	'6) The QueryResultSet class represents the set of elements returned by a given query. <br>' .
14
		<li>The UPDATE class passes the elements who satisfy the search condition to a caller-supplied modification function. It collects the modified elements into a QueryResultSet object and returns it to the caller.</li>
15
	'7) The EObjectCondition class is the abstract parent of all conditions that deal with model-elements (i.e., EObjects). It incorporates the services of a PruneHandler in order to answers whether or not to prune the element tree at a specific element and thus ignore its children. <br>' .
15
		<li>The QueryResultSet class represents the set of elements returned by a given query.</li>
16
	'8) The ConditionPolicy class is used to allow the user to decide how to apply a given condition on a collection of a model-element EAttributes or EReferences values. Supports both the: exists (ANY) and for-all (ALL) semantics. <br>' .
16
		<li>The EObjectCondition class is the abstract parent of all conditions that deal with model-elements (i.e., EObjects). It incorporates the services of a PruneHandler in order to answers whether or not to prune the element tree at a specific element and thus ignore its children.</li>
17
	'9) The EObjectStructuralFeatureValueCondition class is the parent class for conditions that are responsible for checking the values held in model-elementsÂ’ attributes or references.';
17
		<li>The ConditionPolicy class is used to allow the user to decide how to apply a given condition on a collection of a model-element EAttributes or EReferences values. Supports both the: exists (ANY) and for-all (ALL) semantics.</li>
18
	
18
		<li>The EObjectStructuralFeatureValueCondition class is the parent class for conditions that are responsible for checking the values held in model-elements attributes or references.</li>
19
?>
19
	</ol>
20
EOT;
21
?>
(-)projects/transaction/overview.php (-14 / +18 lines)
Lines 1-16 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>The transaction component provides a model management layer built on top of EMF for managing EMF resources.
4
	'The transaction component provides a model management layer built on top of EMF for managing EMF resources. It provides API that include extensions to the EditingDomain and related APIs of the EMF.Edit framework, and an internal model of transactions. It consists of two layers: a non-Eclipse core, providing primarily the "transaction model", and an Eclipse workspace integration layer.';
4
	It provides API that include extensions to the EditingDomain and related APIs of the EMF.Edit framework, and an internal model of transactions.
5
	It consists of two layers: a non-Eclipse core, providing primarily the "transaction model", and an Eclipse workspace integration layer.</p>
6
EOT;
5
	
7
	
6
$detailText = 
8
$detailText = <<<EOT
7
	'The transaction component provides the following capabilities. <br>' .
9
	<p>The transaction component provides the following capabilities.</p>
8
	'1) Multi-threading - Supports a protocol for clients to read and write EMF models on multiple threads. <br>' .
10
	<ol>
9
	'2) Model Integrity - Semantic integrity is ensured by automatic validation to detect invalid changes and semantic procedures to proactively maintain correctness of semantic dependencies. <br>' .
11
		<li>Multi-threading - Supports a protocol for clients to read and write EMF models on multiple threads.</li>
10
	'3) Batched Events - Clients are notified of groups of related changes in batches, rather than as a stream of EMF notifications. In particular, this allows applications to analyze change sets in their entirety. <br>' .
12
		<li>Model Integrity - Semantic integrity is ensured by automatic validation to detect invalid changes and semantic procedures to proactively maintain correctness of semantic dependencies.</li>
11
	'4) Undo/Redo -  For a simplified programming model, the API automatically tracks changes applied to models without the need for client code to use EMF edit Commands. These changes are encapsulated in transactions/operations that can undo and redo themselves. <br>' .
13
		<li>Batched Events - Clients are notified of groups of related changes in batches, rather than as a stream of EMF notifications. In particular, this allows applications to analyze change sets in their entirety.</li>
12
	'5) Editing Domain - Support cooperative editing of models by multiple editors/applications. EMF resources can be shared amongst different editing domains. <br>' .
14
		<li>Undo/Redo -  For a simplified programming model, the API automatically tracks changes applied to models without the need for client code to use EMF edit Commands. These changes are encapsulated in transactions/operations that can undo and redo themselves.</li>
13
	'6) Eclipse Workspace  - The API provides traceability between EMF resources and workspace resources. Multi-threaded access is coordinated via the Eclipse jobs API and its integration with the workspace. <br>' .
15
		<li>Editing Domain - Support cooperative editing of models by multiple editors/applications. EMF resources can be shared amongst different editing domains.</li>
14
	'7) Eclipse Operations - The API supports the Eclipse operation history as an undo stack for undo/redo of resource changes. The API provides a framework for undoable operations that automatically capture undo/redo information, which can be interleaved on the same history with dependent operations that do not modify the EMF model.';
16
		<li>Eclipse Workspace  - The API provides traceability between EMF resources and workspace resources. Multi-threaded access is coordinated via the Eclipse jobs API and its integration with the workspace.</li>
15
17
		<li>Eclipse Operations - The API supports the Eclipse operation history as an undo stack for undo/redo of resource changes. The API provides a framework for undoable operations that automatically capture undo/redo information, which can be interleaved on the same history with dependent operations that do not modify the EMF model.</li>
16
?>
18
	</ol>
19
EOT;
20
?>
(-)projects/validation/overview.php (-11 / +14 lines)
Lines 1-13 Link Here
1
<?php 
1
<?php 
2
2
$introText = <<<EOT
3
$introText = 
3
	<p>The validation component provides capabilities used to ensure model integrity.</p>
4
	'The validation component provides capabilities used to ensure model integrity.';
4
EOT;
5
	
5
	
6
$detailText = 
6
$detailText = <<<EOT
7
	'The validation component provides the following capabilities. <br>' .
7
	<p>The validation component provides the following capabilities.</p>
8
	'1) Constraint Definition  - Provides API for defining constraints for any EMF meta-model (batch and live constraints). <br>' .
8
	<ol>
9
	'2) Customizable model traversal algorithms - Extensibility API to support meta-models that require custom strategies for model traversal. <br>' .
9
		<li>Constraint Definition  - Provides API for defining constraints for any EMF meta-model (batch and live constraints).</li>
10
	'3) Constraint parsing for languages - Provides support for parsing the content of constraint elements defined in specific languages. The validation framework provides support for two languages: Java and OCL. <br>' .
10
		<li>Customizable model traversal algorithms - Extensibility API to support meta-models that require custom strategies for model traversal.</li>
11
	'4) Configurable constraint bindings to application contexts - API support to define "client contexts" that describe the objects that need to be validated and to bind them to constraints that need to be enforced on these objects. <br>' .
11
		<li>Constraint parsing for languages - Provides support for parsing the content of constraint elements defined in specific languages. The validation framework provides support for two languages: Java and OCL.</li>
12
	'5) Validation listeners - Support for listening to validation events.';
12
		<li>Configurable constraint bindings to application contexts - API support to define "client contexts" that describe the objects that need to be validated and to bind them to constraints that need to be enforced on these objects.</li>
13
?>
13
		<li>Validation listeners - Support for listening to validation events.</li>
14
	</ol>
15
EOT;
16
?>
(-)updates/index.php (-55 / +53 lines)
Lines 1-57 Link Here
1
<?php 
1
<?php 
2
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon());
2
3
3
$pre = "../";
4
ob_start();
4
5
?>
5
// Process query string
6
<div id="midcolumn">
6
$vars = explode("&", $_SERVER['QUERY_STRING']);
7
	<div class="homeitem3col">
7
for ($i=0;$i<=count($vars);$i++) {
8
		<h3>EMF Update Manager Site</h3>
8
  $var = explode("=", $vars[$i]);
9
		<p>To install these plugins, point your Eclipse Update Manager at this site. For more on how to do this, <a href="http://www.eclipse.org/emf/docs.php?doc=docs/UsingUpdateManager/UsingUpdateManager.html">click here</a>. <a href="http://www.eclipse.org/downloads/download.php?file=/technology/emft/updates/site.xml&amp;format=xml">Mirrors available</a>.
9
  $qsvars[$var[0]] = $var[1];
10
		</p>
10
}
11
		<ul>
11
12
			<li>
12
$params = array();
13
				Help
13
$params["project"] = $qsvars["proj"]; 
14
				<ul>
14
15
					<li>
15
$HTMLTitle = "EMF Technologies - Update Manager";
16
						Software Updates
16
$ProjectName = array(
17
						<ul>
17
	"Update Manager",
18
							<li>
18
	"EMF Technologies",
19
								Find and Install...
19
	"Update Manager",
20
								<ul>
20
	"images/reference.gif"
21
									<li>
21
);
22
										Search for new features to install
22
23
										<ul>
23
if (is_file($pre . "includes/header.php")) include $pre . "includes/header.php"; 
24
											<li>
24
25
											Add Update Site...<br/>
25
/*
26
											* Name: <b>EMFT Update Manager Site</b><br/>
26
 * To work, this script must be run with a version of PHP4 which
27
											* URL: <b><a href="http://download.eclipse.org/technology/emft/updates/site.xml" target="_um">http://download.eclipse.org/technology/emft/updates/site.xml</a></b> (Releases)<br/>
27
 * includes the Sablotron XSLT extension compiled into it
28
											(or): <b><a href="http://download.eclipse.org/technology/emft/updates/site-interim.xml" target="_um">http://download.eclipse.org/technology/emft/updates/site-interim.xml</a></b> (I, M and S Builds)
28
 * 
29
											</li>
29
 * Params in stylesheet:
30
										</ul>
30
 *  
31
									</li>
31
 * 	<xsl:param name="project"></xsl:param>
32
								</ul>
32
 *
33
							</li>
33
 */
34
						</ul>
34
35
					</li>
35
// define XML and XSL sources 
36
				</ul>
36
$XMLfile = $qsvars["XMLfile"] ? str_replace("../","",$qsvars["XMLfile"]).".xml" : "site.xml";
37
			</li>
37
$XSLfile = "site.xsl";
38
		</ul>
38
39
	</div>
39
if (function_exists('xslt_create')) {
40
</div>
40
	$processor = xslt_create();
41
<!-- this doesn't really fit anywhere anymore... -->
41
	$fileBase = 'file://' . getcwd () . '/';
42
<!-- <img alt="how to" src="http://www.eclipse.org/images/howto_banner.jpg" height="111" width="272"/> -->
42
	xslt_set_base ( $processor, $fileBase );
43
<?php
43
	$result = xslt_process($processor, $fileBase.$XMLfile, $fileBase.$XSLfile, NULL, array(), $params);
44
$html = ob_get_contents();
44
	
45
ob_end_clean();
45
	if(!$result) {
46
46
		echo "Trying to parse ".$XMLfile." with ".$XSLfile."...<br/>";
47
$pageTitle = "EMFT - Update Manager";
47
		echo "ERROR #".xslt_errno($processor) . " : " . xslt_error($processor);
48
$pageKeywords = ""; // TODO: add something here
48
	}
49
$pageAuthor = "Neil Skrypuch";
49
	echo $result; 
50
50
} else { ?>
51
$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/emft/includes/um.css"/>');
51
	<meta http-equiv="Refresh" content="0;url=site.html">
52
52
<?php } ?>
53
# Generate the web page
53
54
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
54
<p><a href="view-source:http://download.eclipse.org/technology/emft/updates/<?php echo $XMLfile; ?>" class="red">View as XML</a></p>
55
?>
55
56
<?php if (is_file($pre . "includes/footer.php")) include $pre . "includes/footer.php"; ?>
57
<!-- $Id$ -->
(-)updates/site.css (-15 / +1 lines)
Lines 1-15 Link Here
1
<STYLE type="text/css">
1
/* no longer used */
2
td.spacer {padding-bottom: 10px; padding-top: 10px;}
3
.title { font-family: sans-serif; color: #99AACC;}
4
.bodyText { font-family: sans-serif; font-size: 9pt; color:#000000;  }
5
.sub-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white;}
6
.log-text {font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 8pt; color:black;}
7
.big-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white; border-top:10px solid white;}
8
.light-row {background:#FFFFFF}
9
.dark-row {background:#EEEEFF}
10
.header {background:#99AADD}
11
#indent {word-wrap : break-word;width :300px;text-indent:10px;}
12
13
/* $Id$ */
14
15
</STYLE>
(-)updates/site.html (-86 / +1 lines)
Lines 1-86 Link Here
1
<html>
1
<!-- no longer used -->
2
<head>
3
<title>EMFT Update Manager Site</title>
4
<style>@import url("site.css");</style>
5
<script type="text/javascript">
6
	var returnval = 0;
7
	var stylesheet, xmlFile, cache, doc;
8
	function init(){
9
		// NSCP 7.1+ / Mozilla 1.4.1+
10
		// Use the standard DOM Level 2 technique, if it is supported
11
		if (document.implementation && document.implementation.createDocument) {
12
			xmlFile = document.implementation.createDocument("", "", null);
13
			stylesheet = document.implementation.createDocument("", "", null);
14
			xmlFile.load("site.xml");
15
			stylesheet.load("site.xsl");
16
			xmlFile.addEventListener("load", transform, false);
17
			stylesheet.addEventListener("load", transform, false);
18
		}
19
		//IE 6.0+ solution
20
		else if (window.ActiveXObject) {
21
			xmlFile = new ActiveXObject("msxml2.DOMDocument.3.0");
22
			xmlFile.async = false;
23
			xmlFile.load("site.xml");
24
			stylesheet = new ActiveXObject("msxml2.FreeThreadedDOMDocument.3.0");
25
			stylesheet.async = false;
26
			stylesheet.load("site.xsl");
27
			cache = new ActiveXObject("msxml2.XSLTemplate.3.0");
28
			cache.stylesheet = stylesheet;
29
			transformData();
30
		}
31
	}
32
	// separate transformation function for IE 6.0+
33
	function transformData(){
34
		var processor = cache.createProcessor();
35
		processor.input = xmlFile;
36
		processor.transform();
37
		data.innerHTML = processor.output;
38
	}
39
	// separate transformation function for NSCP 7.1+ and Mozilla 1.4.1+ 
40
	function transform(){
41
		returnval+=1;
42
		if (returnval==2){
43
			var processor = new XSLTProcessor();
44
			processor.importStylesheet(stylesheet); 
45
			doc = processor.transformToDocument(xmlFile);
46
			document.getElementById("data").innerHTML = doc.documentElement.innerHTML;
47
		}
48
	}
49
</script>
50
</head>
51
<body onload="init();">
52
<!--[insert static HTML here]-->
53
54
<div id="data">
55
<!-- this is where the transformed data goes -->
56
	<table width="100%">
57
		<tr valign="top">
58
		<td width="75%">
59
	<h2 class="title">EMFT Update Manager Site</h2>
60
	<p class="bodyText">To install these plugins, point your Eclipse Update Manager at this site.</p>
61
62
	<pre><p class="bodyText">   Help
63
    > Software Updates
64
       > Find and Install...
65
          > Search for new features to install
66
             > Add Update Site...
67
                * Name: <b>EMFT Update Manager Site</b>
68
                * URL:    <b><a href="http://download.eclipse.org/technology/emft/updates/site.xml" target="_um">http://download.eclipse.org/technology/emft/updates/site.xml</a></b> (Releases)
69
                     (or):    <b><a href="http://download.eclipse.org/technology/emft/updates/site-interim.xml" target="_um">http://download.eclipse.org/technology/emft/updates/site-interim.xml</a></b> (I, M and S Builds)</p></pre>
70
71
			<p><b class="big-header">XML now loading...</b></p> 
72
			<p>
73
			If you cannot see the Update Manager site listing after a few seconds, or to view this file as XML, <a href="http://download.eclipse.org/technology/emft/updates/site.xml" target="_um">click here</a>.
74
			</p>
75
			<p>Try <a target="_new" href="http://www.mozilla.org/download.html">Firefox</a>.</p>
76
77
		</td>
78
		<td width="25%"><img alt="how to" src="http://dev.eclipse.org/images/howto_banner.jpg" height="111" width="272" align="middle" /></td>
79
		</tr>
80
	</table>
81
82
</div>
83
84
<!-- $Id: site.html,v 1.2 2006/03/09 18:37:22 nickb Exp $ -->
85
</body>
86
</html>
(-)updates/site.xsl (-6 lines)
Lines 1-216 Link Here
1
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
2
<xsl:output method="html" encoding="ISO-8859-1"/>
3
4
<xsl:param name="project"></xsl:param> 
5
<!-- filter by category-def name or label, eg.
6
	 <category-def label="emft query SDK 1.0.0 I200601191253" name="emft query SDK 1.0.0 I200601191253">
(-)_projectCommon.php (+46 lines)
Line 0 Link Here
1
<?php
2
	if (preg_match("/^(Miasma|Industrial|Phoenix|Blue)$/", $_GET["skin"], $regs))
3
	{
4
		$theme = $regs[1];
5
	}
6
	else
7
	{
8
		$theme = "Phoenix";
9
	}
10
11
	$Nav->setLinkList(null);
12
13
	$rooturl = "http://www.eclipse.org";
14
	$downurl = (preg_match("/^(emf\.torolab\.ibm\.com)$/", $_SERVER["SERVER_NAME"], $regs) ? "http://$regs[1]" : "http://download.eclipse.org");
15
	$bugurl = "https://bugs.eclipse.org";
16
17
	$projects = array(
18
		"CDO" => "cdo",
19
		"EODM" => "eodm",
20
		"JET" => "jet",
21
		"JET Editor" => "jeteditor",
22
		"Net4j" => "net4j",
23
		"OCL" => "ocl",
24
		"Query" => "query",
25
		"Transaction" => "transaction",
26
		"Validation" => "validation"
27
	);
28
29
	$Nav->addNavSeparator("EMFT", "$rooturl/emft/");
30
	foreach (array_keys($projects) as $z)
31
	{
32
		$Nav->addCustomNav($z, "$rooturl/emft/projects/$projects[$z]/#$projects[$z]", "_self", 2);
33
	}
34
35
	$Nav->addNavSeparator("Downloads", "$rooturl/emft/downloads/index.php");
36
	$Nav->addCustomNav("Update Manager", "$rooturl/emft/updates/", "_self", 2);
37
	$Nav->addCustomNav("Release Notes", "$rooturl/emft/news/release-notes.php", "_self", 2);
38
	$Nav->addNavSeparator("Community", "");
39
	$collist = "%26query_format%3Dadvanced&amp;column_changeddate=on&amp;column_bug_severity=on&amp;column_priority=on&amp;column_rep_platform=on&amp;column_bug_status=on&amp;column_product=on&amp;column_component=on&amp;column_version=on&amp;column_target_milestone=on&amp;column_short_short_desc=on&amp;splitheader=0";
40
	$Nav->addCustomNav("Open Bugs", "$bugurl/bugs/colchange.cgi?rememberedquery=product%3DEMFT%26bug_status%3DNEW%26bug_status%3DASSIGNED%26bug_status%3DREOPENED%26order%3Dbugs.bug_status%2Cbugs.target_milestone%2Cbugs.bug_id" . $collist, "_self", 2);
41
	$Nav->addCustomNav("Newsgroup", "news://news.eclipse.org/eclipse.technology.emft", "_self", 2);
42
	$Nav->addCustomNav("Contributors", "$rooturl/emft/eclipse-project-ip-log.csv", "_self", 2);
43
	$Nav->addNavSeparator("Tools", "$rooturl/tools/index.html");
44
	$Nav->addNavSeparator("Technology", "$rooturl/technology/index.php");
45
	$Nav->addNavSeparator("EMF", "$rooturl/emf/");
46
?>
(-)downloads/index.php (+799 lines)
Line 0 Link Here
1
<?php
2
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon());
3
4
ob_start();
5
6
/* config */
7
$pre = "../";
8
include $pre . "includes/header.php";
9
10
$dls = array(
11
	"SDK (Runtime, Source)" => "SDK",
12
	"Runtime" => "runtime",
13
	"Examples" => "examples",
14
	"Automated Tests" => "automated-tests"
15
);
16
17
$trim_projects = getProjectArray();
18
$proj = (preg_match("/^(?:" . join("|", $trim_projects) . ")$/", $_GET["proj"]) ? $_GET["proj"] : $trim_projects[0]);
19
20
$filePre = array("emft-$proj", "emft-$proj", "emft-$proj", "emft-$proj"); // file prefixes - also defines the DL image to use, and image alt tag
21
22
$rssfeed = "";
23
	
24
$debug = -1;
25
$hadLoadDirSimpleError = 1; //have we echoed the loadDirSimple() error msg yet? if 1, omit error; if 0, echo at most 1 error
26
$sortBy = (preg_match("/^(date)$/", $_GET["sortBy"], $regs) ? $regs[1] : "");
27
$showAll = (preg_match("/^(1)$/", $_GET["showAll"], $regs) ? $regs[1] : "0");
28
$showMax = (preg_match("/^(\d+)$/", $_GET["showMax"], $regs) ? $regs[1] : ($sortBy == "date" ? "10" : "5"));
29
$doRefreshPage = false;
30
$debug_echoPWD = 0; // set 0 to hide (for security purposes!)
31
32
$PWD = getPWD("$proj/downloads/drops/"); // see scripts.php
33
$buildOptionsFile = "../build.options.txt"; // read only
34
35
if (preg_match("/(?:emf|fullmoon)\./", $_SERVER["HTTP_HOST"])) //internal
36
{
37
	$downloadScript = "../../../technology/emft/scripts/download.php?dropFile=";
38
	$downloadPre = "../../..";
39
}
40
else // all others
41
{
42
	$downloadScript = "http://www.eclipse.org/downloads/download.php?file=";
43
	$downloadPre = "";
44
}
45
/* end config */
46
47
print "<div id=\"midcolumn\">\n";
48
49
print "<div class=\"homeitem3col\">\n";
50
print "<h3>EMFT subproject selection</h3>\n";
51
print doSelectProject();
52
print "</div>\n";
53
54
if (($options = loadOptionsFromFile($buildOptionsFile)) && is_array($options["Branch"]))
55
{
56
	$buildTypes = getBuildTypes($options);
57
}
58
59
$builds = getBuildsFromDirs();
60
if ($sortBy != "date")
61
{
62
	$builds = reorderArray($builds, $buildTypes);
63
}
64
else
65
{
66
	krsort($builds);
67
}
68
69
if (sizeof($builds) == 0)
70
{
71
	print "<div class=\"homeitem3col\">\n";
72
	print "<h3>${rssfeed}Builds</h3>\n";
73
	print "<ul class=\"releases\">\n";
74
	print "<li><i><b>Error!</b></i> No builds found on this server!</li>";
75
	print "</ul>\n";
76
	print "</div>\n";
77
}
78
79
if ($sortBy != "date")
80
{
81
	$c = 0;
82
	foreach ($builds as $branch => $types)
83
	{
84
		foreach ($types as $type => $IDs)
85
		{
86
			print "<div class=\"homeitem3col\">\n";
87
			print "<h3>$rssfeed" . $buildTypes[$branch][$type] . "s</h3>\n";
88
			print "<ul class=\"releases\">\n";
89
			$i = 0;
90
			foreach ($IDs as $ID)
91
			{
92
				print outputBuild($branch, $ID, $c++);
93
				$i++;
94
95
				if (!$showAll && $i == $showMax && $i < sizeof($IDs))
96
				{
97
					print showToggle($showAll, $showMax, $sortBy, sizeof($IDs));
98
					break;
99
				}
100
				else if ($showAll && sizeof($IDs) > $showMax && $i == sizeof($IDs))
101
				{
102
					print showToggle($showAll, $showMax, $sortBy, sizeof($IDs));
103
				}
104
			}
105
			print "</ul>\n";
106
			print "</div>\n";
107
		}
108
	}
109
}
110
else if ($sortBy == "date")
111
{
112
	print "<div class=\"homeitem3col\">\n";
113
	print "<a name=\"latest\"></a><h3>${rssfeed}Latest Builds</h3>\n";
114
	print "<ul class=\"releases\">\n";
115
	$c = 0;
116
	foreach ($builds as $rID => $rbranch)
117
	{
118
		$ID = preg_replace("/^(\d{12})([IMNRS])$/", "$2$1", $rID);
119
		$branch = preg_replace("/.$/", "", $rbranch);
120
		print outputBuild($branch, $ID, $c++);
121
122
		if (!$showAll && $c == $showMax && $c < sizeof($builds))
123
		{
124
			print showToggle($showAll, $showMax, $sortBy, sizeof($builds));
125
			break;
126
		}
127
		else if ($showAll && sizeof($builds) > $showMax && $c == sizeof($builds))
128
		{
129
			print showToggle($showAll, $showMax, $sortBy, sizeof($builds));
130
		}
131
	}
132
	print "</ul>\n";
133
	print "</div>\n";
134
}
135
136
if ($doRefreshPage)
137
{ ?>
138
<script type="text/javascript">
139
	setTimeout('document.location.reload()', 60*1000); // refresh every 60 seconds if there's a build in progress
140
</script>
141
<?php }
142
143
doLanguagePacks($proj); ?>
144
	<div class="homeitem3col">
145
		<h3>Questions?</h3>
146
		<p>If you have problems downloading the drops, contact the <a href="mailto:webmaster@eclipse.org">webmaster</a>.</p>
147
		<p>These are the minimum required downloads for using EMFT:</p>
148
		<ul>
149
			<li>To use <b class="emft">EMFT</b> alone, you require both the EMFT &amp; <a href="/emf/download/">EMF</a> Runtimes.</li>
150
			<li>To use <b class="emft">EMFT</b> w/ XSD models, you require three Runtimes: EMFT, <a href="/emf/download/">EMF</a> &amp; <a href="/emf/download/">XSD</a>.</li>
151
		</ul>
152
		<p>All downloads are provided under the terms and conditions of the <a href="http://www.eclipse.org/legal/epl/notice.html">Eclipse Foundation Software User Agreement</a> unless otherwise specified.</p>
153
	</div>
154
</div>
155
156
<?php
157
158
print "<div id=\"rightcolumn\">\n";
159
print "<div class=\"sideitem\">\n";
160
print "<h6>Sort</h6>\n";
161
$newsort = ($sortBy == "date" ? "type" : "date");
162
print "<ul>\n";
163
print "<li><a href=\"?showAll=$showAll&amp;showMax=$showMax&amp;sortBy=$newsort&amp;proj=$proj\">by $newsort</a></li>\n";
164
print "</ul>\n";
165
print "</div>\n";
166
print "</div>\n";
167
168
$html = ob_get_contents();
169
ob_end_clean();
170
171
$pageTitle = "EMFT - Downloads";
172
$pageKeywords = ""; // TODO: add something here
173
$pageAuthor = "Neil Skrypuch";
174
175
# Generate the web page
176
$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="' . $pre . 'includes/downloads.css"/>' . "\n");
177
$App->AddExtraHtmlHeader('<script src="' . $pre . 'includes/downloads.js" type="text/javascript"></script>' . "\n"); //ie doesn't understand self closing script tags, and won't even try to render the page if you use one
178
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
179
180
/************************** METHODS *****************************************/
181
182
function reorderArray($arr, $buildTypes)
183
{
184
	// the first dimension's order is preserved (kept as it is in the config file)
185
	// sort the second dimension using the IMNRS order in $buildTypes
186
	// rsort the third dimension
187
188
	$new = array();
189
	foreach ($buildTypes as $br => $types)
190
	{
191
		foreach ($types as $bt => $names)
192
		{
193
			if (array_key_exists($br, $arr) && array_key_exists($bt, $arr[$br]) && is_array($arr[$br][$bt]))
194
			{
195
				$new[$br][$bt] = $arr[$br][$bt];
196
				rsort($new[$br][$bt]);
197
			}
198
		}
199
	}
200
201
	return $new;
202
}
203
204
function getBuildsFromDirs() // massage the builds into more useful structures
205
{
206
	global $PWD, $sortBy;
207
208
	$branchDirs = loadDirSimple($PWD, ".*", "d");
209
	$buildDirs = array();
210
211
	foreach ($branchDirs as $branch)
212
	{
213
		if ($branch != "OLD")
214
		{
215
			$buildDirs[$branch] = loadDirSimple("$PWD/$branch", "[IMNRS]\d{12}", "d");
216
		}
217
	}
218
219
	$builds_temp = array();
220
	foreach ($buildDirs as $br => $dirList)
221
	{
222
		foreach ($dirList as $dir)
223
		{
224
			$ty = substr($dir, 0, 1); //first char
225
226
			if ($sortBy != "date")
227
			{
228
				$builds_temp[$br][$ty][] = $dir;
229
			}
230
			else
231
			{
232
				$dttm = substr($dir, 1); // last 12 digits
233
				$a = $dttm . $ty;
234
				$b = $br . $ty;
235
236
				$builds_temp[$a] = $b;
237
			}
238
		}
239
	}
240
241
	return $builds_temp;
242
}
243
244
function getBuildTypes($options)
245
{
246
	$arr = array();
247
	foreach ($options["Branch"] as $br => $branch)
248
	{
249
		foreach ($options["BuildType"] as $bt => $buildType)
250
		{
251
			$v = getValueFromOptionsString($branch, "value");
252
			if (!array_key_exists($v, $arr))
253
			{
254
				$arr[$v] = array();
255
			}
256
			if (preg_match("/^(.+)=([^\|]+)(?:\|selected)?$/", $buildType, $regs))
257
			{
258
				// [2.0][N]
259
				$arr[$v][$regs[2]] = "$v $regs[1] Build";
260
			}
261
		}
262
	}
263
264
	return $arr;
265
}
266
267
function getValueFromOptionsString($opt, $nameOrValue)
268
{
269
	if (preg_match("/^(.+)=([^\|]+)(?:\|selected)?$/", $opt, $regs))
270
	{
271
		return (preg_match("/^(?:name|0)$/", $nameOrValue) ? $regs[1] : $regs[2]);
272
	}
273
}
274
275
function loadOptionsFromFile($file)
276
{
277
	return (is_readable($file) ? loadOptionsFromArray(file($file)) : array());
278
}
279
280
function loadOptionsFromArray($sp)
281
{
282
	foreach ($sp as $s)
283
	{
284
		if (preg_match("/^[^#].{2,}/", $s))
285
		{
286
			if (preg_match("/\[([a-zA-Z_]+)(\|reversed)?\]/", $s, $matches)) // section starts
287
			{
288
				$doSection = $matches[1];
289
290
				if ($matches[2] == "|reversed") //FIXME: reversed does nothing right now, apparently it's supposed to work
291
				{
292
					$options[$doSection]["reversed"] = true;
293
				}
294
			}
295
			else
296
			{
297
				$options[$doSection][] = trim($s); //TODO: this looks like a bug, $doSection could be ""
298
			}
299
		}
300
	}
301
302
	return $options;
303
}
304
305
function IDtoDateStamp($ID, $style) // given N200402121441, return date("D, j M Y -- H:i (O)")
306
{
307
	$styles = array('Y/m/d H:i', "D, j M Y -- H:i (O)", 'Y/m/d');
308
	if (preg_match("/(\d{4})(\d\d)(\d\d)(?:_)?(\d\d)(\d\d)/", $ID, $m))
309
	{
310
		$ts = mktime($m[4], $m[5], 0, $m[2], $m[3], $m[1]);
311
		return date($styles[$style], $ts);
312
	}
313
314
	return "";
315
}
316
317
function createFileLinks($dls, $PWD, $branch, $ID, $pre2, $filePre, $ziplabel = "") // the new way - use a ziplabel pregen'd from a dir list!
318
{
319
	$uu = 0;
320
	$echo_out = "";
321
322
	if (!$ziplabel)
323
	{
324
		$zips_in_folder = loadDirSimple("$PWD/$branch/$ID/", "(\.zip)", "f");
325
		// for testing, you can find a list of files like this:
326
		// `find /home/www-data/emf-build/tools/emf/downloads/drops/2.0.1 -type f -maxdepth 2 -name *.zip -name *emf-sdo-xsd-SDK*`
327
328
		$ziplabel = preg_replace("/(.+)\-([^\-]+)(\.zip)/", "$2", $zips_in_folder[0]); // grab first entry
329
	}
330
331
	$echo_out .= "<li><img src=\"/emft/images/dl-emft.gif\" alt=\"$filePre[0]\"/> $filePre[0]\n<ul>\n";
332
	foreach ($dls as $label => $u)
333
	{
334
		$echo_out .= "<li>";
335
		if ($u)
336
		{
337
			$u = "-$u";
338
		}
339
340
		if (is_file("$PWD/$branch/$ID/$pre2$filePre[$uu]$u-$ziplabel.zip"))
341
		{
342
			$echo_out .= fileFound("$PWD/", "$branch/$ID/$pre2$filePre[$uu]$u-$ziplabel.zip", $label);
343
		}
344
		else
345
		{
346
			$echo_out .= "...";
347
		}
348
		$echo_out .= "</li>\n";
349
		$uu++;
350
	}
351
	$echo_out .= "</ul>\n</li>\n";
352
	return $echo_out;
353
}
354
355
function showBuildResults($PWD, $path) // given path to /../downloads/drops/M200402021234/
356
{
357
	global $pre, $WWWpre, $proj;
358
	$mid = "../../../technology/emft/$proj/downloads/drops/";
359
360
	$warnings = 0;
361
	$errors = 0;
362
363
	$result = "";
364
	$icon = "";
365
366
	$indexHTML = "";
367
	$testResultsPHP = "";
368
369
	$link = "";
370
	$link2 = "";
371
372
	if ($isEMFserver && is_file("$PWD${path}buildlog.txt") && filesize("$PWD${path}buildlog.txt") < (3*1024*1024)) // if the log's too big, don't open it!
373
	{
374
		if (grep("/BUILD FAILED/", "$PWD${path}buildlog.txt"))
375
		{
376
			$icon = "not";
377
			$result = "FAILED"; // BUILD
378
		}
379
	}
380
381
	if (is_file("$PWD${path}index.html"))
382
	{
383
		$indexHTML = file_contents("$PWD${path}index.html");
384
		$zips = loadDirSimple($PWD . $path, ".zip", "f"); // get files count
385
		$md5s = loadDirSimple($PWD . $path, ".zip.md5", "f"); // get files count
386
387
		if ((sizeof($zips) == 4 && sizeof($md5s) == 4))
388
		{
389
			//check testresults/chkpii/ for results
390
			//eg: /home/neil/workspace/org.eclipse.emft/releng/common/public_html/technology/emft/jet/downloads/drops/0.7.1/M200609072347/testresults/chkpii/org.eclipse.nls.summary.txt
391
			if (is_file("$PWD${path}testresults/chkpii/org.eclipse.nls.summary.txt"))
392
			{
393
				$chkpiiResults = file_contents("$PWD${path}testresults/chkpii/org.eclipse.nls.summary.txt");
394
				// eg, file contains:
395
				//htm: 6 E, 0 W
396
				//xml: 1 E, 1 W
397
				//properties: 0 E, 2 W
398
				preg_match_all("/^\S+: (\d+) E, (\d+) W$/m", $chkpiiResults, $regs);
399
				for ($i = 0; $i < sizeof($regs[0]); $i++)
400
				{
401
					$errors += $regs[1][$i];
402
					$warnings += $regs[2][$i];
403
					$icon = "not";
404
					$link = "$pre$mid${path}testresults/chkpii/org.eclipse.nls.summary.txt";
405
					$link2 = "$pre$mid${path}testresults/chkpii/";
406
				}
407
			}
408
				
409
			if ($icon != "not")
410
			{
411
				//check testResults.php for results
412
				if (is_file("$PWD${path}testResults.php"))
413
				{
414
					$testResultsPHP = file("$PWD${path}testResults.php");
415
					$link2 = "$pre$mid${path}testResults.php";
416
					foreach ($testResultsPHP as $tr)
417
					{
418
						if (preg_match("/<td>(\d*)<\/td><td>(\d*)<\/td><\/tr>/", $tr))
419
						{
420
							$rows = explode("<tr>", $tr); // break into pieces
421
							foreach ($rows as $r => $row)
422
							{
423
								if (preg_match("/<td>(\d*)<\/td><td>(\d*)<\/td><\/tr>/", $row, $m))
424
								{
425
									$errors   += $m[1];
426
									$warnings += $m[2];
427
								}
428
							}
429
						}
430
					}
431
				}
432
433
				if ($errors)
434
				{
435
					$icon = "not";
436
					$result = "COMPILER ERROR";
437
				}
438
				else
439
				{
440
					$icon = ($warnings ? "check-maybe" : "check");
441
					$result = "";
442
				}
443
			}
444
				
445
			//parse out the check/fail icons in index.html, if we haven't failed already
446
			if ($icon != "not")
447
			{
448
				if (preg_match("/<font size=\"-1\" color=\"#FF0000\">skipped<\/font>/", $indexHTML))
449
				{
450
					$result = "Skipped";
451
					$icon = "check-maybe";
452
				}
453
				else if (preg_match("/(?:<!-- Examples -->.*FAIL\.gif|FAIL\.gif.*<!-- Automated Tests -->)/s", $indexHTML))
454
				{
455
					$result = "FAILED";
456
					$icon = "not";
457
				}
458
				else if (preg_match("/<!-- Automated Tests -->.*FAIL\.gif.*<!-- Examples -->/s", $indexHTML))
459
				{
460
					$result = "TESTS FAILED";
461
					$icon = "check-tests-failed";
462
				}
463
			}
464
		}
465
	}
466
467
	if (!$icon)
468
	{
469
		// display in progress icon & link to log
470
		$result = "...";
471
		$icon = "question";
472
	}
473
474
	global $doRefreshPage;
475
	if ($isEMFserver && $icon == "question" && is_file("$PWD${path}buildlog.txt") && filesize("$PWD${path}buildlog.txt") < (3*1024*1024))
476
	{
477
		if ($isEMFserver && grep("/\[start\] start\.sh finished on: /", "$PWD${path}buildlog.txt"))
478
		{
479
			$icon = "not"; //display failed icon - not in progress anymore!
480
			$result = "FAILED"; // BUILD
481
		}
482
483
		if ($result != "FAILED" && strtotime("now") - filemtime("$PWD${path}buildlog.txt") < 7200)
484
		{
485
			$doRefreshPage = true;
486
		}
487
		else
488
		{
489
			$mightHavePassed = false;
490
			if (grep("BUILD SUCCESSFUL", "$PWD${path}buildlog.txt"))
491
			{
492
				$mightHavePassed = true;
493
			}
494
			else if (grep("BUILD FAILED", "$PWD${path}buildlog.txt"))
495
			{
496
				$icon = "not"; //display failed icon
497
				$result = "FAILED"; // BUILD
498
			}
499
500
			if ($result != "FAILED" && $mightHavePassed)
501
			{
502
				$result = "Stalled!";
503
				$icon = "check-maybe";
504
			}
505
			else if ($result != "FAILED" && !$mightHavePassed)
506
			{
507
				$result = "FAILED";
508
				$icon = "not";
509
			}
510
		}
511
	}
512
513
	if (!$link) // return a string with icon, result, and counts (if applic)
514
	{
515
		$link = ($isEMFserver ? "/emft/log-viewer.php?build=$path" : "http://download.eclipse.org/"."$mid${path}buildlog.txt");
516
	}
517
518
	if (!$link2) // link to console log in progress if it exists
519
	{
520
		$ID = substr($path, -14);
521
		$conlog = "${path}testing/${ID}testing/linux.gtk_consolelog.txt";
522
		$testlog = "${path}testResults.php";
523
		$link2 = (is_file("$PWD$conlog") ? "$mid$conlog" : (is_file("$PWD$testlog") ? "$mid$testlog" : $link));
524
		$result = (is_file("$PWD$conlog") ? "Testing..." : $result);
525
	}
526
	$link2 = ($isEMFserver ? "" : "http://download.eclipse.org/").$link2;
527
	
528
	$out .= "<a href=\"$link2\">$result";
529
	$out .= ($errors == 0 && $warnings == 0) && !$result ? "Success" : "";
530
	$out .= ($errors > 0 || $warnings > 0) && $result ? ": " : "";
531
	$out .= ($errors > 0 ? "$errors E, $warnings W" : ($warnings > 0 ? "$warnings W" : ""));
532
	$out .= "</a> <a href=\"$link\"><img src=\"http://www.eclipse.org/emft/images/$icon.gif\" alt=\"$icon\"/></a>";
533
534
	return $out;
535
}
536
537
function fileFound($PWD, $url, $label) //only used once
538
{
539
	global $pre, $WWWpre, $downloadScript, $downloadPre, $proj;
540
541
	$mid = "$downloadPre/technology/emft/$proj/downloads/drops/"; // new for www.eclipse.org centralized download.php script
542
543
	return (is_file("$PWD$url.md5") ? "<div>" . pretty_size(filesize("$PWD$url")) . " (<a href=\"$pre$mid$url.md5\">md5</a>)</div>" : "") . "<a href=\"$downloadScript" . (($downloadPre ? $pre : "") . $mid . $url) . "\">$label</a>";
544
}
545
546
function pretty_size($bytes)
547
{
548
	$sufs = array("B", "K", "M", "G", "T", "P"); //emft shouldn't be larger than 999.9 petabytes any time soon, hopefully
549
	$suf = 0;
550
551
	while ($bytes >= 1000)
552
	{
553
		$bytes /= 1024;
554
		$suf++;
555
	}
556
557
	return sprintf("%3.1f%s", $bytes, $sufs[$suf]);
558
}
559
560
function getProjectArray() //only the projects we have the files for
561
{
562
	global $pre, $projects;
563
	$projs = loadDirSimple($pre, ".*", "d");
564
565
	return array_merge(array_intersect($projs, $projects)); //array_merge compresses the array indices
566
}
567
568
function doSelectProject()
569
{
570
	global $projects, $proj;
571
	$out = <<<EOHTML
572
		<form action="index.php" method="get" id="subproject_form">
573
		<p>
574
			<label for="proj">Project: </label>
575
			<select id="proj" name="proj" onchange="javascript:document.getElementById('subproject_form').submit()">
576
EOHTML;
577
578
				$p = join("", preg_replace("/^(.+)$/", "<option value=\"$1\">$1</option>\n", getProjectArray()));
579
				$out .= preg_replace("/<option (value=\"$proj\")>/", "<option selected=\"selected\" $1>", $p);
580
581
	$out .= <<<EOHTML
582
			</select>
583
			<input type="submit" value="Go!"/>
584
		</p>
585
		</form>
586
EOHTML;
587
588
	return $out;
589
}
590
591
function doLanguagePacks($proj)
592
{
593
	global $downloadScript, $downloadPre;
594
595
	$zips_in_folder = loadDirSimple("./NLS", "(NLpack.*-$proj.*\.zip)", "f");
596
597
	// list all descriptions for subsequent releases, then tie them by index to the release versions and projects below
598
	$details = array(0 => "
599
		<p>The language packs contain NL fragments and features for:</p>
600
		<ul>
601
			<li>NLpack1 - German, Spanish, French, Italian, Japanese, Korean, Portuguese (Brazil), Traditional Chinese, Simplified Chinese</li>
602
			<li>NLpack2 - Czech, Hungarian, Polish, Russian</li>
603
			<li>NLpack2a - Danish, Dutch, Finnish, Greek, Norwegian, Portuguese, Swedish and Turkish</li>
604
			<li>NLpackBidi - Arabic</li>
605
		</ul>
606
		<p>Each language pack zip contains 4 other zips (one for each of the language groups above). Unpack these zips into your Eclipse directory before starting Eclipse.</p>"
607
	);
608
609
	// list all projects by version and map to index of the $details array to retrieve the text content
610
	$detailMappings = array(
611
		"jet" => array("0.7.0" => 0),
612
		"ocl" => array("1.0.0" => 0),
613
		"query" => array("1.0.0" => 0),
614
		"validation" => array("1.0.0" => 0),
615
		"transaction" => array("1.0.0" => 0)
616
	);
617
618
	if (sizeof($zips_in_folder) > 0)
619
	{
620
		print "<div class=\"homeitem3col\">\n";
621
		print "<h3>Language Packs</h3>\n";
622
		print "<p>IBM is pleased to contribute translations for this Eclipse Modeling Framework Technology project.</p>\n";
623
624
		$versionsDone = array();
625
		print "<ul>\n";
626
		foreach ($zips_in_folder as $zipfile)
627
		{
628
			$version = explode('-', $zipfile);
629
			$version = substr($version[3], 0, strpos($version[3], ".zip"));
630
			$versionX = substr($version, 0, -1) . "x";
631
			if (!in_array($version, $versionsDone))
632
			{
633
				$versionsDone[] = $version;
634
				$id = "lang" . str_replace(".", "_", $version);
635
				print "<li>\n";
636
				print "<a href=\"javascript:toggle('$id')\" name=\"NLS$versionX\">emft.$proj $versionX Language Packs</a>\n";
637
				print "<ul id=\"$id\">\n";
638
				print "<li>\n";
639
				print $details[$detailMappings[$proj][$version]];
640
				print "<p>These translations are based on $proj $version. The NLS translation fragment packs should work with all subsequent $versionX maintenance releases, with any new strings remaining untranslated.</p>";
641
642
				$packs = array(
643
					"$versionX NLS Translation Packs" => "NLpacks-",
644
				);
645
				$cols = array(
646
					"$proj" => "$proj"
647
				);
648
				$subcols = array(
649
					"SDK" => "SDK-",
650
					"Runtime" => "runtime-"
651
				);
652
				$packSuf = "$version.zip";
653
				$folder = "NLS/";
654
				doNLSLinksList($packs, $cols, $subcols, $packSuf, $folder);
655
				print "</li>\n";
656
				print "</ul>\n";
657
				print "</li>\n";
658
			}
659
		}
660
		print "</ul>\n";
661
		print "</div>\n";
662
	}
663
}
664
665
function doNLSLinksList($packs, $cols, $subcols, $packSuf, $folder, $isArchive = false)
666
{
667
	global $downloadScript, $downloadPre;
668
	$cnt = 0;
669
670
	print "<ul class=\"nls\">\n";
671
	foreach ($packs as $name => $packPre)
672
	{
673
		print "<li>\n$name\n<ul>\n";
674
		foreach ($cols as $alt => $packMid)
675
		{
676
			print "<li>\n<img src=\"http://www.eclipse.org/emft/images/dl-emft.gif\" alt=\"$alt\"/> $alt\n<ul>\n";
677
			foreach ($subcols as $alt2 => $packMid2)
678
			{
679
				$dir = "$folder$packPre$packMid-$packMid2$packSuf";
680
				$linkpre = ($isArchived && is_file("./$dir") ? "http://archive.eclipse.org" : "http://www.eclipse.org/downloads/download.php?file=");
681
				print "<li><a href=\"$linkpre/technology/emft/downloads/$dir\">$alt2</a></li>\n";
682
			}
683
			print "</ul>\n</li>\n";
684
		}
685
		print "</ul>\n</li>\n";
686
	}
687
	print "</ul>\n";
688
}
689
690
function showToggle($showAll, $showMax, $sortBy, $count)
691
{
692
	$ret = "<li><a href=\"" . $_SERVER["PHP_SELF"] . "?showAll=" . ($showAll == "1" ? "" : "1") . "&amp;showMax=$showMax&amp;sortBy=$sortBy\">" . ($showAll != "1" ? "show all $count" : "show only $showMax") . "...</a></li>\n";
693
694
	return $ret;
695
}
696
697
function outputBuild($branch, $ID, $c)
698
{
699
	global $PWD, $isEMFserver, $dls, $filePre, $jdk14testsPWD, $jdk50testsPWD, $testsPWD, $proj;
700
	$pre2 = (is_dir("$PWD/$branch/$ID/eclipse/$ID/") ? "eclipse/$branch/$ID/" : "");
701
702
	$zips_in_folder = loadDirSimple("$PWD/$branch/$ID/", "(\.zip)", "f");
703
	// for testing, you can find a list of files like this:
704
	// `find /home/www-data/emf-build/tools/emf/downloads/drops/2.0.1 -type f -maxdepth 2 -name *.zip -name *emf-sdo-xsd-SDK*`
705
	$ziplabel = (sizeof($zips_in_folder) < 1) ? $ID :
706
		preg_replace("/(.+)\-([^\-]+)(\.zip)/", "$2", $zips_in_folder[0]); // grab first entry
707
708
	// generalize for any relabelled build, thus 2.0.1/M200405061234/*-2.0.2.zip is possible; label = 2.0.2
709
	$IDlabel = $ziplabel;
710
711
	$ret = "<li>\n";
712
	$ret .= "<div>" . showBuildResults("$PWD/", "$branch/$ID/") . ($isEMFserver && $summary ? $summary : "") . "</div>";
713
	$ret .= "<a href=\"javascript:toggle('r$ID')\"><i>$IDlabel</i> (" . IDtoDateStamp($ID, ($isEMFserver ? 0 : 1)) . ")</a><a name=\"$ID\"> </a> <a href=\"?showAll=1&amp;hlbuild=$ID&amp;proj=$proj#$ID\"><img alt=\"Link to this build\" src=\"../images/link.png\"/></a>";
714
715
	$ret .= "<ul id=\"r$ID\"" . (($c == 0 && !isset($_GET["hlbuild"])) || $ID == $_GET["hlbuild"] ? "" : " style=\"display: none\"") . ">\n";
716
	$ret .= createFileLinks($dls, $PWD, $branch, $ID, $pre2, $filePre, $ziplabel);
717
718
	$ret .= $tests;
719
	$ret .= getBuildArtifacts("$PWD", "$branch/$ID");
720
	$ret .= "</ul>\n";
721
	$ret .= "</li>\n";
722
723
	return $ret;
724
}
725
726
function getBuildArtifacts($dir, $branchID)
727
{
728
	global $isEMFserver, $downloadPre;
729
730
	$deps = array(
731
		"emf" => "<a href=\"http://www.eclipse.org/emf/\">EMF</a>",
732
		"eclipse" => "<a href=\"http://www.eclipse.org/eclipse/\">Eclipse</a>"
733
	);
734
	$mid = "$downloadPre/technology/emft/downloads/drops/";
735
	$file = "$dir/$branchID/build.cfg";
736
	$lines = (is_file($file) && is_readable($file) ? file($file) : array());
737
738
	foreach ($lines as $z)
739
	{
740
		if (preg_match("/^((?:" . join("|", array_keys($deps)) . ")(?:DownloadURL|File|BuildURL))=(.+)$/", $z, $regs))
741
		{
742
			$opts[$regs[1]] = $regs[2];
743
		}
744
	}
745
746
	foreach (array_keys($deps) as $z)
747
	{
748
		$builddir[$z] = $opts["${z}DownloadURL"] . $opts["${z}BuildURL"];
749
		$buildID[$z] = (preg_match("/([IMNRS]?\d{8}-?\d{4})$/", $opts["${z}BuildURL"], $regs) ? $regs[1] : "");
750
		$buildfile[$z] = $builddir[$z] . "/" . $opts["${z}File"];
751
	}
752
753
	$ret = "";
754
		
755
	if (is_array($builddir) > 0)
756
	{
757
		$details = array(
758
			"Config File" => "build.cfg",
759
			"Map File" => "directory.txt",
760
			"Build Log" => "buildlog.txt"
761
		);
762
		
763
		$ret .= "<li>\n";
764
		$ret .= "<img src=\"http://www.eclipse.org/emft/images/dl-deps.gif\" alt=\"Upstream dependencies used to build this driver\"/> Build Dependencies\n";
765
		$ret .= "<ul>\n";
766
		foreach (array_keys($deps) as $z)
767
		{
768
			$ret .= "<li><div><a href=\"$builddir[$z]\">Build Page</a></div>$deps[$z] <a href=\"$buildfile[$z]\">$buildID[$z]</a></li>\n";
769
		}
770
		$ret .= "</ul>\n";
771
		$ret .= "</li>\n";
772
773
		$ret .= "<li>\n";
774
		$ret .= "<img src=\"http://www.eclipse.org/emft/images/dl-more.gif\" alt=\"More info about this build\"/> Build Details\n";
775
		$ret .= "<ul>\n";
776
		$ret .= "<li><a href=\"$link$mid${branchID}/testResults.php\">Test Results &amp; Compile Logs</a></li>\n";
777
		foreach (array_keys($details) as $label)
778
		{
779
			$details[$label] = preg_replace("/^(.+)$/", "<a href=\"$link$mid$branchID/$1\">$label</a>", $details[$label]);
780
		}
781
		$ret .= "<li>" . join(", ", $details) . "</li>\n";
782
		$ret .= "</ul>\n";
783
		$ret .= "</li>\n";
784
	}
785
	return $ret;
786
}
787
788
function file_contents($file) //TODO: remove this when we upgrade php to >= 4.3.0 everywhere
789
{
790
	if (function_exists(file_get_contents))
791
	{
792
		return file_get_contents($file);
793
	}
794
	else
795
	{
796
		return join("", file($file));
797
	}
798
}
799
?>
(-)includes/downloads.css (+80 lines)
Line 0 Link Here
1
#midcolumn .homeitem3col #requirements li ul li,
2
#midcolumn .homeitem3col ul li ul li .nls li ul li ul li,
3
#midcolumn .homeitem3col ul#archives li,
4
#midcolumn #crimsonbug ul li
5
{
6
	border-style: none;
7
	padding: 0px;
8
}
9
10
#midcolumn .homeitem3col ul li ul li .nls li,
11
#midcolumn .homeitem3col ul li ul li,
12
#midcolumn .homeitem3col ul li.outerli
13
{
14
	border-style: none;
15
}
16
17
b.emf
18
{
19
	color: #BF5FBF;
20
}
21
22
b.sdo
23
{
24
	color: #18187D;
25
}
26
27
b.xsd
28
{
29
	color: #C7568E;
30
}
31
32
b.all
33
{
34
	color: #B51464;
35
}
36
37
b.emft
38
{
39
	color: #0099CC;
40
}
41
42
.warning
43
{
44
	background-color: yellow;
45
	font-weight: bold;
46
	margin: 2em;
47
}
48
49
#midcolumn .homeitem3col ul.releases li ul li ul li
50
{
51
	border-style: none;
52
	min-height: 14px; /* makes sure that list items are at least as tall as check.gif, and thus, evenly spaced */
53
	padding: 0px;
54
}
55
56
#midcolumn .homeitem3col ul.releases li ul
57
{
58
	padding-top: 1px; /* in Konqueror, the status float hits the list and makes the (MD5)s not line up without this */
59
}
60
61
#midcolumn .homeitem3col ul.releases li ul li ul li.errors
62
{
63
	background-color: #ff9c9c;
64
}
65
66
#midcolumn .homeitem3col ul.releases li ul li ul li.warnings
67
{
68
	background-color: yellow;
69
}
70
71
#midcolumn .homeitem3col ul li div,
72
#midcolumn .homeitem3col ul li ul li ul li div
73
{
74
	float: right;
75
}
76
77
#midcolumn .homeitem3col ul li div span
78
{
79
	padding-left: 2.5em;
80
}
(-)includes/downloads.js (+5 lines)
Line 0 Link Here
1
function toggle(id)
2
{
3
        e = document.getElementById(id);
4
        e.style.display = (e.style.display == "" ? "none" : "");
5
}
(-)includes/index.css (+5 lines)
Line 0 Link Here
1
#midcolumn .homeitem3col ul.extras li
2
{
3
	border-style: none;
4
	padding: 0;
5
}
(-)includes/relnotes.css (+40 lines)
Line 0 Link Here
1
#midcolumn .homeitem3col ul .release
2
{
3
	padding-top: 1.5em;
4
	font-weight: bold;
5
	list-style: url(http://www.eclipse.org/emf/images/c.gif); /* hack for ie, since it doesn't understand list-style: none here */
6
	border-style: none;
7
}
8
9
#midcolumn .homeitem3col ul .outerli
10
{
11
	border-style: none;
12
	padding-bottom: 1.2em;
13
}
14
15
#midcolumn .homeitem3col ul .header
16
{
17
	border-style: none;
18
	list-style: url(http://www.eclipse.org/emf/images/c.gif); /* hack for ie, since it doesn't understand list-style: none here */
19
	padding-bottom: 1.2em;
20
}
21
22
.cb
23
{
24
	clear: both;
25
}
26
27
.fr
28
{
29
	float: right;
30
}
31
32
.fl
33
{
34
	float: left;
35
}
36
37
#midcolumn .homeitem3col h3 .projtitle
38
{
39
	color: white;
40
}
(-)includes/toggle.js (+16 lines)
Line 0 Link Here
1
function toggle(eid)
2
{
3
	buglist = document.getElementById(eid);
4
	togtext = document.getElementById(eid + "-tog");
5
6
	if (buglist.style.display == "none")
7
	{
8
		buglist.style.display = "";
9
		togtext.innerHTML = "hide bug numbers";
10
	}
11
	else
12
	{
13
		buglist.style.display = "none";
14
		togtext.innerHTML = "show bug numbers";
15
	}
16
}
(-)includes/um.css (+9 lines)
Line 0 Link Here
1
#midcolumn .homeitem3col ul li ul li,
2
#midcolumn .homeitem3col ul li ul li ul li,
3
#midcolumn .homeitem3col ul li ul li ul li ul li,
4
#midcolumn .homeitem3col ul li ul li ul li ul li ul li
5
{
6
	border-style: none;
7
	margin-bottom: 0px;
8
	padding-bottom: 0px;
9
}

Return to bug 157939