Serveur HTTP Apache Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_imagemap

Description: | Traitement des cartes des zones interactives d'une image (imagemaps) au niveau du serveur
Statut: | Base
Identificateur de Module: | imagemap_module
Fichier Source: | mod_imagemap.c

### Sommaire

Ce module traite les fichiers `.map`, et remplace ainsi la fonctionnalité du programme CGI `imagemap`. Tout répertoire ou type de document configuré pour utiliser le gestionnaire `imap-file` (à l'aide des directives `AddHandler` ou `SetHandler`), sera traité par ce module.

La directive suivante confère aux fichiers possèdant l'extension `.map` le statut de fichiers imagemap :

    AddHandler imap-file map

Notez que la syntaxe suivante reste encore supportée :

    AddType application/x-httpd-imap map

Cependant, nous essayons d'abandonner progressivement les "types MIME magiques", et cette syntaxe est sur le point de devenir obsolète.

### Sujets

- Nouvelles fonctionnalités
- Fichier imagemap
- Exemple de fichier imagemap
- Référencement de votre fichier imagemap

### Directives

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

## Nouvelles fonctionnalités

Le module imagemap propose quelques nouvelles fonctionnalités qui n'étaient pas disponibles avec les programmes imagemap précédemment distribués.

- Références d'URLs relatives à l'information contenue dans l'en-tête Referer: .
- Assignement `<base>` par défaut via la nouvelle directive `base`.
- Fichier `imagemap.conf` non requis.
- Références à des points.
- Génération configurable de menus d'images interactives.

## Fichier imagemap

Les lignes d'un fichier imagemap peuvent se présenter sous plusieurs formats :

`directive valeur [x,y ...]
directive valeur "Texte de menu" [x,y ...]
directive valeur x,y ... "Texte de menu"`

Les directives sont `base`, `default`, `poly`, `circle`, `rect`, ou `point`. valeur est une URL absolue ou relative, ou une des valeurs spéciales énumérées ci-dessous. Les coordonnées sont des paires `x,y` séparées par des espaces. Le texte entre guillemets est le texte du lien si un menu imagemap est généré. Les lignes commençant par '#' sont des commentaires.

### Directives d'un fichier imagemap

Les directives autorisées dans un fichier imagemap sont au nombre de six. Elles peuvent se trouver à n'importe quelle position dans le fichier, mais sont traitées dans l'ordre selon lequel elles sont enregistrées dans le fichier imagemap.

Directive `base`

  Elle a le même effet que `<base href="valeur">`. Les URLs non absolues du fichier imagemap sont considérées comme relatives à cette valeur. La directive `base` l'emporte sur une directive `ImapBase` définie dans un fichier `.htaccess` ou dans le fichier de configuration du serveur. En l'absence de directive de configuration `ImapBase`, la valeur par défaut de `base` est `http://nom_serveur/`.

  `base_uri` est un synonyme de `base`. Notez que la présence ou l'absence d'un slash de fin dans l'URL est importante.

Directive `default`
  La décision à prendre si les coordonnées fournies ne correspondent à aucune des directives `poly`, `circle`, ou `rect`, et si aucune directive `point` n'est présente. En l'absence de définition d'une directive de configuration `ImapDefault`, la valeur par défaut est `nocontent` et provoque l'envoi d'un code de statut `204 No Content`. Le client verra toujours la même page s'afficher.
Directive `poly`
  Accepte comme arguments trois à cent points, et est actionnée si les coordonnées sélectionnées par l'utilisateur tombent dans le polygone défini par ces points.
Directive `circle`
  Accepte comme arguments les coordonnées du centre d'un cercle et celles d'un point de ce cercle. Elle est actionnée si les coordonnées sélectionnées par l'utilisateur tombent dans ce cercle.
Directive `rect`
  Accepte comme arguments les coordonnées des sommets de deux angles opposés d'un rectangle. Elle est actionnée si les coordonnées sélectionnées par l'utilisateur tombent dans ce rectangle.
Directive `point`
  Elle n'accepte qu'un seul point comme argument. Si aucune autre directive ne correspond, c'est la directive dont le point spécifié est le plus près du point sélectionné par l'utilisateur qui est actionnée. Notez que la directive `default` ne sera pas suivie si une directive `point` est présente et si des coordonnées valides sont fournies.

### Valeurs

Les valeurs passées aux directives peuvent contenir :

une URL

  L'URL peut être absolue ou relative. Les URLs relatives peuvent contenir '..' et seront considérées comme relatives à la valeur de `base`.

  `base` en lui-même, ne sera pas résolu en fonction de la valeur courante. Cependant, une directive `base mailto:` fonctionnera correctement.

`map`
  Équivalent à l'URL du fichier imagemap lui-même. Aucune coordonnée n'est spécifiée, et un menu sera donc généré, à moins qu'une directive `ImapMenu` n'ait été définie à `none`.
`menu`
  Équivalent à `map`.
`referer`
  Équivalent à l'URL du document référant. La valeur par défaut est `http://nom_serveur/` si aucun en-tête `Referer:` n'est présent.
`nocontent`
  Envoie un code de statut `204 No Content`, indiquant au client qu'il doit continuer à afficher la même page. Valide pour toutes les directives, sauf `base`.
`error`
  Envoie un code de statut d'échec `500 Server Error`. Valide pour toutes les directives, sauf `base`, mais n'a de sens qu'avec la directive `default`.

### Coordonnées

`0,0 200,200`
  Une coordonnée se compose de deux valeurs, x et y, séparées par une virgule. Les coordonnées sont séparées entre elles par des espaces. Pour s'adapter à la manière dont Lynx traite les images interactives, la sélection par un utilisateur de la coordonnée `0,0` a le même effet que si aucune coordonnée n'a été sélectionnée.

### Texte entre guillemets

`"Texte du menu"`

  Après la valeur ou les coordonnées, la ligne peut éventuellement contenir un texte entre guillemets. Cette chaîne constitue le texte du lien si un menu est généré :

  `<a href="http://example.com/">Texte de menu</a>`

  Si aucun texte entre guillemets n'est présent, le texte sera constitué du nom du lien :

  `<a href="http://example.com/">http://example.com</a>`

  Si vous voulez insérer des guillemets dans le texte, vous devez les inscrire sous la forme `&quot;`.

## Exemple de fichier imagemap

`#Les commentaires sont affichés dans un menu 'formaté' ou #'semi-formaté'.
#Et peuvent contenir des balises html. <hr>
base referer
poly map "Puis-je avoir un menu, s'il vous plait ?" 0,0 0,10 10,10 10,0
rect .. 0,0 77,27 "le répertoire du référant"
circle http://www.inetnebr.example.com/lincoln/feedback/ 195,0 305,27
rect autre_fichier "dans le même répertoire que le référant" 306,0 419,27
point http://www.zyzzyva.example.com/ 100,100
point http://www.tripod.example.com/ 200,200
rect mailto:nate@tripod.example.com 100,150 200,0 "Bogues?"
`

## Référencement de votre fichier imagemap

### Exemple HTML

`<a href="/maps/imagemap1.map">
<img ismap src="/images/imagemap1.gif">
</a>`

### Exemple XHTML

`<a href="/maps/imagemap1.map">
<img ismap="ismap" src="/images/imagemap1.gif" />
</a>`

## Directive ImapBase

Description: | Valeur par défaut de la directive `base` des fichiers imagemap
Syntaxe: | `ImapBase map|referer|URL`
Défaut: | `ImapBase http://nom_serveur/`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | Indexes
Statut: | Base
Module: | mod_imagemap

La directive `ImapBase` permet de définir la valeur par défaut de la directive `base` des fichiers imagemap. Sa valeur est écrasée par la présence éventuelle d'une directive `base` dans le fichier imagemap. Si cette directive est absente, la valeur par défaut de la directive `base` est `http://nom_serveur/`.

### Voir aussi

- `UseCanonicalName`

## Directive ImapDefault

Description: | Action à entreprendre par défaut lorsqu'un fichier imagemap est invoqué avec des coordonnées qui ne correspondent à aucune cible
Syntaxe: | `ImapDefault error|nocontent|map|referer|URL`
Défaut: | `ImapDefault nocontent`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | Indexes
Statut: | Base
Module: | mod_imagemap

La directive `ImapDefault` permet de définir la valeur par défaut de la directive `default` utilisée dans les fichiers imagemap. Sa valeur est écrasée par la présence éventuelle d'une directive `default` dans le fichier imagemap. Si cette directive est absente, l'action associée à `default` est `nocontent`, ce qui implique l'envoi d'un code de statut `204 No Content` au client. Dans ce cas, le client doit continuer à afficher la même page.

## Directive ImapMenu

Description: | Action à entreprendre si aucune coordonnée n'est fournie lorsqu'on invoque un fichier imagemap
Syntaxe: | `ImapMenu none|formatted|semiformatted|unformatted`
Défaut: | `ImapMenu formatted`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | Indexes
Statut: | Base
Module: | mod_imagemap

La directive `ImapMenu` permet de spécifier l'action à entreprendre lorsqu'un fichier imagemap est invoqué sans coordonnées valides.

`none`
  Si l'argument d'ImapMenu est `none`, aucun menu n'est généré, et l'action `default` est effectuée.
`formatted`
  Le menu `formatted` est le menu le plus simple. Les commentaires du fichier imagemap sont ignorés. Un en-tête de niveau un est affiché, puis un séparateur horizontal, puis chacun des liens sur une ligne séparée. L'aspect du menu est similaire à celui d'un listing de répertoire.
`semiformatted`
  Dans le menu `semiformatted`, les commentaires sont affichés au moment où ils apparaissent dans le fichier imagemap. Les lignes vides sont interprètées comme des lignes de séparation HTML. Aucun en-tête ni séparateur horizontal n'est affiché. À part ces différences, le menu `semiformatted` est identique au menu `formatted`.
`unformatted`
  Les commentaires sont affichés et les lignes vides sont ignorées. N'est affiché que ce qui apparait dans le fichier imagemap. Toutes les lignes de séparation HTML et les en-têtes doivent être inclus en tant que commentaires dans le fichier imagemap. Cela vous procure une grande souplesse pour définir l'apparence de vos menus, mais vous oblige à rédiger vos fichiers imagemap en HTML, et non en texte plat.