Merge branch 'master' of /users/www/www/

news-update
Michael Spang 2007-07-16 09:11:31 -04:00
commit 65bb780a49
51 changed files with 350 additions and 4141 deletions

View File

@ -16,7 +16,7 @@ recurse-cow:
members.xml:
echo '<?xml version='\''1.0'\''?>' > $@
echo '<memberlist>' >> $@
ceoquery memberlist | awk -F \| '{ id = $$1; name = $$2; program = $$3; gsub(/&/, "\\&amp;", name); gsub(/&/, "\\&amp;", program); gsub(/"/, "\\&quot;", name); gsub(/"/, "\\&quot;", program); print "<member id=\"" id "\" name=\"" name "\" program=\"" program "\" />"; }' >> $@
ceoquery memberlist | sort | awk -F \| '{ name = $$1; program = $$2; userid = $$3; gsub(/&/, "\\&amp;", name); gsub(/&/, "\\&amp;", program); gsub(/"/, "\\&quot;", name); gsub(/"/, "\\&quot;", program); print "<member name=\"" name "\" program=\"" program "\" userid=\"" userid "\" />"; }' >> $@
echo '</memberlist>' >> $@
books.xml:

View File

@ -56,9 +56,9 @@
Each term the CSC holds elections to determine the executive
council. To find out when and where the next elections will be
held, check the <a href="../index.html">homepage</a> and the <a
href="nntp://uw.csc">uw.csc newsgroup</a>. For details on the
href="http://csclub.uwaterloo.ca/newsgroup/thread.php?group=uw.csc">uw.csc newsgroup</a>. For details on the
election rules, see the <a
href="/docs/constitution.html">constitution</a>.
href="../docs/constitution.html">constitution</a>.
</p>
</section>
<footer/>

View File

