Блок-схема стандартного решения WEB ИРБИС
![]() |
Секция IBIS_EX обеспечивает показ страницы расширенного поиска и показ терминов словаря. Показ результатов поиска задается ТОЛЬКО в секции IBIS что позволяет его унифицировать. С другой стороны это делает невозможным передачу параметра I21DBN по формату в поисковую форму.
Примеры модификаций
1. Добавление новой БД
2. Изменение формы авторизации так чтобы при выполнении команды авторизации повторялась бы последняя выполненная команда Тогда все выглядит так будто авторизация прошла фоном.
Удалим из формы скрытые параметры
Включим в форму авторизации <!FORMAT=INSERT_ALL_PARAMETERS>
И изменим параметр кнопки авторизации на C21COM1 чтобы не путались команды
3. Применение специального unifor для создания формата при формировании поисковой ссылки на показ новых поступлений назад от текущей даты на Н месяцев
СМ формат last_date. pft
4. Как сделать чтобы при показе показаны записи с такой-то по такую-то при равенстве границ их не выводить
Добавить в main. frm fomat
<!FORMAT=!if val(v3)<>val(v1001) then '<i>Показаны документы</i> с <--BEGINRECS--> по <--ENDRECS-->' fi>
Добавить в формат поисковой ссылки web_dict. pft стартовый номер S21STN=1
<a href="/cgi-bin/irbis32r/cgiirbis_32.exe? I21DBN=IBIS&S21STN=1',,,,,,,,,
Отличия WEB ИРБИС 32 от WEB ИРБИС 64
1. Названия ini файла, шлюза и папок хранения фреймов имеют суффикс соответствующей версии. Например cgiirbis_64.exe – cgiirbis_32.exe, irbis_server. ini – irbis_32.ini. Это отличие необходимо при возможной одновременной установке 2-х версий.
2. Все фреймы 2-х версий имеют формат utf-8. В ini файле есть возможность изменить кодировку фреймов и поисковых ссылок на WINDOWS-1251(ANSI). Возможность независимых кодировок для фреймов и ссылок имеет причиной тот факт, что поисковые ссылки должны быть записаны в формате URI который передается в UTF-8 латиницей (так же как в WINDOWS 1251) Есть специальные unifor для работы с кодировками и раскодировками:
· &unifor('+3E' - перевод в формат URI для передачи серверу.
· &unifor('+3D' – перевод из URI (применяется шлюзом при работе по методу GET).
· &unifor('+3U' – перевод ANSI в UTF8 – применяется в WEB ИРБИС32 для формирования ссылок в кодировке UTF8.
· &unifor('+3+' – перевод знака + в %2B для правильной передачи поискового запроса содержащего логику ИЛИ по ссылке в параметре S21ALL – поисковый запрос на языке ISIS.
В какой бы кодировке не хранились фреймы шлюз производит выдачу в кодировке UTF8 что позволяет показывать диакриты в ИРБИС32 при форматировании найденных записей.
Отличие в формате хранения данных ИРБИС64 и ИРБИС32 приводит в отличию в формировании поисковых ссылок если задана их кодировка UTF8. В ИРБИС 32 дополнительно приходится переводить ссылку в UTF8 с помощью формата &unifor('+3U'
Технология выдачи-заказа
Технология выдачи-заказа единая для всех АРМов ИРБИС и изменять ее нужно соответственно для всех АРМ.
Дополнительные параметры управляющие заказом включаются в ини файл irbis_server. ini из ини файла АРМ Читатель
###ZAKAZ OPTIONS#####
[MAIN]
SerVid=J
AnalVid1=ASP
AnalVid2=AUNTD
AnalVid3=NJP
TagVid=920
DBNPREFSHIFR=I=
DBNTAGSHIFR=903
DBNTAGSOURCE=463
DBNDELIMSOURCE=W
[Reader]
RdrPrefReader=RI=
[Request]
RQSTTAGFAMILYREADER=10
RQSTTAGREADER=30
RQSTTAGRDRBRIEF=31
RQSTTAGBRIEF=201
RQSTTAGSHIFR=903
RQSTTAGTIME0=40
RQSTTAGDBN=1
RQSTTAGDOP=100
RQSTTAGNOTE=101
Для идентификации ЧИтателя используется ТОЛЬКО префикс RI=
RdrPrefReader=RI=
Фамилия берется из поля
RQSTTAGFAMILYREADER=10
Это поле никак не используется при авторизации в АРМ Читатель и его можно менять как угодно (только не забыть что для показа формуляра используются поля 10 11 12)
При выполнении заказа в БД RQST в поле
RQSTTAGREADER=30
пишется идентификатор считанный при авторизации из поля ввода пароля и найденный в словаре RI=....
Чтобы поменять его надо быть уверенным что это не скажется на работе АРМ Книговыдача
А это обязательно скажется хотя бы на статистике спроса и построении соответствий между RDR и RQST и IBIS (Ген каталог)
Так что прежде чем менять авторизацию по идентификатору необходимо просмотреть все технологию выдачи-заказа в ИРБИС
Не рекомендую этого делать тем более что поле 10 специально было введено в WEB ИРБИС для целей ужесточения авторизации
Его вполне достаточно
ИТАК в итоге
Если есть в RDR поле которое хочется использовать для авторизации (в дистрибутиве ФАМИЛИЯ) ВМЕСТЕ с идентификатором Читателя библиотеки нужно только поменять параметр
[Request]
RQSTTAGFAMILYREADER=10
и установить флаг Z21FLAGID=1 в форме авторизации Этот флаг указывает шлюзу проверять вместе с Идентификатом и вышеуказанное добывавочное поле (если найдена запись с данным идентификатором)



