| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?> |
| <modulesynopsis> |
| |
| <name>mod_imap</name> |
| <description>Server-side imagemap processing</description> |
| <status>Base</status> |
| <sourcefile>mod_imap.c</sourcefile> |
| <identifier>imap_module</identifier> |
| |
| <summary> |
| <p>This module processes <code>.map</code> files, thereby |
| replacing the functionality of the <code>imagemap</code> CGI |
| program. Any directory or document type configured to use the |
| handler <code>imap-file</code> (using either |
| <directive module="mod_mime">AddHandler</directive> or |
| <directive module="core">SetHandler</directive>) |
| will be processed by this module.</p> |
| |
| <p>The following directive will activate files ending with |
| <code>.map</code> as imagemap files:</p> |
| |
| <example>AddHandler imap-file map</example> |
| |
| <p>Note that the following is still supported:</p> |
| |
| <example>AddType application/x-httpd-imap map</example> |
| |
| <p>However, we are trying to phase out "magic MIME types" so we |
| are deprecating this method.</p> |
| </summary> |
| |
| <section><title>New Features</title> |
| |
| <p>The imagemap module adds some new features that were not |
| possible with previously distributed imagemap programs.</p> |
| |
| <ul> |
| <li>URL references relative to the Referer: information.</li> |
| |
| <li>Default <BASE> assignment through a new map |
| directive <code>base</code>.</li> |
| |
| <li>No need for <code>imagemap.conf</code> file.</li> |
| |
| <li>Point references.</li> |
| |
| <li>Configurable generation of imagemap menus.</li> |
| </ul> |
| </section> |
| |
| <section><title>Imagemap File</title> |
| |
| <p>The lines in the imagemap files can have one of several |
| formats:</p> |
| |
| <example> |
| directive value [x,y ...]<br /> |
| directive value "Menu text" [x,y ...]<br /> |
| directive value x,y ... "Menu text" |
| </example> |
| <p>The directive is one of <code>base</code>, |
| <code>default</code>, <code>poly</code>, <code>circle</code>, |
| <code>rect</code>, or <code>point</code>. The value is an |
| absolute or relative URL, or one of the special values listed |
| below. The coordinates are <code>x,y</code> pairs separated by |
| whitespace. The quoted text is used as the text of the link if |
| a imagemap menu is generated. Lines beginning with '#' are |
| comments.</p> |
| |
| <section><title>Imagemap File Directives</title> |
| <p>There are six directives allowed in the imagemap file. The |
| directives can come in any order, but are processed in the |
| order they are found in the imagemap file.</p> |
| |
| <dl> |
| <dt><code>base</code> Directive</dt> |
| |
| <dd>Has the effect of <code><BASE HREF="value"></code>. |
| The non-absolute URLs of the map-file are taken relative to |
| this value. The <code>base</code> directive overrides |
| ImapBase as set in a .htaccess file or in the server |
| configuration files. In the absence of an ImapBase |
| configuration directive, <code>base</code> defaults to |
| <code>http://server_name/</code>.<br /> |
| <code>base_uri</code> is synonymous with <code>base</code>. |
| Note that a trailing slash on the URL is significant.</dd> |
| |
| <dt><code>default</code> Directive</dt> |
| |
| <dd>The action taken if the coordinates given do not fit any |
| of the <code>poly</code>, <code>circle</code> or |
| <code>rect</code> directives, and there are no |
| <code>point</code> directives. Defaults to |
| <code>nocontent</code> in the absence of an ImapDefault |
| configuration setting, causing a status code of <code>204 No |
| Content</code> to be returned. The client should keep the |
| same page displayed.</dd> |
| |
| <dt><code>poly</code> Directive</dt> |
| |
| <dd>Takes three to one-hundred points, and is obeyed if the |
| user selected coordinates fall within the polygon defined by |
| these points.</dd> |
| |
| <dt><code>circle</code></dt> |
| |
| <dd>Takes the center coordinates of a circle and a point on |
| the circle. Is obeyed if the user selected point is with the |
| circle.</dd> |
| |
| <dt><code>rect</code> Directive</dt> |
| |
| <dd>Takes the coordinates of two opposing corners of a |
| rectangle. Obeyed if the point selected is within this |
| rectangle.</dd> |
| |
| <dt><code>point</code> Directive</dt> |
| |
| <dd>Takes a single point. The point directive closest to the |
| user selected point is obeyed if no other directives are |
| satisfied. Note that <code>default</code> will not be |
| followed if a <code>point</code> directive is present and |
| valid coordinates are given.</dd> |
| </dl> |
| </section> |
| |
| <section><title>Values</title> |
| |
| <p>The values for each of the directives can any of the following:</p> |
| |
| |
| <dl> |
| <dt>a URL</dt> |
| |
| <dd>The URL can be relative or absolute URL. Relative URLs |
| can contain '..' syntax and will be resolved relative to the |
| <code>base</code> value.<br /> |
| <code>base</code> itself will not resolved according to the |
| current value. A statement <code>base mailto:</code> will |
| work properly, though.</dd> |
| |
| <dt><code>map</code></dt> |
| |
| <dd>Equivalent to the URL of the imagemap file itself. No |
| coordinates are sent with this, so a menu will be generated |
| unless ImapMenu is set to 'none'.</dd> |
| |
| <dt><code>menu</code></dt> |
| |
| <dd>Synonymous with <code>map</code>.</dd> |
| |
| <dt><code>referer</code></dt> |
| |
| <dd>Equivalent to the URL of the referring document. Defaults |
| to <code>http://servername/</code> if no Referer: header was |
| present.</dd> |
| |
| <dt><code>nocontent</code></dt> |
| |
| <dd>Sends a status code of <code>204 No Content</code>, |
| telling the client to keep the same page displayed. Valid for |
| all but <code>base</code>.</dd> |
| |
| <dt><code>error</code></dt> |
| |
| <dd>Fails with a <code>500 Server Error</code>. Valid for all |
| but <code>base</code>, but sort of silly for anything but |
| <code>default</code>.</dd> |
| </dl> |
| </section> |
| |
| <section><title>Coordinates</title> |
| |
| <dl> |
| <dt><code>0,0 200,200</code></dt> |
| |
| <dd>A coordinate consists of an <code>x</code> and a <code>y</code> |
| value separated by a comma. The coordinates are separated |
| from each other by whitespace. To accommodate the way Lynx |
| handles imagemaps, should a user select the coordinate |
| <code>0,0</code>, it is as if no coordinate had been |
| selected.</dd> |
| </dl> |
| |
| </section> |
| |
| <section><title>Quoted Text</title> |
| |
| <dl> |
| <dt><code>"Menu Text"</code></dt> |
| |
| <dd>After the value or after the coordinates, the line |
| optionally may contain text within double quotes. This string |
| is used as the text for the link if a menu is |
| generated:<br /> |
| <code><a HREF="http://foo.com/">Menu |
| text</a></code><br /> |
| If no quoted text is present, the name of the link will be |
| used as the text:<br /> |
| <code><a |
| HREF="http://foo.com/">http://foo.com</a></code><br /> |
| It is impossible to escape double quotes within this |
| text.</dd> |
| </dl> |
| </section> |
| </section> |
| |
| <section><title>Example Mapfile</title> |
| |
| <example> |
| #Comments are printed in a 'formatted' or |
| 'semiformatted' menu.<br /> |
| #And can contain html tags. <hr><br /> |
| base referer<br /> |
| poly map "Could I have a menu, please?" 0,0 0,10 10,10 |
| 10,0<br /> |
| rect .. 0,0 77,27 "the directory of the referer"<br /> |
| circle http://www.inetnebr.com/lincoln/feedback/ 195,0 |
| 305,27<br /> |
| rect another_file "in same directory as referer" 306,0 |
| 419,27<br /> |
| point http://www.zyzzyva.com/ 100,100<br /> |
| point http://www.tripod.com/ 200,200<br /> |
| rect mailto:nate@tripod.com 100,150 200,0 "Bugs?"<br /> |
| </example> |
| |
| </section> |
| |
| <section><title>Referencing your mapfile</title> |
| |
| <example> |
| <A HREF="/maps/imagemap1.map"><br /> |
| <IMG ISMAP SRC="/images/imagemap1.gif"><br /> |
| </A> |
| </example> |
| </section> |
| |
| <directivesynopsis> |
| <name>ImapMenu</name> |
| <description>Action if no coordinates are given when calling |
| an imagemap</description> |
| <syntax>ImapMenu |
| none|formatted|semiformatted|unformatted</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>Indexes</override> |
| |
| <usage> |
| <p>The <directive>ImapMenu</directive> directive determines the |
| action taken if an imagemap file is called without valid |
| coordinates.</p> |
| |
| <dl> |
| <dt><code>none</code></dt> |
| |
| <dd>If ImapMenu is <code>none</code>, no menu is generated, |
| and the <code>default</code> action is performed.</dd> |
| |
| <dt><code>formatted</code></dt> |
| |
| <dd>A <code>formatted</code> menu is the simplest menu. |
| Comments in the imagemap file are ignored. A level one header |
| is printed, then an hrule, then the links each on a separate |
| line. The menu has a consistent, plain look close to that of |
| a directory listing.</dd> |
| |
| <dt><code>semiformatted</code></dt> |
| |
| <dd>In the <code>semiformatted</code> menu, comments are |
| printed where they occur in the imagemap file. Blank lines |
| are turned into HTML breaks. No header or hrule is printed, |
| but otherwise the menu is the same as a |
| <code>formatted</code> menu.</dd> |
| |
| <dt><code>unformatted</code></dt> |
| |
| <dd>Comments are printed, blank lines are ignored. Nothing is |
| printed that does not appear in the imagemap file. All breaks |
| and headers must be included as comments in the imagemap |
| file. This gives you the most flexibility over the appearance |
| of your menus, but requires you to treat your map files as |
| HTML instead of plaintext.</dd> |
| </dl> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>ImapDefault</name> |
| <description>Default action when an imagemap is called with coordinates |
| that are not explicitly mapped</description> |
| <syntax>ImapDefault error|nocontent|map|referer|<em>URL</em></syntax> |
| <default>ImapDefault nocontent</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>Indexes</override> |
| |
| <usage> |
| <p>The <directive>ImapDefault</directive> directive sets the default |
| <code>default</code> used in the imagemap files. Its value is |
| overridden by a <code>default</code> directive within the |
| imagemap file. If not present, the <code>default</code> action |
| is <code>nocontent</code>, which means that a <code>204 No |
| Content</code> is sent to the client. In this case, the client |
| should continue to display the original page.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>ImapBase</name> |
| <description>Default <code>base</code> for imagemap files</description> |
| <syntax>ImapBase map|referer|<em>URL</em></syntax> |
| <default>ImapBase http://servername/</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>Indexes</override> |
| |
| <usage> |
| <p>The <directive>ImapBase</directive> directive sets the default |
| <code>base</code> used in the imagemap files. Its value is |
| overridden by a <code>base</code> directive within the imagemap |
| file. If not present, the <code>base</code> defaults to |
| <code>http://servername/</code>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |