summaryrefslogtreecommitdiff
path: root/buildscripts/chmbuilder/classes/pages
diff options
context:
space:
mode:
authorwei <>2006-10-12 07:30:33 +0000
committerwei <>2006-10-12 07:30:33 +0000
commit5abdafeb9ded0c1c41992f7b3758f1dc02255683 (patch)
treec5c344f0285e9b5dcd540eeaa1a701f47e14b4bb /buildscripts/chmbuilder/classes/pages
parentde630e4134484cea82fd0a1864a45db3bd9974bc (diff)
add unified chm build (quickstart + API + classdocs + wiki)
Diffstat (limited to 'buildscripts/chmbuilder/classes/pages')
-rw-r--r--buildscripts/chmbuilder/classes/pages/ClassDoc.page30
-rw-r--r--buildscripts/chmbuilder/classes/pages/ClassDoc.php228
-rw-r--r--buildscripts/chmbuilder/classes/pages/Classes.page9
-rw-r--r--buildscripts/chmbuilder/classes/pages/Classes.php19
-rw-r--r--buildscripts/chmbuilder/classes/pages/MainLayout.php8
-rw-r--r--buildscripts/chmbuilder/classes/pages/MainLayout.tpl33
-rw-r--r--buildscripts/chmbuilder/classes/pages/style.css647
7 files changed, 974 insertions, 0 deletions
diff --git a/buildscripts/chmbuilder/classes/pages/ClassDoc.page b/buildscripts/chmbuilder/classes/pages/ClassDoc.page
new file mode 100644
index 00000000..ef941c5b
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/ClassDoc.page
@@ -0,0 +1,30 @@
+<%@ Title="PRADO - Documentation" %>
+
+<com:TContent ID="main">
+
+<div class="doc-namespace">
+Namespace: <a href="../manual/CHMdefaultConverter/li_<%= $this->Class['Package'] %>.html"><%= $this->Class['Package'] %></a>
+</div>
+<%= $this->Ancestors %>
+
+<div class="doc-title">
+<a href="../manual/CHMdefaultConverter/<%= $this->Class['Package'].'/'.$this->Class['Name'] %>.html"><%= $this->Class['Name'] %></a>
+</div>
+
+<div class="doc-menu">
+<a href="#properties">Properties</a> | <a href="#events">Events</a> | <a href="#methods">Methods</a> | <a href="#child">Derived classes</a> | <a href="Classes.html">All classes</a>
+</div>
+
+<div class="doc-subtitle"><a name="properties"></a>Properties</div>
+<%= $this->Properties %>
+
+<div class="doc-subtitle"><a name="events"></a>Events</div>
+<%= $this->Events %>
+
+<div class="doc-subtitle"><a name="methods"></a>Methods</div>
+<%= $this->Methods %>
+
+<div class="doc-subtitle"><a name="child"></a>Derived classes</div>
+<%= $this->Derived %>
+
+</com:TContent>
diff --git a/buildscripts/chmbuilder/classes/pages/ClassDoc.php b/buildscripts/chmbuilder/classes/pages/ClassDoc.php
new file mode 100644
index 00000000..733cfc5b
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/ClassDoc.php
@@ -0,0 +1,228 @@
+<?php
+
+class ClassDoc extends TPage
+{
+ public $Class;
+ private $_classes;
+
+ public function onLoad($param)
+ {
+ parent::onLoad($param);
+ $dataFile=Prado::getPathOfNamespace('Application.Data.classes','.data');
+ $this->_classes=unserialize(file_get_contents($dataFile));
+
+ if(($className=$this->Request['class'])!==null && isset($this->_classes[$className]))
+ {
+ $this->Class=$this->_classes[$className];
+ $this->Class['Name']=$className;
+ $this->Title='PRADO - Documentation of '.$className;
+ }
+ else
+ $this->Response->redirect('/docs/classdoc/');
+ }
+
+ public function getAncestors()
+ {
+ $ancestors=array();
+ $thisClass=$this->Class;
+ while(true)
+ {
+ $parentClass=$thisClass['ParentClass'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $ancestors[]=$parentClass;
+ $thisClass=$this->_classes[$parentClass];
+ }
+ else
+ break;
+ }
+ $ancestors=array_reverse($ancestors);
+ $s='';
+ foreach($ancestors as $ancestor)
+ $s.="<a href=\"$ancestor.html\">$ancestor</a> &raquo;\n";
+ if($s!=='')
+ $s="<div class=\"doc-ancestors\">\nInheritance: $s</div>\n";
+ return $s;
+ }
+
+ public function getProperties()
+ {
+ $class=$this->Class;
+ $className=$this->Class['Name'];
+ $s='';
+ foreach($class['Properties'] as $name=>$property)
+ {
+ $inherited=strcasecmp($property['class'],$className)!==0;
+ $rowclass=$inherited?'doc-inherited':'doc-native';
+ $s.="<tr class=\"$rowclass\">\n";
+ $access='';
+ if($property['readonly'])
+ $access.='R';
+ if($property['protected'])
+ $access.='P';
+ if($access==='')
+ $access='&nbsp;';
+ $s.="<td width=\"1\" nowrap=\"nowrap\" align=\"center\">$access</td>\n";
+
+ if($inherited)
+ {
+ $parentClass=$property['class'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $url="../manual/CHMdefaultConverter/{$this->_classes[$parentClass]['Package']}/{$parentClass}.html#methodget{$name}";
+ $s.="<td><a href=\"$url\">$name</a></td>\n";
+ }
+ else
+ $s.="<td>$name</td>\n";
+ }
+ else
+ {
+ $url="../manual/CHMdefaultConverter/{$class['Package']}/{$className}.html#methodget{$name}";
+ $s.="<td><a href=\"$url\">$name</a></td>\n";
+ }
+
+ $type=$property['type'];
+ if(isset($this->_classes[$type]))
+ {
+ $url="$type.html";
+ $s.="<td><a href=\"$url\">$type</a></td>\n";
+ }
+ else
+ $s.="<td>$type</td>\n";
+
+ $comments=rtrim($property['comments'],'.').'.';
+ if($inherited)
+ {
+ $parentClass=$property['class'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $url="$parentClass.html";
+ $comments.=" (inherited from <a href=\"$url\">$parentClass</a>)";
+ }
+ else
+ $comments.=" (inherited from {$parentClass})";
+ }
+ $s.="<td>$comments</td>\n";
+ $s.="</tr>\n";
+ }
+
+ $header="<tr>\n<th>&nbsp;</th><th>Name</th><th>Type</th><th>Description</th>\n</tr>\n";
+ return $s===''?'':"<div class=\"doc-properties\">\n<table>\n$header$s</table>\n</div>\n";
+ }
+
+ public function getEvents()
+ {
+ $class=$this->Class;
+ $className=$this->Class['Name'];
+ $s='';
+ foreach($class['Events'] as $name=>$event)
+ {
+ $inherited=strcasecmp($event['class'],$className)!==0;
+ $rowclass=$inherited?'doc-inherited':'doc-native';
+ $s.="<tr class=\"$rowclass\">\n";
+
+ $methodName=$name;
+ $methodName[0]='o';
+ if($inherited)
+ {
+ $parentClass=$event['class'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $url="../manual/CHMdefaultConverter/{$this->_classes[$parentClass]['Package']}/{$parentClass}.html#method{$methodName}";
+ $s.="<td><a href=\"$url\">$name</a></td>\n";
+ }
+ else
+ $s.="<td>$name</td>\n";
+ }
+ else
+ {
+ $url="../manual/CHMdefaultConverter/{$class['Package']}/{$className}.html#method{$methodName}";
+ $s.="<td><a href=\"$url\">$name</a></td>\n";
+ }
+
+ $comments=rtrim($event['comments'],'.').'.';
+ if($inherited)
+ {
+ $parentClass=$event['class'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $url="$parentClass.html";
+ $comments.=" (inherited from <a href=\"$url\">$parentClass</a>)";
+ }
+ else
+ $comments.=" (inherited from {$parentClass})";
+ }
+ $s.="<td>$comments</td>\n";
+ $s.="</tr>\n";
+ }
+ $header="<tr>\n<th>Name</th><th>Description</th>\n</tr>\n";
+ return $s===''?'':"<div class=\"doc-events\">\n<table>\n$header$s</table>\n</div>\n";
+ }
+
+ public function getMethods()
+ {
+ $class=$this->Class;
+ $className=$this->Class['Name'];
+ $s='';
+ foreach($class['Methods'] as $name=>$method)
+ {
+ $inherited=strcasecmp($method['class'],$className)!==0;
+ $rowclass=$inherited?'doc-inherited':'doc-native';
+ $s.="<tr class=\"$rowclass\">\n";
+ $access='';
+ if($method['static'])
+ $access.='S';
+ if($method['protected'])
+ $access.='P';
+ if($access==='')
+ $access='&nbsp;';
+ $s.="<td nowrap=\"nowrap\" width=\"1\" align=\"center\">$access</td>\n";
+
+ if($inherited)
+ {
+ $parentClass=$method['class'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $url="../manual/CHMdefaultConverter/{$this->_classes[$parentClass]['Package']}/{$parentClass}.html#method{$name}";
+ $s.="<td><a href=\"$url\">$name</a></td>\n";
+ }
+ else
+ $s.="<td>$name</td>\n";
+ }
+ else
+ {
+ $url="../manual/CHMdefaultConverter/{$class['Package']}/{$className}.html#method{$name}";
+ $s.="<td><a href=\"$url\">$name</a></td>\n";
+ }
+
+ $comments=rtrim($method['comments'],'.').'.';
+ if($inherited)
+ {
+ $parentClass=$method['class'];
+ if(isset($this->_classes[$parentClass]))
+ {
+ $url="$parentClass.html";
+ $comments.=" (inherited from <a href=\"$url\">$parentClass</a>)";
+ }
+ else
+ $comments.=" (inherited from {$parentClass})";
+ }
+ $s.="<td>$comments</td>\n";
+ $s.="</tr>\n";
+ }
+ $header="<tr>\n<th>&nbsp;</th><th>Name</th><th>Description</th>\n</tr>\n";
+ return $s===''?'':"<div class=\"doc-methods\">\n<table>\n$header$s</table>\n</div>\n";
+ }
+
+ public function getDerived()
+ {
+ $class=$this->Class;
+ $s='';
+ foreach($class['ChildClasses'] as $childName)
+ $s.="<li><a href=\"$childName.html\">$childName</a></li>\n";
+ return $s===''?'':"<div class=\"doc-derived\">\n<ul>\n$s</ul>\n</div>\n";
+ }
+
+}
+
+?>
diff --git a/buildscripts/chmbuilder/classes/pages/Classes.page b/buildscripts/chmbuilder/classes/pages/Classes.page
new file mode 100644
index 00000000..dd8f3440
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/Classes.page
@@ -0,0 +1,9 @@
+<%@ Title="PRADO - Class Documentation" %>
+
+<com:TContent ID="main">
+
+<h2>PRADO Framework Classes</h2>
+
+<com:TBulletedList ID="ClassList" DisplayMode="HyperLink" />
+
+</com:TContent>
diff --git a/buildscripts/chmbuilder/classes/pages/Classes.php b/buildscripts/chmbuilder/classes/pages/Classes.php
new file mode 100644
index 00000000..ee2672b4
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/Classes.php
@@ -0,0 +1,19 @@
+<?php
+
+class Classes extends TPage
+{
+ public function onLoad($param)
+ {
+ parent::onLoad($param);
+ $dataFile=Prado::getPathOfNamespace('Application.Data.classes','.data');
+ $classes=unserialize(file_get_contents($dataFile));
+ $data=array();
+ $baseUrl=$this->Request->ApplicationUrl;
+ foreach(array_keys($classes) as $className)
+ $data["$className.html"]=$className;
+ $this->ClassList->DataSource=$data;
+ $this->ClassList->dataBind();
+ }
+}
+
+?>
diff --git a/buildscripts/chmbuilder/classes/pages/MainLayout.php b/buildscripts/chmbuilder/classes/pages/MainLayout.php
new file mode 100644
index 00000000..e536e71d
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/MainLayout.php
@@ -0,0 +1,8 @@
+<?php
+
+class MainLayout extends TTemplateControl
+{
+
+}
+
+?> \ No newline at end of file
diff --git a/buildscripts/chmbuilder/classes/pages/MainLayout.tpl b/buildscripts/chmbuilder/classes/pages/MainLayout.tpl
new file mode 100644
index 00000000..47fcfc85
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/MainLayout.tpl
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or
+g/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
+
+<com:THead Title="PRADO PHP Framework">
+<meta name="Keywords" content="PHP framework" />
+<meta name="Description" content="PRADO is a component-based and event-driven framework for Web application development in PHP 5." />
+<meta name="Author" content="Qiang Xue" />
+<meta name="Subject" content="PHP framework, Web programming" />
+<com:TStyleSheet StyleSheetUrl=<%~ style.css %> />
+</com:THead>
+
+<body>
+
+<com:TForm>
+<div id="page">
+
+<div id="main">
+<com:TContentPlaceHolder ID="main" />
+<div style="clear: both;"></div>
+</div>
+
+</com:TForm>
+
+<div id="footer">
+ Copyright &copy; 2006 by the PRADO Group.<br/>
+</div>
+
+</div>
+
+</body>
+</html>
diff --git a/buildscripts/chmbuilder/classes/pages/style.css b/buildscripts/chmbuilder/classes/pages/style.css
new file mode 100644
index 00000000..64f6a892
--- /dev/null
+++ b/buildscripts/chmbuilder/classes/pages/style.css
@@ -0,0 +1,647 @@
+/**
+ * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov
+ * http://decart.no
+ */
+
+body
+{
+ text-align: center;
+}
+
+body, div, span, p, input
+{
+ font-family: Verdana, sans-serif, Arial;
+ font-size: 10pt;
+ color: #333333;
+}
+
+h1, h2, h3, h4
+{
+ font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS;
+ padding: 0px;
+ margin: 0px;
+ margin-bottom: 10px;
+ color: #821B18;
+ font-weight: normal;
+}
+
+h2
+{
+ font-size: 18px;
+}
+
+h3
+{
+ font-size: 16px;
+}
+
+div
+{
+ text-align: left;
+}
+
+.instructions
+{
+ background-color: #EEEEEE;
+}
+
+img
+{
+ border: none;
+}
+
+a
+{
+ color: #CD2C27;
+ text-decoration: none;
+}
+
+a:hover
+{
+ color: #821B18;
+ text-decoration: underline;
+}
+
+#page
+{
+ margin: 0 auto;
+ padding: 0;
+}
+
+#header
+{
+ position: relative;
+ height: 98px;
+}
+
+#logo
+{
+ height: 99px;
+}
+
+#mainmenu
+{
+ position: absolute;
+ top: 69px;
+}
+
+#mainmenu ul
+{
+ margin-left: 0;
+ padding-left: 0;
+ display: inline;
+}
+
+#mainmenu ul li
+{
+ margin-left: 0px;
+ list-style: none;
+ display: inline;
+}
+
+#mainmenu ul li a
+{
+ display: block;
+ float: left;
+ font-size: 14px;
+ font-weight: bold;
+ padding-left: 7px;
+ padding-right: 7px;
+ padding-top: 5px;
+ color: #FFFFCC;
+ text-decoration: none;
+ height: 29px;
+}
+
+#mainmenu ul li a:hover
+{
+ color: #fff;
+}
+
+#mainmenu ul li a.active
+{
+ color: #91A412;
+}
+
+/* main page */
+
+div.intro
+{
+}
+
+div.statements
+{
+}
+
+div.statements div
+{
+ position: absolute;
+ width: 250px;
+ top: 20px;
+}
+
+div.statements div p
+{
+ font-size: 13px;
+ color: #818181;
+}
+
+div.statements div.whatis
+{
+ left: 20px;
+}
+
+div.statements div.whatreq
+{
+ left: 290px;
+}
+
+div.statements div.cani
+{
+ left: 600px;
+ width: 210px;
+}
+
+/* navbar */
+#navbar
+{
+ border-bottom: 2px solid #E9EEEF;
+ height: 30px;
+ margin-bottom: 20px;
+}
+
+#navbar ul
+{
+ margin-left: 0;
+ padding-left: 0;
+ display: inline;
+}
+
+#navbar ul li
+{
+ margin-left: 0px;
+ list-style: none;
+ display: inline;
+}
+
+#navbar ul li a
+{
+ display: block;
+ float: left;
+ font-size: 14px;
+ font-weight: bold;
+ padding-right: 14px;
+ padding-top: 5px;
+ color: #CD2B26;
+ text-decoration: none;
+ height: 29px;
+}
+
+#navbar ul li a.active, #navbar ul li a.hover
+{
+ color: #821B18;
+}
+
+/* infobar */
+div#infobar
+{
+ float: right;
+ width: 200px;
+ padding-left: 20px;
+ border-left: 2px solid #E9EEEF;
+}
+
+div#infobar div
+{
+ margin-bottom: 20px;
+}
+
+div#infobar div#featured img
+{
+ margin-top: 10px;
+}
+
+/* articles */
+
+div#articles
+{
+ width: 560px;
+ float: left;
+}
+
+/* article */
+
+div.article
+{
+ margin-bottom: 40px;
+}
+
+div.article .date
+{
+ color: #9F9291;
+}
+
+div.article .more
+{
+ margin-right: 10px;
+ display: block;
+ text-align: right;
+}
+
+.logo
+{
+ position: absolute;
+ margin-left: 15px;
+ margin-top: 0px;
+ z-index: 1;
+}
+
+#main
+{
+ padding: 20px;
+ padding-top: 20px;
+ background-color: #fff;
+}
+
+div.mantis
+{
+ height: 190px;
+ background-color: #fff;
+ border-bottom: 1px solid #DCDCDC;
+}
+
+div.releases
+{
+ float: left;
+ width: 240px;
+ height: 190px;
+}
+
+div.releases div.official
+{
+ width: 190px;
+ position: relative;
+ left: 52px;
+ top: 128px;
+ font-size: 8pt;
+ color: #6D6D6D;
+}
+
+div.releases div.official a
+{
+ display: block;
+}
+
+div.whyprado
+{
+ display: block;
+ float: left;
+}
+
+div.whyprado ul.list
+{
+ margin-top: 40px;
+ margin-left: 40px;
+}
+
+div.whyprado ul.list li
+{
+ display: block;
+ margin: 5px;
+ padding: 0px;
+ font-size: 18px;
+ background-repeat: no-repeat;
+ background-position: bottom left;
+ padding-left: 30px;
+ list-style: none;
+}
+
+div.whyprado ul.list li.one
+{
+}
+
+div.whyprado ul.list li.two
+{
+}
+
+div.whyprado ul.list li.three
+{
+}
+
+div.whyprado ul.list li a
+{
+ color: #9F9291;
+ text-decoration: none;
+}
+
+#footer
+{
+ border-top: 1px solid #e9eeef;
+ background-color: #fff;
+ clear: both;
+ color: #A7A7A7;
+ font-size: 8pt;
+ text-align: center;
+ padding-top: 10px;
+ padding-bottom: 30px;
+}
+
+#features
+{
+ margin-left: 610px;
+ padding: 10px;
+ padding-left: 10px;
+ padding-right: 10px;
+ background-color: #BEDD75;
+ color: #344A1E;
+ font-size: 9pt;
+}
+
+#features ul
+{
+ margin: 10px;
+ padding: 0px;
+}
+
+#features ul li
+{
+ font-size: 8pt;
+ padding: 0px;
+ margin: 0px;
+ margin-top: 8px;
+}
+
+#features h3
+{
+ margin: 0px;
+ padding: 0px;
+ font-size: 10pt;
+ color: #292E1D;
+ text-align: center;
+ border-bottom: 1px solid silver;
+}
+
+#news
+{
+ float: left;
+ width: 590px;
+}
+
+.newstitle
+{
+ font-size: 12pt;
+ font-weight: bold;
+ color: #555;
+ margin-top: 10px;
+ margin-bottom: 0px;
+ border-bottom: 1px solid silver;
+}
+
+.newscontentmore
+{
+ margin-right: 10px;
+ display: block;
+ color: #50811A;
+ text-align: right;
+}
+
+.newscontentmore:hover
+{
+ color: red;
+}
+
+.newstime
+{
+ margin: 0px;
+ font-size:0.8em;
+ color:#aaa;
+ padding-left:10px;
+ text-align: right;
+}
+
+.newscontent
+{
+ margin-top: 5px;
+}
+
+#leftpanel
+{
+ float: left;
+ width: 550px;
+}
+
+#topics
+{
+ border: 1px solid #804040;
+ margin-left: 610px;
+ padding-bottom: 10px;
+}
+
+#topicsheader
+{
+ text-align:center;
+ font-weight:bold;
+ background-color:#804040;
+ color:#FFFFBC;
+ padding: 3px;
+ margin-bottom:0px;
+}
+
+.topicitem
+{
+ padding: 5px;
+}
+
+.topicitem a:hover
+{
+ text-decoration: underline;
+}
+
+.topicitem p
+{
+ margin: 0px;
+ font-size:0.8em;
+ color:#aaa;
+ padding-left:10px;
+ white-space:nowrap;
+}
+
+.reference
+{
+}
+
+.reference img
+{
+ margin: 10px;
+}
+
+.reference h3
+{
+}
+
+
+.download
+{
+ width: 100%;
+ background-color: #aaa;
+}
+
+.download td
+{
+ background-color: #FFFFFF;
+ padding: 5px;
+ font-size: 9pt;
+}
+
+.download td a
+{
+ font-weight: bold;
+}
+
+.download td.type
+{
+ font-family: "courier new", courier;
+ text-align: right;
+ vertical-align: top;
+}
+
+.download div.declaration
+{
+ font-family: "courier new", courier;
+}
+
+
+.download th
+{
+ background-color: #F0F0F0;
+ font-weight: bold;
+ padding: 5px;
+ text-align: left;
+}
+
+.download th.small
+{
+ font-size: 1.0em;
+}
+
+.download tr.reference td {
+ background-color: #FFEDED;
+}
+
+
+.doc-title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.doc-subtitle
+{
+ font-size: 11pt;
+ font-weight: bold;
+ background-color: #EEE;
+ padding: 5px;
+ margin-top: 20px;
+}
+
+.doc-namespace
+{
+ font-size: 8pt;
+}
+
+
+.doc-menu
+{
+}
+
+.doc-classes
+{
+}
+
+.doc-ancestors
+{
+ font-size: 8pt;
+}
+
+.doc-properties
+{
+ font-size: 9pt;
+}
+
+.doc-properties table
+{
+ border-collapse: collapse;
+ background-color: silver;
+ width: 100%;
+}
+
+.doc-properties td, .doc-properties th
+{
+ padding: 3px;
+ vertical-align: top;
+ background-color: white;
+ border: 1px solid silver;
+}
+
+.doc-events
+{
+ font-size: 9pt;
+}
+
+.doc-events table
+{
+ border-collapse: collapse;
+ background-color: silver;
+ width: 100%;
+}
+
+.doc-events td, .doc-events th
+{
+ padding: 3px;
+ vertical-align: top;
+ background-color: white;
+ border: 1px solid silver;
+}
+
+.doc-methods
+{
+ font-size: 9pt;
+}
+
+.doc-methods table
+{
+ border-collapse: collapse;
+ background-color: silver;
+ width: 100%;
+}
+
+.doc-methods td, .doc-methods th
+{
+ padding: 3px;
+ vertical-align: top;
+ background-color: white;
+ border: 1px solid silver;
+}
+
+.doc-derived
+{
+}
+
+.doc-inherited
+{
+}
+
+.doc-native td
+{
+ background-color: lightyellow;
+}
+
+.forum-topic
+{
+ padding: 10px;
+ border:1px solid silver;
+ margin-bottom: 10px;
+}
+