| <?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> |