@ -19,28 +19,25 @@
</xsl:choose>
</xsl:variable>
<xsl:output method="html" />
<xsl:output method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<xsl:template match="cscpage">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title><xsl:value-of select="@title"/></title>
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
<style type="text/css">
<![CDATA[<!-- ]]>@import url('<xsl:value-of select="$pre"/>default.css');<![CDATA[ -->]]>
</style>
</head>
<body bgcolor="#ffffff">
<a name="pagetop"></a>
<body>
<div>
<a name="pagetop" id="pagetop" />
<xsl:apply-templates select="biglogo"/>
<xsl:apply-templates select="header">
<xsl:with-param name="title" select="@title"/>
</xsl:apply-templates>
<xsl:apply-templates select="section|menu"/>
<xsl:apply-templates select="footer"/>
</div>
</body>
</html>
</xsl:template>
@ -53,17 +50,17 @@
<xsl:template match="biglogo" name="biglogo">
<div class="biglogo">
<table cellspacing="0" cellpadding="0" border="0" align="left">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="109"><a href="http://www.uwaterloo.ca/"><img
<td><a href="http://www.uwaterloo.ca/"><img
src="{$pre}logos/uw_logo_100_68.gif" alt="University of Waterloo"
width="100" height="68" align="center" border="0" /></a></td>
width="100" height="68" /></a></td>
<!--<td width="174"><a href="{$pre}"><img src="{$pre}logos/csc_160_70.png"
alt="Computer Science Club" width="165" height="75" align="center"
border="0" /></a></td>-->
<td width="91"><a href="http://www.acm.org"><img width="82"
<td><a href="http://www.acm.org"><img width="82"
height="103" src="{$pre}logos/acm_logo.gif" alt="A Student Chapter of
the ACM" align="center" border="0" /></a></td>
the ACM" /></a></td>
</tr>
</table>
</div>
@ -84,48 +81,44 @@
s1.addParam("allowfullscreen","true");
s1.addVariable("file","http://csclub.uwaterloo.ca/files/<xsl:value-of select="@file" />");
<xsl:if test="@preview">
s1.addVariable("image","<xsl:value-of select="@preview" />");
s1.addVariable("image","http://csclub.uwaterloo.ca/files/<xsl:value-of select="@preview" />");
</xsl:if>
s1.write("player1");
</script>
</xsl:template>
<xsl:template match="mediaitem">
<xsl:document method="html"
<xsl:document method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
href="{translate(concat($root, '/media/', @title , '.html'), ' ', ' ')}">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title><xsl:value-of select="@title"/></title>
<style type="text/css">
<![CDATA[<!-- ]]>@import url('<xsl:value-of select="$pre"/>default.css');<![CDATA[ -->]]>
</style>
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<body>
<div>
<xsl:call-template name="header">
<xsl:with-param name="title" select="@title"/>
</xsl:call-template>
<xsl:if test="abstract">
<h2>Abstract</h2>
<p>
<xsl:apply-templates select="abstract"/>
</p>
<div>
<xsl:apply-templates select="abstract/node()"/>
</div>
</xsl:if>
<xsl:if test="flvfile">
<h2>View</h2>
<p>
<div>
<xsl:apply-templates select="flvfile">
</xsl:apply-templates>
</p>
</div>
</xsl:if>
<xsl:if test="mediafile">
<h2>Download</h2>
<p><strong>
<div><strong>
HTTP (web browser):
<xsl:apply-templates select="mediafile">
<xsl:with-param name="ext"></xsl:with-param>
@ -135,42 +128,46 @@
<xsl:apply-templates select="mediafile" >
<xsl:with-param name="ext">.torrent</xsl:with-param>
</xsl:apply-templates>
</strong></p>
</strong></div>
</xsl:if>
<br/>
<!-- Slashdot It link -->
<!-- <a
href="javascript:location.href='http://slashdot.org/bookmark.pl?url='+encodeURIComponent(location.href)"> <img src="http://images.slashdot.org/favicon.gif" alt="Slashdot" border="0" height="16" width="16"></img></a>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
<a href="javascript:location.href='http://slashdot.org/bookmark.pl?url='+encodeURIComponent(location.href)">Slashdot It!</a> -->
<!-- AddThis Bookmark Button -->
<script type="text/javascript">
addthis_url = location.href;
addthis_title = document.title;
addthis_pub = 'calumt';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
<!-- AddThis Bookmark Button -->
<script type="text/javascript">
addthis_url = location.href;
addthis_title = document.title;
addthis_pub = 'calumt';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
<xsl:if test="@buttons">
<!-- digg button -->
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
<script language="javascript" src="http://reddit.com/button.js?t=3"></script>
<!--
<script type="text/javascript">
google_ad_client = "pub-5235744946475097";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-21: mcc
google_ad_channel = "1106187834";
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
-->
<br/><br/>
<!-- digg button -->
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
<!-- reddit button -->
<script type="text/javascript" src="http://reddit.com/button.js?t=3"></script>
</xsl:if>
<!-- google ads -->
<!--
<script type="text/javascript">
google_ad_client = "pub-5235744946475097";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-21: mcc
google_ad_channel = "1106187834";
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
-->
<xsl:call-template name="footer"/>
</div>
</body>
</html>
</xsl:document>
@ -185,8 +182,8 @@ google_ad_channel = "1106187834";
</xsl:choose>
</xsl:variable>
<td align="center" class="menuitem">
<a href="{$pre2}{@href}"><img border="0" src="{$pre}buttons/{@icon}.png"
<td class="menuitem">
<a href="{$pre2}{@href}"><img src="{$pre}buttons/{@icon}.png"
width="40" height="40" alt="{@title}" /><!--</a>--><br />
<!--<a href="{$pre2}{@href}">--><xsl:value-of select="@title"/></a>
</td>
@ -194,7 +191,7 @@ google_ad_channel = "1106187834";
<xsl:template match="menudefs">
<div class="menuspace">
<table cellspacing="0" cellpadding="0" border="0" align="center" class="menubar">
<table cellspacing="0" cellpadding="0" border="0" class="menubar">
<tr>
<xsl:apply-templates select="menuitem"/>
</tr>
@ -207,11 +204,10 @@ google_ad_channel = "1106187834";
</xsl:template>
<xsl:template match="header" name="header">
<a name="pagetop"></a>
<div id="vfeed"></div>
<div class="webtitle"><div class="webtitle-inner">
<table cellpadding="0" cellspacing="0" border="0" align="left"><tr>
<td width="90">
<table cellpadding="0" cellspacing="0" border="0"><tr>
<td>
<a href="{$pre}"><img src="{$pre}logos/csc_80_35_white.png" alt="CSC Logo" /></a>
</td><td>
<a href="{$pre}"><img src="{$pre}logos/csc_title.png" alt="CSC Title" /></a>
@ -257,12 +253,23 @@ google_ad_channel = "1106187834";
</p>
<p class="infobox">
The overall layout is designed specially for Mozilla-based browsers.
It is also printer-friendly version. Please report any difficulty you
may find, including the version of your browser and your operating system.
It is also printer-friendly. Please report any difficulty you may find,
including the version of your browser and your operating system.
to the <a href="mailto:www@csclub.uwaterloo.ca">Webmaster</a>.
</p>
<p>
<a href="{$pre}"><img src="{$pre}logos/csc_80_35.png" alt="CSC" align="right"/></a>
<a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0 Strict" height="31" width="88" />
</a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:88px;height:31px"
src="http://jigsaw.w3.org/css-validator/images/vcss"
alt="Valid CSS!" />
</a>
</p>
<div class="footerlogo"><a href="{$pre}"><img src="{$pre}logos/csc_80_35.png" alt="CSC"/></a></div>
<p>
Copyright
<xsl:text disable-output-escaping="yes">&amp;copy;</xsl:text>
2002<xsl:text disable-output-escaping="yes">&amp;ndash;</xsl:text>2007
@ -290,24 +297,23 @@ google_ad_channel = "1106187834";
<xsl:template match="newsitem">
<tr>
<td class="newsdate" bgcolor="#eeeeff"><xsl:value-of select="@date"/></td>
<td rowspan="2" valign="top" class="newsitem" bgcolor="white"><xsl:apply-templates/></td>
<td class="newsdate"><xsl:value-of select="@date"/></td>
<td rowspan="2" valign="top" class="newsitem"><xsl:apply-templates/></td>
</tr>
<tr>
<td class="newsauthor" bgcolor="#eeeeff"><xsl:value-of select="@author"/></td>
<td class="newsauthor"><xsl:value-of select="@author"/></td>
</tr>
</xsl:template>
<!-- TODO: methinks this is borked -->
<xsl:template match="news" name="news">
<tr>
<th colspan="2" class="news" bgcolor="#aaaaff">
<th colspan="2" class="news">
News
</th>
</tr>
<xsl:apply-templates select="document('news.xml')/newsdefs"/>
<tr>
<td class="newsitem" bgcolor="white" colspan="2">
<td class="newsitem" colspan="2">
<a href="news/">Older news items</a> are available. Make sure you
check out the <a href="/newsgroup/thread.php?group=uw.csc">uw.csc</a> newsgroup and our
announcement boards on the second and third floor of MC for more
@ -318,7 +324,7 @@ google_ad_channel = "1106187834";
<xsl:template match="events" name="events">
<tr>
<th colspan="2" class="news" bgcolor="#aaaaff">
<th colspan="2" class="news">
Upcoming Events <a href="events.ics">ical</a>
</th>
</tr>
@ -328,8 +334,8 @@ google_ad_channel = "1106187834";
data-type="number"/>
<xsl:if test="translate(@date, '-', '') &gt;= translate($date, '-', '')">
<tr>
<td class="eventdate" bgcolor="#eeffee"><xsl:value-of select="@date"/></td>
<td rowspan="2" valign="top" class="eventitem" bgcolor="white">
<td class="eventdate"><xsl:value-of select="@date"/></td>
<td rowspan="2" valign="top" class="eventitem">
<a href="{translate(concat('/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
<xsl:value-of select="@title"/>
</a>.
@ -337,13 +343,13 @@ google_ad_channel = "1106187834";
</td>
</tr>
<tr>
<td class="eventroom" bgcolor="#eeffee"><xsl:value-of select="@time"/>,
<td class="eventroom"><xsl:value-of select="@time"/>,
<xsl:value-of select="@room"/></td>
</tr>
</xsl:if>
</xsl:for-each>
<tr>
<td class="eventitem" bgcolor="white" colspan="2"><a href="events/">Past
<td class="eventitem" colspan="2"><a href="events/">Past
events</a> are available.</td>
</tr>
</xsl:template>
@ -353,35 +359,33 @@ google_ad_channel = "1106187834";
</xsl:template>
<xsl:template match="eventitem">
<xsl:document method="html"
<xsl:document method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
href="{translate(concat($root, '/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title><xsl:value-of select="@title"/></title>
<style type="text/css">
<![CDATA[<!-- ]]>@import url('<xsl:value-of select="$pre"/>default.css');<![CDATA[ -->]]>
</style>
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<body>
<div>
<xsl:call-template name="header">
<xsl:with-param name="title" select="@title"/>
</xsl:call-template>
<p>
<div>
Held in <xsl:value-of select="@room"/> at
<xsl:value-of select="@date"/>, <xsl:value-of select="@time"/>.
</p>
</div>
<h2>Abstract</h2>
<xsl:apply-templates select="abstract"/>
<xsl:apply-templates select="abstract/node()"/>
<xsl:call-template name="footer"/>
</div>
</body>
</html>
</xsl:document>
</xsl:template>
<xsl:template match="news-and-events">
<table cellspacing="1" cellpadding="2" bgcolor="black">
<table cellspacing="1" cellpadding="2" class="newsandevents">
<xsl:call-template name="events"/>
<xsl:call-template name="news"/>
</table>
@ -428,18 +432,21 @@ google_ad_channel = "1106187834";
select="count(document('members.xml')/memberlist/member)"/> members.</p>
<table>
<tr>
<th>Member ID</th>
<th>Name</th>
<th>Program</th>
<th>Userid</th>
</tr>
<xsl:for-each select="document('members.xml')/memberlist/member">
<tr>
<xsl:if test="position() mod 2 = 0">
<xsl:attribute name="bgcolor">#cee6ff</xsl:attribute>
</xsl:if>
<td><xsl:value-of select="@id"/></td>
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="@program"/></td>
<xsl:variable name="class">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">members1</xsl:when>
<xsl:otherwise>members2</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<tr class="{$class}">
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="@program"/></td>
<td><xsl:value-of select="@userid"/></td>
</tr>
</xsl:for-each>
</table>
@ -465,17 +472,15 @@ google_ad_channel = "1106187834";
</a></td>
<td><xsl:value-of select="@author"/></td>
</tr>
<xsl:document method="html" href="{translate(concat($root, '/office/books/', @isbn, '.html'), ' ', '_')}">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<xsl:document method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
href="{translate(concat($root, '/office/books/', @isbn, '.html'), ' ', '_')}">
<html>
<head>
<title>Book: <xsl:value-of select="@title"/></title>
<style type="text/css">
<![CDATA[<!-- ]]>@import url('<xsl:value-of select="$pre"/>default.css');<![CDATA[ -->]]>
</style>
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<body>
<div>
<xsl:call-template name="header">
<xsl:with-param name="title" select="@title"/>
<!-- TODO -->
@ -489,6 +494,7 @@ google_ad_channel = "1106187834";
<b>Published: </b> <xsl:value-of select="@published"/><br />
</p>
<xsl:call-template name="footer"/>
</div>
</body>
</html>
</xsl:document>
@ -518,17 +524,15 @@ google_ad_channel = "1106187834";
csc:term(@date), '.html'), ' ', '_')}">
<xsl:value-of
select="csc:term(@date)"/></a></p>
<xsl:document method="html" href="{translate(concat($root, '/events/old-', csc:term(@date), '.html'), ' ', '_')}">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<xsl:document method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
href="{translate(concat($root, '/events/old-', csc:term(@date), '.html'), ' ', '_')}">
<html>
<head>
<title>Events for <xsl:value-of select="csc:term(@date)"/></title>
<style type="text/css">
<![CDATA[<!-- ]]>@import url('<xsl:value-of select="$pre"/>default.css');<![CDATA[ -->]]>
</style>
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<body>
<div>
<xsl:call-template name="header">
<xsl:with-param name="title" select="concat('Events for ', csc:term(@date))"/>
</xsl:call-template>
@ -536,6 +540,7 @@ google_ad_channel = "1106187834";
<xsl:with-param name="date" select="@date"/>
</xsl:call-template>
<xsl:call-template name="footer"/>
</div>
</body>
</html>
</xsl:document>
@ -561,17 +566,17 @@ google_ad_channel = "1106187834";
csc:term(@date), '.html'), ' ', '_')}">
<xsl:value-of
select="csc:term(@date)"/></a></p>
<xsl:document method="html" href="{translate(concat($root, '/news/old-', csc:term(@date), '.html'), ' ', '_')}">
<xsl:document method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
href="{translate(concat($root, '/news/old-', csc:term(@date), '.html'), ' ', '_')}">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title>News for <xsl:value-of select="csc:term(@date)"/></title>
<style type="text/css">
<![CDATA[<!-- ]]>@import url('<xsl:value-of select="$pre"/>default.css');<![CDATA[ -->]]>
</style>
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<body>
<div>
<xsl:call-template name="header">
<xsl:with-param name="title" select="concat('News for ', csc:term(@date))"/>
</xsl:call-template>
@ -579,6 +584,7 @@ google_ad_channel = "1106187834";
<xsl:with-param name="date" select="@date"/>
</xsl:call-template>
<xsl:call-template name="footer"/>
</div>
</body>
</html>
</xsl:document>

