| <?xml version="1.0"?> | 
 | <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> | 
 | <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> | 
 | <!-- $LastChangedRevision$ --> | 
 |  | 
 | <!-- | 
 |  Licensed to the Apache Software Foundation (ASF) under one or more | 
 |  contributor license agreements.  See the NOTICE file distributed with | 
 |  this work for additional information regarding copyright ownership. | 
 |  The ASF licenses this file to You under the Apache License, Version 2.0 | 
 |  (the "License"); you may not use this file except in compliance with | 
 |  the License.  You may obtain a copy of the License at | 
 |  | 
 |      http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 |  Unless required by applicable law or agreed to in writing, software | 
 |  distributed under the License is distributed on an "AS IS" BASIS, | 
 |  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 |  See the License for the specific language governing permissions and | 
 |  limitations under the License. | 
 | --> | 
 |  | 
 | <modulesynopsis metafile="mod_imagemap.xml.meta"> | 
 |  | 
 | <name>mod_imagemap</name> | 
 | <description>Server-side imagemap processing</description> | 
 | <status>Base</status> | 
 | <sourcefile>mod_imagemap.c</sourcefile> | 
 | <identifier>imagemap_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> | 
 |  | 
 |     <highlight language="config"> | 
 | AddHandler imap-file map | 
 |     </highlight> | 
 |  | 
 |     <p>Note that the following is still supported:</p> | 
 |  | 
 |     <highlight language="config"> | 
 | AddType application/x-httpd-imap map | 
 |     </highlight> | 
 |  | 
 |     <p>However, we are trying to phase out "magic MIME types" so we | 
 |     are deprecating this method.</p> | 
 | </summary> | 
 |  | 
 | <section id="features"><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 <code><base></code> 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 id="imapfile"><title>Imagemap File</title> | 
 |  | 
 |     <p>The lines in the imagemap files can have one of several | 
 |     formats:</p> | 
 |  | 
 |     <example> | 
 |       directive value [<var>x</var>,<var>y</var> ...]<br /> | 
 |       directive value "<var>Menu text</var>" [<var>x</var>,<var>y</var> | 
 |       ...]<br /> | 
 |       directive value <var>x</var>,<var>y</var> ... "<var>Menu text</var>" | 
 |     </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><var>x</var>,<var>y</var></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 id="imapfile.directives"><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><p>Has the effect of <code><base href="<var>value</var>"> | 
 |       </code>. The non-absolute URLs of the map-file are taken relative | 
 |       to this value. The <code>base</code> directive overrides | 
 |       <directive module="mod_imagemap">ImapBase</directive> as set in a | 
 |       <code>.htaccess</code> file or in the server configuration files. | 
 |       In the absence of an <directive>ImapBase</directive> configuration | 
 |       directive, <code>base</code> defaults to | 
 |       <code>http://server_name/</code>.</p> | 
 |       <p><code>base_uri</code> is synonymous with <code>base</code>. | 
 |       Note that a trailing slash on the URL is significant.</p></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 <directive module="mod_imagemap" | 
 |       >ImapDefault</directive> 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 id="imapfile.values"><title>Values</title> | 
 |  | 
 |       <p>The values for each of the directives can be any of the | 
 |       following:</p> | 
 |  | 
 |       <dl> | 
 |       <dt>a URL</dt> | 
 |  | 
 |       <dd><p>The URL can be relative or absolute URL. Relative URLs | 
 |       can contain '..' syntax and will be resolved relative to the | 
 |       <code>base</code> value.</p> | 
 |       <p><code>base</code> itself will not be resolved according to the | 
 |       current value. A statement <code>base mailto:</code> will | 
 |       work properly, though.</p></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 <directive module="mod_imagemap">ImapMenu</directive> is set to | 
 |       <code>none</code>.</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 <code>Referer:</code> | 
 |       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 id="imapfile.coords"><title>Coordinates</title> | 
 |  | 
 |       <dl> | 
 |       <dt><code>0,0 200,200</code></dt> | 
 |  | 
 |       <dd>A coordinate consists of an <var>x</var> and a <var>y</var> | 
 |       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 id="imapfile.quotedtext"><title>Quoted Text</title> | 
 |  | 
 |       <dl> | 
 |       <dt><code>"<var>Menu Text</var>"</code></dt> | 
 |  | 
 |       <dd><p>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:</p> | 
 |  | 
 |       <example> | 
 |         <a href="http://example.com/"><var>Menu text</var></a> | 
 |       </example> | 
 |  | 
 |       <p>If no quoted text is present, the name of the link will be | 
 |       used as the text:</p> | 
 |  | 
 |       <example> | 
 |         <a href="http://example.com/">http://example.com</a> | 
 |       </example> | 
 |  | 
 |       <p>If you want to use double quotes within this text, you have to | 
 |       write them as <code>&quot;</code>.</p></dd> | 
 |       </dl> | 
 |  | 
 |     </section> | 
 | </section> | 
 |  | 
 | <section id="example"><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.example.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.example.com/ 100,100<br /> | 
 |       point http://www.tripod.example.com/ 200,200<br /> | 
 |       rect mailto:nate@tripod.example.com 100,150 200,0 "Bugs?"<br /> | 
 |     </example> | 
 |  | 
 | </section> | 
 |  | 
 | <section id="referencing"><title>Referencing your mapfile</title> | 
 |  | 
 |     <example><title>HTML example</title> | 
 |       <a href="/maps/imagemap1.map"><br /> | 
 |       <indent> | 
 |         <img ismap src="/images/imagemap1.gif"><br /> | 
 |       </indent> | 
 |       </a> | 
 |     </example> | 
 |  | 
 |     <example><title>XHTML example</title> | 
 |       <a href="/maps/imagemap1.map"><br /> | 
 |       <indent> | 
 |         <img ismap="ismap" src="/images/imagemap1.gif" /><br /> | 
 |       </indent> | 
 |       </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> | 
 | <default>ImapMenu formatted</default> | 
 | <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|<var>URL</var></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|<var>URL</var></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://<var>servername</var>/</code>.</p> | 
 | </usage> | 
 | <seealso><directive module="core">UseCanonicalName</directive></seealso> | 
 | </directivesynopsis> | 
 |  | 
 | </modulesynopsis> |