<html> 
 <head> 
 <title>Config command examples </title>
 </head> 
 <body bgcolor=white> 


Setting errormsg using: &lt;!--#config errmsg="..." --&gt; <br>
<!--#config errmsg="errormsg: Sorry this command won't work." --> 

Trying to access non-existent "foo.shtml" using  
&lt;!--#fsize file="foo.shtml" --&gt;
<br>

<!--#fsize file="foo.shtml" -->
<br>
<br>

Using &lt;!--#config sizefmt="bytes" --&gt;
<br>
              This file ( index.shtml::size-> 2665) is 
 <!--#config sizefmt="bytes" --> 
 <!--#fsize file="index.shtml" -->
              bytes in size. 

<br>
<br>
  Setting sizefmt to abbrev using : &lt;!--#config sizefmt="abbrev" --&gt;
<br>


<!--#config sizefmt="abbrev" -->

Size of file "index.shtml ( size->2665)" using sizefmt=abbrev ->
<!--#fsize   file="index.shtml" -->

<br> <br>
Size of file "saveindex.shtml(size->464)" using  : &lt;!--#fsize file="saveindex.shtml" --&gt;  ->
<!--#fsize   file="saveindex.shtml" -->
<br><br>

Size of file "check1.shtml(size->1000)" using  : &lt;!--#fsize file="check1.shtml" --&gt;  ->
<!--#fsize   file="check1.shtml" -->
<br><br>

Size of file "check2.html(size->1001)" using  : &lt;!--#fsize file="check2.html" --&gt;  ->
<!--#fsize   file="check2.html" -->
<br><br>

Size of file "check3.shtml(size->1499)" using  : &lt;!--#fsize file="check3.shtml" --&gt;  ->
<!--#fsize   file="check3.shtml" -->
<br><br>

Size of file "check4.shtml(size->1500)" using  : &lt;!--#fsize file="check4.shtml" --&gt;  ->
<!--#fsize   file="check4.shtml" -->
<br><br>

Size of file "check5.shtml(size->1501)" using  : &lt;!--#fsize file="check5.shtml" --&gt;  ->
<!--#fsize   file="check5.shtml" -->
<br><br>

Size of file "checkme ( size->1535)" using : &lt;!--#fsize file"checkme" --&gt; -> 
<!--#fsize   file="checkme" -->
<br><br>

Size of file "check5.html(size->1536)" using  : &lt;!--#fsize file="check5.html" --&gt;  ->
<!--#fsize   file="check5.html" -->
<br><br>

Size of file "check55.html(size->1537)" using  : &lt;!--#fsize file="check55.html" --&gt;  ->
<!--#fsize   file="check55.html" -->
<br><br>

Size of file "check555.html(size->1538)" using  : &lt;!--#fsize file="check555.html" --&gt;  ->
<!--#fsize   file="check555.html" -->
<br><br>

Size of file "check5555.html(size->1539)" using  : &lt;!--#fsize file="check5555.html" --&gt;  ->
<!--#fsize   file="check5555.html" -->
<br><br>

Size of file "check6.shtml(size->1988)" using  : &lt;!--#fsize file="check6.shtml" --&gt;  ->
<!--#fsize   file="check6.shtml" -->
<br><br>

Size of file "check7.shtml(size->1999)" using  : &lt;!--#fsize file="check7.shtml" --&gt;  ->
<!--#fsize   file="check7.shtml" -->
<br><br>
 <p> 




 <FONT SIZE=+2 Color=blue> timefmt Tests : </FONT>

<br> <br>
  Using &lt;!--#config timefmt="%A" --&gt; 
          &lt;!--#echo var="DATE_LOCAL" --&gt;
<br>
  Day ->  <!--#config timefmt="%A" -->
              <!--#echo var="DATE_LOCAL" -->, 
<br> <br>
  Using &lt;!--#config timefmt="%d" --&gt;<br>
          &lt;!--#echo var="DATE_LOCAL" --&gt; 
  <br>
  Day of Month -> <!--#config timefmt="%d" -->
              <!--#echo var="DATE_LOCAL" --> 

 <br> <br>
  Using &lt;!--#config timefmt="%B" --&gt;<br>
          &lt;!--#echo var="DATE_LOCAL" --&gt; 
  <br>
  Month(full) -> <!--#config timefmt="%B" --> 
		<!--#echo var="DATE_LOCAL" --> 

  <br> <br>
  Using &lt;!--#config timefmt="%b" --&gt;<br>
          &lt;!--#echo var="DATE_LOCAL" --&gt; 
  <br>
  Month(abbreviated) -> <!--#config timefmt="%b" --> 
			<!--#echo var="DATE_LOCAL" --> 

  <br> <br>
  Using &lt;!--#config timefmt="%Y" --&gt;<br>
          &lt;!--#echo var="DATE_LOCAL" --&gt; 
  <br>
   Year ->  <!--#config timefmt="%Y"
              --> <!--#echo var="DATE_LOCAL" -->. 

  <br> <br>
  Using &lt;!--#config timefmt="%W" --&gt;<br>
          &lt;!--#echo var="DATE_LOCAL" --&gt; 

  <br>
  Week number of year as a decimal  number: <!--#config timefmt="%W" --> 
					<!--#echo var="DATE_LOCAL" -->. 

</body> 
</html> 
