Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_imagemap

Описание: Обработка изображений-карты сайта на стороне сервера
Статус: Базовый
Идентификатор модуля: imagemap_module
Файл исходного кода: mod_imagemap.c

Резюме

Этот модуль обрабатывает файлы .map, тем самым заменяя функциональность программы CGI imagemap. Любой каталог или тип документа, настроенный для использования обработчика imap-file (используя AddHandler или SetHandler), будет обрабатываться этим модулем.

Следующая директива активирует файлы, оканчивающиеся на .map, как файлы изображений-карт сайта:

AddHandler imap-file map

Обратите внимание, что поддерживается следующее:

AddType application/x-httpd-imap map

Однако мы пытаемся отказаться от «магических MIME-типов», поэтому этот метод устаревает.

Новые возможности

Модуль imagemap добавляет некоторые новые возможности, которые были недоступны с ранее распространёнными программами imagemap.

  • Ссылки URL, относительные к информации Referer:
  • Назначение по умолчанию <base> через новую директиву карты base.
  • Больше нет необходимости в файле imagemap.conf.
  • Ссылки на точки.
  • Настраиваемое создание меню imagemap.

Файл imagemap

Строки в файлах imagemap могут иметь несколько форматов:

directive value [x,y ...]
directive value "Menu text" [x,y ...]
directive value x,y ... "Menu text"

Директива — одна из base, default, poly, circle, rect, или point. Значение — абсолютный или относительный URL или одно из специальных значений, перечисленных ниже. Координаты — пары x,y значений, разделённые пробелами. Цитируемый текст используется в качестве текста ссылки, если генерируется меню imagemap. Строки, начинающиеся с '#', являются комментариями.

Директивы файла imagemap

В файле imagemap разрешено шесть директив. Директивы могут идти в любом порядке, но обрабатываются в том порядке, в котором они встречаются в файле imagemap.

base Директива

Оказывает такое же действие, как и <base href="value">. Неабсолютные URL-адреса файла карты берутся относительно этого значения. Директива base переопределяет ImapBase , установленную в файле .htaccess или в конфигурационных файлах сервера. В отсутствие конфигурационной директивы ImapBase, значение base по умолчанию равно http://server_name/.

base_uri является синонимом base. Обратите внимание, что конечный слэш в URL-адресе имеет значение.

default Директива
Действие, выполняемое, если заданные координаты не соответствуют ни одной из директив poly, circle или rect, и нет директив point. По умолчанию значение равно nocontent в отсутствие конфигурационного параметра ImapDefault, что приводит к возврату кода состояния 204 No Content. Клиент должен сохранить отображаемую страницу.
poly Директива
Принимает от трёх до ста точек и выполняется, если выбранные пользователем координаты попадают в многоугольник, заданный этими точками.
circle
Принимает центральные координаты окружности и точку на окружности. Выполняется, если выбранная пользователем точка находится внутри окружности.
rect Директива
Принимает координаты двух противоположных углов прямоугольника. Выполняется, если выбранная точка находится внутри этого прямоугольника.
point Директива
Принимает одну точку. Директива точки, наиболее близкая к выбранной пользователем точке, выполняется, если никакие другие директивы не удовлетворены. Обратите внимание, что default не будет выполнена, если присутствует директива point и заданы корректные координаты.

Значения

Значения для каждой из директив могут быть любыми из следующих:

URL-адрес

URL-адрес может быть относительным или абсолютным. Относительные URL-адреса могут содержать синтаксис «..» и будут разрешаться относительно значения base.

base сам по себе не будет разрешён в соответствии с текущим значением. Заявление base mailto: будет работать правильно.

map
Эквивалентно URL-адресу самого файла imagemap. С ним не отправляются координаты, поэтому будет сгенерировано меню, если ImapMenu не установлено в значение none.
menu
Синонимично map.
referer
Эквивалентно URL-адресу документа-предшественника. По умолчанию равно http://servername/ , если заголовок Referer: не присутствовал.
nocontent
Отправляет код состояния 204 No Content, сообщая клиенту о сохранении отображаемой страницы. Действительно для всех, кроме base.
error
Возвращает ошибку 500 Server Error. Действительно для всех, кроме base, но немного странно для чего-либо, кроме default.

