## <a name="TWiki_Implementation_Notes"> TWiki Implementation Notes </a>

### <a name="Platform"> Platform </a>

TWiki is written in Perl 5 and uses also some shell commands. The current implementation runs best on a Unix machine, but it is also possible on Microsoft Windows. RCS (for revision control) must be installed on the system.

### <a name="Directory_Structure"> Directory Structure </a>

<table border="1" cellpadding="1" cellspacing="0">
  <tr>
    <th bgcolor="#99CCCC"><strong>Directory:</strong></th>
    <th bgcolor="#99CCCC"><strong>Used for:</strong></th>
  </tr>
  <tr>
    <td><code><b>twiki/bin</b></code></td>
    <td> TWiki Perl scripts </td>
  </tr>
  <tr>
    <td><code><b>twiki/bin/TWiki</b></code></td>
    <td> TWiki Perl modules </td>
  </tr>
  <tr>
    <td><code><b>twiki/bin/TWiki/Plugins</b></code></td>
    <td> Plugins modules </td>
  </tr>
  <tr>
    <td><code><b>twiki/pub</b></code></td>
    <td> Public files (<span style="background:"><font color="">File Attachments</font></span><a href="http://LOCATION/FileAttachments">?</a>, images) </td>
  </tr>
  <tr>
    <td><code><b>twiki/data</b></code></td>
    <td> source text </td>
  </tr>
  <tr>
    <td><code><b>twiki/templates</b></code></td>
    <td> HTML templates, used by TWiki scripts </td>
  </tr>
</table>

**_Note:_** You could move the <code>**twiki/bin/TWiki**</code> library directory (including <code>**Plugins**</code> ) to <code>**twiki/lib/TWiki**</code>; the scripts look for a <code>**"."**</code> and <code>**"../lib"**</code> relative library path.

#### <a name="Files_in_twiki_bin"> Files in twiki/bin </a>

<table border="1" cellpadding="1" cellspacing="0">
  <tr>
    <th bgcolor="#99CCCC"><strong>File:</strong></th>
    <th bgcolor="#99CCCC"><strong>Used for:</strong></th>
  </tr>
  <tr>
    <td><code><b>.htaccess.txt</b></code></td>
    <td> Authentication. Rename to .htaccess and customize if used </td>
  </tr>
  <tr>
    <td><code><b>attach</b></code></td>
    <td> Script that shows the attach file page (<span style="background:"><font color="">File Attachment</font></span><a href="http://LOCATION/FileAttachment">?</a>) </td>
  </tr>
  <tr>
    <td><code><b>delete</b></code></td>
    <td> (not used yet) </td>
  </tr>
  <tr>
    <td><code><b>edit</b></code></td>
    <td> Script to edit a topic </td>
  </tr>
  <tr>
    <td><code><b>geturl</b></code></td>
    <td> Script to fetch URL data </td>
  </tr>
  <tr>
    <td><code><b>mailnotify</b></code></td>
    <td> Script called by cron job to notify users of changes </td>
  </tr>
  <tr>
    <td><code><b>oops</b></code></td>
    <td> Script that shows an OK or oops dialog </td>
  </tr>
  <tr>
    <td><code><b>preview</b></code></td>
    <td> Script to preview topic after edit </td>
  </tr>
  <tr>
    <td><code><b>rdiff</b></code></td>
    <td> Script to see differences of topics </td>
  </tr>
  <tr>
    <td><code><b>register</b></code></td>
    <td> Script to register new users </td>
  </tr>
  <tr>
    <td><code><b>save</b></code></td>
    <td> Script that saves a topic, called by preview </td>
  </tr>
  <tr>
    <td><code><b>search</b></code></td>
    <td> Script that displays search results </td>
  </tr>
  <tr>
    <td><code><b>statistics</b></code></td>
    <td> Script to create statistics topic </td>
  </tr>
  <tr>
    <td><code><b>testenv</b></code></td>
    <td> Script to test CGI environment variables </td>
  </tr>
  <tr>
    <td><code><b>upload</b></code></td>
    <td> Script that does file upload (<span style="background:"><font color="">File Attachment</font></span><a href="http://LOCATION/FileAttachment">?</a>) </td>
  </tr>
  <tr>
    <td><code><b>view</b></code></td>
    <td> Script to view a topic ( <strong>the</strong> script ) </td>
  </tr>
  <tr>
    <td><code><b>viewfile</b></code></td>
    <td> Script to view an file attachment </td>
  </tr>
  <tr>
    <td><code><b>TWiki.pm</b></code></td>
    <td> Main TWiki library </td>
  </tr>
  <tr>
    <td><code><b>TWiki.cfg</b></code></td>
    <td> For initialization and configuration, used by <code><b>TWiki.pm</b></code></td>
  </tr>
</table>

#### <a name="Files_in_twiki_bin_TWiki"> Files in twiki/bin/TWiki </a>

<table border="1" cellpadding="1" cellspacing="0">
  <tr>
    <th bgcolor="#99CCCC"><strong>File:</strong></th>
    <th bgcolor="#99CCCC"><strong>Used for:</strong></th>
  </tr>
  <tr>
    <td><code><b>Access.pm</b></code></td>
    <td> Access control </td>
  </tr>
  <tr>
    <td><code><b>Net.pm</b></code></td>
    <td> SMTP mail handling </td>
  </tr>
  <tr>
    <td><code><b>Plugins.pm</b></code></td>
    <td> Plugin handling </td>
  </tr>
  <tr>
    <td><code><b>Prefs.pm</b></code></td>
    <td> Preferences handling </td>
  </tr>
  <tr>
    <td><code><b>Search.pm</b></code></td>
    <td> Search engine, used by wiki.pm </td>
  </tr>
  <tr>
    <td><code><b>Store.pm</b></code></td>
    <td> Back-end storage, <code>*.txt</code> text file and <code>*.txt,v</code> RCS repository file handling </td>
  </tr>
</table>

#### <a name="Files_in_twiki_bin_TWiki_Plugins"> Files in twiki/bin/TWiki/Plugins </a>

<table border="1" cellpadding="1" cellspacing="0">
  <tr>
    <th bgcolor="#99CCCC"><strong>File:</strong></th>
    <th bgcolor="#99CCCC"><strong>Used for:</strong></th>
  </tr>
  <tr>
    <td><code><b>DefaultPlugin.pm</b></code></td>
    <td> Default plugin </td>
  </tr>
  <tr>
    <td><code><b>EmptyPlugin.pm</b></code></td>
    <td> Empty plugin, use to create your own </td>
  </tr>
</table>

-- [[Main/PeterThoeny]] - 03 Mar 2001 <br />