View File

@ -1,58 +1,138 @@
body {background: white; color: black; font-family:serif;}
h1 {font-size: x-large; }
h2 {font-size: large; color: #000055; }
h3 {font-size: medium; color: #0055aa; }
a:visited {background: transparent; color: #8888aa; text-decoration: none; }
a:link {background: transparent; color: #0000aa; text-decoration: none; }
a:active {/*background: #ffcc00;*/ color: #0000cc; }
td.button { background: #eeeeee; text-align: center; }
td.newsdate { background: #eeeeff; font-family: sans-serif; font-size: x-small; text-align: center; font-weight: bold;}
td.newsitem { background: white; text-align: left;}
td.newsauthor { background: #eeeeff; font-family: sans-serif; font-size: x-small; text-align: center;}
td.eventdate { background: #eeffee; font-family: sans-serif; font-size: x-small; text-align: center; font-weight: bold;}
td.eventitem { background: white; text-align: left;}
td.eventroom { background: #eeffee; font-family: sans-serif; font-size: x-small; text-align: center;}
th.news { background: #222255; color: white; font-family: sans-serif; font-size: x-small; text-align: left; }
td.pagetitle { font-size: large; font-weight: bold; }
th { background: #002288; color: white; }
/* CSS 2 (especially for Mozilla) and CSS 3 (according to the developmental spec) */
body, .web-framework {
body {
background: white;
color: black;
font-family:serif;
font-size:12px;
width:760px;
margin:0 auto;
padding:0 20px;
font-size:12px;
}
h1 {
font-size: x-large;
}
h2 {
font-size: large;
font-family:'Lucida Grande', Sans, Sans-serif;
text-transform: uppercase;
border-left:10px solid #ff9900;
padding-left:10px;
color: #000055;
}
h3 {
font-size: medium;
color: #0055aa;
}
a:visited {
background: transparent;
color: #8888aa;
text-decoration: none;
}
a:link {
background: transparent;
color: #0000aa;
text-decoration: none;
}
a:active {
color: #0000cc;
}
table.newsandevents { background: black; }
td.button {
background: #eeeeee;
text-align: center;
}
td.newsdate {
background: #eeeeff;
font-family: sans-serif;
font-size: x-small;
text-align: center;
font-weight: bold;
}
td.newsitem {
background: white;
text-align: left;
}
td.newsauthor {
background: #eeeeff;
font-family: sans-serif;
font-size: x-small;
text-align: center;
}
td.eventdate {
background: #eeffee;
font-family: sans-serif;
font-size: x-small;
text-align: center;
font-weight: bold;
}
td.eventitem {
background: white;
text-align: left;
}
td.eventroom {
background: #eeffee;
font-family: sans-serif;
font-size: x-small;
text-align: center;
}
th.news {
background: #222255;
color: white;
font-family: sans-serif;
font-size: x-small;
text-align: left;
}
td.pagetitle {
font-size: large;
font-weight: bold;
}
th {
background: #002288;
color: white;
}
tr.members1 {
background: white;
}
tr.members2 {
background: #cee6ff;
}
img {
border-width:0;
}
h2 {
border-left:10px solid #ff9900;
font-family:'Lucida Grande', Sans, Sans-serif;
text-transform:uppercase;
padding-left:10px;
div.footerlogo {
float: right;
padding-left: 5px;
}
p {
font-family:'Lucida Grande', Sans, Sans-serif;
}
.biglogo {
background:url(/csc_welcome.jpg) -20px 25px transparent no-repeat;
div.webcam {
text-align: center;
}
div.biglogo {
background:url(./csc_welcome.jpg) -20px 25px transparent no-repeat;
height:340px;
} .biglogo table {
}
div.biglogo table {
float:left;
}
.template-header {
table.template-header {
border-bottom:1px solid #ccc;
/*background-color:#cee6ff;*/
/*padding-top:65px;*/
}
.webtitle {
div.webtitle {
/*position:absolute;
top:0;
left:0;*/
@ -60,30 +140,35 @@ p {
width:760px;
background-color:#215498;
border-bottom:4px solid #104387;
} .webtitle .webtitle-inner {
}
div.webtitle div.webtitle-inner {
width:760px;
padding:0 10px;
}
.menuspace {
div.menuspace {
background:white;
}
.menuspace .menubar {
background-color:transparent;
div.menuspace table.menubar {
background-color: transparent;
padding:0;
margin:0 auto;
text-align:center;
text-align: center;
height:90px;
vertical-align:center;
vertical-align: middle;
font-size:11px;
text-transform:uppercase;
text-transform: uppercase;
}
.menuspace .menuitem {
div.menuspace td.menuitem {
margin:0;
padding:0;
} .menuspace .menuitem a {
text-align: center;
}
div.menuspace td.menuitem a {
display:block;
text-align:center;
padding:5px;
@ -91,36 +176,36 @@ p {
text-decoration:none;
font-weight:400;
font-family:'Lucida Grande', Sans, Sans-serif;
} .menuspace .menuitem a:hover {
}
div.menuspace td.menuitem a:hover {
font-weight:700;
color:black;
background-color:#eee;
border:1px solid #ccc;
} .menuspace .menuitem a:hover img {
}
div.menuspace div.menuitem a:hover img {
width:60px;
height:60px;
}
.diritem,
.diritem:link,
.diritem:visited,
.diritem:active {
a.diritem, a.diritem:link, a.diritem:visited, a.diritem:active {
font-family:'Lucida Grande', Sans, Sans-serif;
border-left:4px solid #ccc;
padding:0 15px 0 5px;
color:blue;
} .diritem:hover {
}
a.diritem:hover {
border-left:4px solid green;
}
.headdir {
a.headdir {
font-weight:700;
}
.pagetop,
.pagetop:link,
.pagetop:visited,
.pagetop:hover {
a.pagetop, a.pagetop:link, a.pagetop:visited, a.pagetop:hover {
font-family:'Lucida Grande',sans, sans-serif;
display:block;
padding:0 10px 10px 10px;
@ -133,7 +218,7 @@ p {
text-transform:uppercase;
}
.footer {
div.footer {
/*margin-top:10px;*/
padding-top:10px;
border-top:1px solid #ccc;
@ -142,7 +227,7 @@ p {
/*background:url('/logos/csc_80_35.png') right bottom no-repeat transparent;*/
}
.infobox {
p.infobox {
border:1px solid #ccc;
padding:5px 10px;
}

View File

@ -12,13 +12,13 @@ of the University of Waterloo''.</li>
</ol>
</section>
<section title="2. Purpose">
<ol><li><a name="purpose">The Club</a> is organized and will be operated exclusively for educational
<ol><li><a id="purpose">The Club</a> is organized and will be operated exclusively for educational
and scientific purposes in furtherance of:</li>
<ul>
<li>a) promoting an increased knowledge of computer science and its applications.</li>
<li>b) promoting a greater interest in computer science and
its applications; and</li>
<li>c) <a name="comm">providing a means of communication between persons
<li>c) <a id="comm">providing a means of communication between persons
having interest in computer science.</a></li>
</ul>
@ -230,7 +230,7 @@ Club as set forth in Section <a href="#purpose">2</a>.</li>
council.</li>
</ol>
<h3><a name="sysduties">2. Systems Committee</a></h3>
<h3><a id="sysduties">2. Systems Committee</a></h3>
<ol><li> The Systems Committee will be a standing committee, chaired by the
Systems Administrator.</li>
@ -375,4 +375,4 @@ course, responsible to the person granting permission.</li>
</section>
<footer/>
</cscpage>
</cscpage>

View File

@ -12,13 +12,13 @@ of the University of Waterloo''.</li>
</ol>
</section>
<section title="2. Purpose">
<ol><li><a name="purpose">The Club</a> is organized and will be operated exclusively for educational
<ol><li><a id="purpose">The Club</a> is organized and will be operated exclusively for educational
and scientific purposes in furtherance of:</li>
<ul>
<li>a) promoting an increased knowledge of computer science and its applications.</li>
<li>b) promoting a greater interest in computer science and
its applications; and</li>
<li>c) <a name="comm">providing a means of communication between persons
<li>c) <a id="comm">providing a means of communication between persons
having interest in computer science.</a></li>
</ul>
@ -217,7 +217,7 @@ Club as set forth in Section <a href="#purpose">2</a>.</li>
council.</li>
</ol>
<h3><a name="sysduties">2. Systems Committee</a></h3>
<h3><a id="sysduties">2. Systems Committee</a></h3>
<ol><li> The Systems Committee will be a standing committee, chaired by the
Systems Administrator.</li>
@ -362,4 +362,4 @@ course, responsible to the person granting permission.</li>
</section>
<footer/>
</cscpage>
</cscpage>

View File

@ -12,15 +12,16 @@ of the University of Waterloo".</li>
</ol>
</section>
<section title="2. Purpose">
<ol><li><a name="purpose">The Club</a> is organized and will be operated exclusively for educational
and scientific purposes in furtherance of:</li>
<ol><li><a id="purpose">The Club</a> is organized and will be operated exclusively for educational
and scientific purposes in furtherance of:
<ul>
<li>a) promoting an increased knowledge of computer science and its applications.</li>
<li>b) promoting a greater interest in computer science and
its applications; and</li>
<li>c) <a name="comm">providing a means of communication between persons
<li>c) <a id="comm">providing a means of communication between persons
having interest in computer science.</a></li>
</ul>
</li>
<li> the above purposes will be fulfilled by the organization of
discussions and lectures with professionals and academics in the field
@ -59,13 +60,13 @@ The membership fee is set from time to time by the Executive.</li>
</section>
<section title="4. Officers">
<ol><li> The officers of the Club shall be:</li>
<ol><li> The officers of the Club shall be:
<ol><li> President</li>
<li> Vice-President</li>
<li> Secretary</li>
<li> Treasurer</li>
<li> System Administrator</li>
</ol>
</ol></li>
<li> The faculty advisor shall be an ex-officio member of the
Club.</li>
@ -80,7 +81,7 @@ lectures in the Winter and Spring terms, and as the beginning of
Orientation Week in the Fall term.</li>
<li> The election of officers shall be accomplished by the following
procedure:</li>
procedure:
<ol>
@ -120,6 +121,7 @@ may be held at a later date, in accordance with the election
procedures. The membership decides whether or not to hold extra
elections.</li>
</ol>
</li>
<li> Following the elections, it is the responsibility of the new executive
to select a System Administrator. The selection of System Administrator must
@ -146,7 +148,7 @@ Such elections would be for all offices which are vacant.</li>
<section title="5. Duties of Officers">
<ol>
<li> The duties of the President shall be:</li>
<li> The duties of the President shall be:
<ol>
<li> to call and preside at all general, special, and executive
@ -160,34 +162,39 @@ and</li>
records of the club at the end of each academic term.</li>
</ol>
</li>
<li> The duties of the Vice-President shall be:</li>
<li> The duties of the Vice-President shall be:
<ol><li> to assume the duties of the President
in the event of the President's absence;</li>
<li> to act as chairman of the programmes committee; and</li>
<li> to assume those duties of the President
that are delegated to him by the President.</li>
</ol>
</li>
<li> The duties of the Secretary shall be:</li>
<li> The duties of the Secretary shall be:
<ol><li> to keep minutes of all Club meetings;</li>
<li> to prepare the annual Club report for
approval by the executive council;</li>
<li> to care for all Club correspondence;</li>
</ol>
</li>
<li> The duties of the Treasurer shall be:</li>
<li> The duties of the Treasurer shall be:
<ol>
<li> to collect dues and maintain all financial and membership records;</li>
<li> to produce a financial or membership statement when requested;</li>
</ol>
</li>
<li> The duties of the System Administrator shall be:</li>
<li> The duties of the System Administrator shall be:
<ol>
<li> to chair the Systems Committee</li>
<li> to perform in conjunction with the Systems Committee, the duties listed
in <a href="#sysduties">7.2</a>.</li>
</ol>
</li>
</ol>
</section>
<section title="6. Executive Council">
@ -217,21 +224,21 @@ Club as set forth in Section <a href="#purpose">2</a>.</li>
council.</li>
</ol>
<h3><a name="sysduties">2. Systems Committee</a></h3>
<h3><a id="sysduties">2. Systems Committee</a></h3>
<ol><li> The Systems Committee will be a standing committee, chaired by the
Systems Administrator.</li>
<li> The Executive Council shall appoint members to the Systems Committee.
Such members should show interest and ability in Systems Administration.</li>
<li> The Systems Committee will collectively, under the leadership of the
Systems Administrator,</li>
Systems Administrator,
<ol><li> to operate any and all equipment in the possession of the Club.</li>
<li> to maintain and upgrade the software on equipment that is operated by
the Club.</li>
<li> to facilitate the use of equipment that is operated by the
Club.</li>
</ol></ol>
</ol></li></ol>
<h3>3. Library Committee</h3>
@ -240,13 +247,13 @@ Librarian of the Computer Science Club.</li>
<li> The Librarian shall be selected by the Executive Council.</li>
<li> Either the Executive Council or the Librarian may appoint members to
the library committee.</li>
<li> The library committee will be responsible for</li>
<li> The library committee will be responsible for
<ol><li> purchasing new materials to be added to the Computer Science Club
library, with a target amount of money to spend indicated by the Treasurer;</li>
<li> keeping the library in some semblance of order;</li>
<li> in conjunction with the Systems Committee, maintaining an up-to-date,
online record of the materials in the library.</li>
</ol></ol>
</ol></li></ol>
<h3>4. Other Committees</h3>
@ -297,15 +304,15 @@ that the financial records are complete and accurate.</li>
<section title="10. Amendments and Procedures">
<ol><li> Amendments to the constitution shall be made in the following
manner:</li>
manner:
<ol><li> the proposed amendment shall be announced to all members via
one or more of</li>
one or more of
<ol><li> a general meeting</li>
<li> electronic mail</li>
<li> Usenet</li>
</ol>
</ol></li>
<li> the proposed amendment shall be made available for viewing by all
members in the Computer Science Club office;</li>
<li> A business meeting shall be held
@ -314,7 +321,7 @@ at least seven (7) days after the announcement and no more than thirty (30) days
the amendment shall be read again and voted upon.
Two thirds of those present
and voting shall be required to carry the amendment;</li>
</ol>
</ol></li>
<li> A quorum necessary for the conduct of business
is defined as fifteen (15) members

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?>
<!DOCTYPE cscpage SYSTEM "../../csc.dtd">
<cscpage title="Operating Systems the CSC distributes">
<cscpage title="Operating Systems the CSC distributes" pre="../../">
<header/>
<footer/>
</cscpage>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?>
<!DOCTYPE cscpage SYSTEM "../../csc.dtd">
<cscpage title="Operating Systems the CSC distributes">
<cscpage title="Operating Systems the CSC distributes" pre="../../">
<header/>
<footer/>
</cscpage>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?>
<!DOCTYPE cscpage SYSTEM "../../csc.dtd">
<cscpage title="Operating Systems the CSC distributes">
<cscpage title="Operating Systems the CSC distributes" pre="../../">
<header/>
<section title="List of operating systems">
<ul>

View File

@ -35,7 +35,7 @@ Note that in the following sections, the term &quot;user&quot; implies a user of
CSC machine, unless otherwise specified.
</p>
<h3><a name="usageaccept">Acceptable and Unacceptable Use</a></h3>
<h3><a id="usageaccept">Acceptable and Unacceptable Use</a></h3>
<p>
The CSC machines are intended for research, personal projects,
@ -49,7 +49,7 @@ by the CSC Systems Committee.
Users must adhere to the CSC's policies concerning machine usage.
</p>
<h3><a name="usagerespons">User Responsibilities</a></h3>
<h3><a id="usagerespons">User Responsibilities</a></h3>
<p>
Users must be responsible for their behaviour.
Users, and not the CSC, will be held accountable for any of their illegal,
@ -71,7 +71,7 @@ that they connect to.
</p>
<h3><a name="usagesecurity">Security</a></h3>
<h3><a id="usagesecurity">Security</a></h3>
<p>
Users may not attempt to gain access to accounts
other than those which they have been permitted to use.
@ -99,7 +99,7 @@ in the event that a security problem is found. Naturally, the problem
should neither be exploited nor made public until it can be corrected.
</p>
<h3><a name="usagerights">Rights of the Systems Committee and the CSC Executive</a></h3>
<h3><a id="usagerights">Rights of the Systems Committee and the CSC Executive</a></h3>
<p>
The Systems Committee may examine any files or programs believed to be out of
control or in violation of the usage policies for the CSC network.
@ -134,7 +134,7 @@ with reasonable notice.
<li><a href="#clubrespons">Responsibility and Accountability</a></li>
</ol>
<h3><a name="clubaccess">Access Control</a></h3>
<h3><a id="clubaccess">Access Control</a></h3>
<p>
Note: For the given section, any mention of the club, except in direct
reference to the Computer Science Club, will refer an club other than the
@ -172,7 +172,7 @@ The club members with access to the club account shall not grant
</li>
</ol>
<h3><a name="clubrespons">Responsibility and Accountable</a></h3>
<h3><a id="clubrespons">Responsibility and Accountable</a></h3>
<p>
The account is the responsibility of the members who have access. If the
resources owned by the club account are found to be in violation of any
@ -213,7 +213,7 @@ Computer, terminal or other piece of hardware. Non-CSC machines
An appointed body responsible for the operation of the CSC network
and the software that runs on it.
A complete description is available in the
<a HREf="constitution.shtml">CSC Constitution</a>.
<a href="constitution.shtml">CSC Constitution</a>.
</dd>
<dt>Network Bandwidth</dt>

View File

@ -9,7 +9,7 @@
Policies for group accounts and administrative accounts are not yet
available (this section will contain links to them when they do become
available). This is a brief (instead of legalese) version of the
<a HREF="machine_usage.html">usage policy</a>.
<a href="machine_usage.html">usage policy</a>.
Everyone who receives an account on one of the CSC machines must sign
the agreement based on the usage policy, and this summary lists the
things that the users will agree to.

View File

@ -3306,7 +3306,7 @@ Remember: Monday, January 13, 6:00 PM, MC3001/Comfy Lounge.</p>
<dd>$0.00</dd>
<dt>Pre-registration</dt>
<dd>Recommended</dd>
<dd><a HREF="http://infranet.uwaterloo.ca:81/infranet/semform.htm">http://infranet.uwaterloo.ca:81/infranet/semform.htm</a></dd>
<dd><a href="http://infranet.uwaterloo.ca:81/infranet/semform.htm">http://infranet.uwaterloo.ca:81/infranet/semform.htm</a></dd>
<dd>(519) 888-4004</dd>
</dl>
@ -3343,7 +3343,7 @@ Shirley Fenton<br />
The infraNET Project<br />
University of Waterloo<br />
519-888-4567 ext. 5611<br />
<a HREF="http://infranet.uwaterloo.ca/">http://infranet.uwaterloo.ca/</a>
<a href="http://infranet.uwaterloo.ca/">http://infranet.uwaterloo.ca/</a>
</address>
</abstract>
</eventitem>
@ -3418,7 +3418,7 @@ University of Waterloo<br />
</dd>
</dl>
<p>Any <a HREF="nntp://news.math.uwaterloo.ca/uw.csc/8305">comments</a> from <a HREF="news:uw.csc">the newsgroup</a> are welcome.</p>
<p>Any <a href="nntp://news.math.uwaterloo.ca/uw.csc/8305">comments</a> from <a href="news:uw.csc">the newsgroup</a> are welcome.</p>
</abstract>
</eventitem>
@ -3431,7 +3431,7 @@ University of Waterloo<br />
hours. Solutions are written in Pascal, C or C++. Seven years in a row,
Waterloo's teams have been in the top ten at the world finals.
For more information, see
<a HREF="http://plg.uwaterloo.ca/~acm00/">the contest web page</a>.</p>
<a href="http://plg.uwaterloo.ca/~acm00/">the contest web page</a>.</p>
<h3>Easy Question:</h3>
<p>A palindrome is a sequence of letters that reads the same backwards and
@ -3494,7 +3494,7 @@ stop
hours. Solutions are written in Pascal, C or C++. Seven years in a row,
Waterloo's teams have been in the top ten at the world finals.
For more information, see
<a HREF="http://plg.uwaterloo.ca/~acm00/">the contest web page</a>.</p>
<a href="http://plg.uwaterloo.ca/~acm00/">the contest web page</a>.</p>
<h3>Easy Question:</h3>
<p>A palindrome is a sequence of letters that reads the same backwards and

View File

@ -15,14 +15,6 @@
</p>
</section>
<section title="Site Updated!">
<p>
The design is now finalized. It is compatible with any browsers, especially
ones that recognize HTML 4.1, XML/XHTML 1.1 and CSS 3.0 (Stable
Specification).
</p>
</section>
<section title="News and Upcoming Events">
<news-and-events />
</section>

View File

@ -19,19 +19,20 @@
<flvfile file="pmc-sasms-spring-2007.flv" />
</mediaitem>
<mediaitem title="Copyright vs Community in the Age of Computer Networks">
<abstract>
Copyright developed in the age of the printing press, and was designed to
fit with the system of centralized copying imposed by the printing press.
But the copyright system does not fit well with computer networks, and
only draconian punishments can enforce it.
<mediaitem title="Copyright vs Community in the Age of Computer Networks" buttons="true">
<abstract><p>
Copyright developed in the age of the printing press, and was designed
to fit with the system of centralized copying imposed by the printing
press. But the copyright system does not fit well with computer networks,
and only draconian punishments can enforce it.
</p><p>
The global corporations that profit from copyright are lobbying for
draconian punishments, and to increase their copyright powers, while
suppressing public access to technology. But if we seriously hope to serve
the only legitimate purpose of copyright -- to promote progress, for the
benefit of the public -- then we must make changes in the other direction.
</abstract>
benefit of the public -- then we must make changes in the other
direction.
</p></abstract>
</mediaitem>
<mediaitem title="Usability in the Wild">
@ -53,7 +54,7 @@
<mediafile file="mterry2.ogg" type="OGG/Theora" size="535M" />
<mediafile file="mterry2.mp4" type="MP4" size="509M" />
<mediafile file="mterry2.mpg" type="MPG" size="520M" />
<flvfile file="mterry2.flv" />
<flvfile file="mterry2.flv" preview="mterry2.png" />
</mediaitem>
<mediaitem title="Ralph Stanton 40th Anniversary of Math Faculty Talk">
@ -155,6 +156,7 @@
<mediafile file="sdt-xvid.avi" type="XviD" size="406M" />
<mediafile file="sdt.mpg" type="MPG" size="405M" />
<mediafile file="sdt.ogg" type="OGG/Theora" size="411M" />
<flvfile file="sdt.flv" />
</mediaitem>
<mediaitem title="ReactOS - An Open Source OS Platform for Learning">
@ -198,6 +200,7 @@
<mediafile file="alex-ionescu-xvid.avi" type="XviD" size="451M" />
<mediafile file="alex-ionescu.mpg" type="MPG" size="450M" />
<mediafile file="alex-ionescu.ogg" type="OGG/Theora" size="461M" />
<flvfile file="alex-ionescu.flv" />
</mediaitem>
<mediaitem title="1989 Bill Gates Talk on Microsoft">
@ -357,9 +360,11 @@
Particularly illuminating are his responses to advocates of
free/open-source software.
</abstract>
<mediafile file="Rico-Mariani-exctd-divx-320-240.avi" size="689M" type="DivX" />
<mediafile file="Rico-Mariani-exctd-quicktime.mov" size="504M" type="Quick Time" />
<mediafile file="Rico-Mariani-exctd-wmv.wmv" size="157M" type="Windows Media" />
<mediafile file="rico.avi" type="XviD" size="534M" />
<mediafile file="rico.ogg" type="OGG/Theora" size="528M" />
<mediafile file="rico.mp4" type="MP4" size="507M" />
<mediafile file="rico.mpg" type="MPG" size="532M" />
<flvfile file="rico.flv" />
</mediaitem>
</ul>

View File

@ -12,8 +12,8 @@
<menuitem title="Media" icon="package_multimedia" href="media/"/>
<menuitem title="Library" icon="koha" absolute="true" href="http://koha.csclub.uwaterloo.ca"/>
<menuitem title="Wiki" icon="sunflower" absolute="true" href="http://wiki.csclub.uwaterloo.ca"/>
<menuitem title="Webmail" icon="horde" href="horde"/>
<menuitem title="Mailman" icon="mm-icon" absolute="true" href="/cgi-bin/mailman/listinfo"/>
<menuitem title="Webmail" icon="horde" absolute="true" href="https://mail.csclub.uwaterloo.ca/"/>
<menuitem title="Mailman" icon="mm-icon" absolute="true" href="http://mailman.csclub.uwaterloo.ca"/>
<menuitem title="gopher" icon="gopher" absolute="true" href="gopher://csclub.uwaterloo.ca"/>
<menuitem title="gitweb" icon="gitweb" absolute="true" href="http://gitweb.csclub.uwaterloo.ca"/>
</menudefs>

View File

@ -1,6 +0,0 @@
AuthPAM_Enabled on
<Files post.php>
AuthType Basic
AuthName "CSC Login Required"
require group daemon
</Files>

View File

@ -1,85 +0,0 @@
<?
header("Expires: ".gmdate("D, d M Y H:i:s",time()+(3600*24))." GMT");
// register parameters
$id=$_REQUEST["id"];
$group=$_REQUEST["group"];
include "config.inc.php";
/*
$thread_show["replies"]=true;
$thread_show["lastdate"]=false;
$thread_show["threadsize"]=false;
*/
include "auth.inc";
include "$file_newsportal";
$message=message_read($id,0,$group);
if (!$message) {
header ("HTTP/1.0 404 Not Found");
$subject=$title;
$title.=' - Article not found';
if($ns!=false)
nntp_close($ns);
} else {
$subject=htmlspecialchars($message->header->subject);
header("Last-Modified: ".date("r", $message->header->date));
$title.= ' - '.$subject;
}
include "head.inc";
// has the user read-rights on this article?
if((function_exists("npreg_group_has_read_access") &&
!npreg_group_has_read_access($group)) ||
(function_exists("npreg_group_is_visible") &&
!npreg_group_is_visible($group))) {
die("access denied");
}
?>
<h1 class="np_article_headline"><?=htmlspecialchars($subject) ?></h1>
<table cellpadding="0" cellspacing="0" width="100%" class="np_buttonbar"><tr>
<?
echo '<td class="np_button"><a class="np_button" href="'.
$file_index.'">'.$text_thread["button_grouplist"].'</a></td>';
echo '<td class="np_button"><a class="np_button" href="'.
$file_thread.'?group='.urlencode($group).'">'.$text_article["back_to_group"].'</a></td>';
if ((!$readonly) && ($message) &&
(!function_exists("npreg_group_has_write_access") ||
npreg_group_has_write_access($group)))
echo '<td class="np_button"