Координаты

0,0 200,200
Координата состоит из значения x и значения y, разделённых запятой. Координаты разделены друг от друга пробелами. Для обеспечения совместимости с Lynx, если пользователь выбирает координату 0,0, это будет как если бы никакая координата не была выбрана.

Цитируемый текст

"Menu Text"

После значения или координат строка необязательно может содержать текст в двойных кавычках. Эта строка используется как текст ссылки, если генерируется меню:

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

Если цитируемого текста нет, то имя ссылки будет использоваться как текст:

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

Если вам нужно использовать двойные кавычки внутри этого текста, вы должны записать их как &quot;.

Пример файла карты

#Comments are printed in a 'formatted' or 'semiformatted' menu.
#And can contain html tags. <hr>
base referer
poly map "Could I have a menu, please?" 0,0 0,10 10,10 10,0
rect .. 0,0 77,27 "the directory of the referer"
circle http://www.inetnebr.example.com/lincoln/feedback/ 195,0 305,27
rect another_file "in same directory as referer" 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 "Bugs?"

Ссылка на ваш файл карты

Пример HTML

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

Пример XHTML

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

Директива ImapBase

Описание: Значение по умолчанию base для файлов imagemap
Синтаксис:
ImapBase map|referer|URL
Значение по умолчанию:
ImapBase http://servername/
Контекст: конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределение: Индексы
Статус: Базовый
Модуль: mod_imagemap

Директива ImapBase устанавливает значение по умолчанию base , используемое в файлах imagemap. Его значение переопределяется директивой base внутри файла imagemap. Если отсутствует, base по умолчанию равно http://servername/.

См. также

  • UseCanonicalName

Директива ImapDefault

Описание: Действие по умолчанию, когда imagemap вызывается с координатами, которые не явно сопоставлены
Синтаксис:
ImapDefault error|nocontent|map|referer|URL
Значение по умолчанию:
ImapDefault nocontent
Контекст: конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределение: Индексы
Статус: Базовый
Модуль: mod_imagemap

Директива ImapDefault устанавливает значение по умолчанию default для файлов imagemap. Его значение переопределяется директивой default внутри файла imagemap. Если отсутствует, действие default по умолчанию равно nocontent, что означает, что клиенту отправляется код состояния 204 No Content. В этом случае клиент должен продолжить отображение исходной страницы.

Директива ImapMenu

Описание: Действие, если при вызове imagemap не указаны координаты
Синтаксис:
ImapMenu none|formatted|semiformatted|unformatted
Значение по умолчанию:
ImapMenu formatted
Контекст: конфигурация сервера, виртуальный хост, каталог, .htaccess
Переопределение: Индексы
Статус: Базовый
Модуль: mod_imagemap

Директива ImapMenu определяет действие, выполняемое, если файл imagemap вызывается без корректных координат.

none
Если ImapMenu равно none, меню не генерируется, и выполняется действие default.
formatted
Меню formatted — самое простое меню. Комментарии в файле imagemap игнорируются. Выводится заголовок первого уровня, затем горизонтальная линия, затем ссылки, каждая на отдельной строке. Меню имеет последовательный простой вид, близкий к виду списка каталогов.
semiformatted
В меню semiformatted комментарии печатаются там, где они встречаются в файле imagemap. Пустые строки преобразуются в разрывы HTML. Не выводится заголовок или горизонтальная линия, но в остальном меню аналогично меню formatted.
unformatted
Комментарии печатаются, пустые строки игнорируются. Ничего не выводится, если это не появляется в файле imagemap. Все разрывы и заголовки должны быть включены в виде комментариев в файле imagemap. Это даёт вам большую гибкость в управлении внешним видом меню, но требует, чтобы вы рассматривали ваши файлы карт как HTML, а не как текст.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_imagemap.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API