В текущий момент эта функция нигде не вызывается, добавлена для тестирования самой технологии работы форматера ИРБИС 64
В целях максимально точного соответствия результатов форматирования нативной функцией с результатами форматирования выдаваемыми последней версией irbistool внесены дополнительные изменения:
Добавлены проверки инициализации провайдера данных (dprv): В методы FindRecords, GetFile, GetMaxMfn, GetPostingList, GetTermList и RecRead внедрены проверки на существование $db->dprv (Data Provider). Теперь, если провайдер не задан или БД недоступна, методы возвращают безопасные значения по умолчанию (null, 0, пустые массивы или код -109) вместо генерации критической ошибки (Fatal Error).
Исправление сохранения результатов в FullTextSearch: В методе FullTextSearch переменная итератора цикла foreach теперь передается по ссылке (&$record). Ранее результаты вызова $db->RecReadIntellect($record'rec') записывались в локальную копию переменной и не сохранялись в итоговом массиве.
Удаление устаревшего метода SetDbNamesLabel: Метод SetDbNamesLabel полностью исключен из модуля:
Удален сам файл реализации SetDbNamesLabel.inc.
Удалены вызовы метода из RecReadIntellect.inc и SaveAndUpdateRecord.inc.
Метод убран из PHPDoc аннотаций в api.php.
Доработки в чтении записей (RecReadIntellect): Логика автоматического заполнения поля 920 (определение типа записи по имени БД) перенесена выше — теперь она отрабатывает строго до вызова проверки значений по умолчанию $r->CheckDefault113().
Доработки в получении описаний из справочников (GetMnuDescByKey): Метод расширен параметром $defval (значение по умолчанию). Обновлена логика: вместо прямого вызова $mnu>GetDescByKey теперь используется модуль Mnu (UseModule('Mnu')>GetDescByKey), а при отсутствии значения "\x00" возвращается $defval.
Обновление комментариев и типизации (API и PHPDoc):
В GetPostingList.inc добавлен подробный PHPDoc блок, описывающий назначение метода (поддержка команды I сервера TCP/IP), его параметры и возвращаемые значения.
В api.php проведена большая чистка: длинный синтаксис массивов array() заменен на короткий [] в значениях по умолчанию, а также добавлены явные типы свойств классов (mixed, int, string) для lastflc, WsOpt, PftOpt, FmtMnu, extcodetypelist и UseAIB.
Модуль DP_Irbis64Direct:
Connect: Добавлена проверка успешности получения контекста БД (возвращает FILENOTEXISTS при ошибке). Добавлен явный возврат 0 при успешном подключении.
GetPostingList: Добавлен подробный PHPDoc с описанием параметров и структуры возвращаемых данных. Исправлено приведение типов к int для NumPostings и FirstPosting. Добавлена проверка и конвертация кодировки поискового термина в UTF-8 (во избежание проблем с CP1251 при использовании mb_strtoupper). Исправлено условие цикла выборки ссылок на термины (итерация теперь идет строго заданное количество раз NumPostings).
Модуль Mnu:
GetDescByKey: Существенно переработана логика поиска значения по ключу. Добавлены обработки граничных случаев (если справочник пуст), улучшена логика регистронезависимого поиска, а также добавлен механизм fallback (если точного ключа нет, система пытается вернуть значения по умолчанию для ключей '*' или '').
Load: Внедрен механизм каскадной загрузки (fallback). Теперь, если файл не найден в APath, система пытается найти его в Deposit (APath = 1), а затем в SYSPATH (APath = 0). Функция iconv заменена на более надежную mbconvertencoding. Убрано лишнее кэширование при считывании для избежания "залипания" пустых данных.
ParseFromText: Изменена логика парсинга справочников из текста. Теперь пустые ключи корректно сохраняются в массиве, так как они могут являться значениями по умолчанию.
api.php: Удалена дублирующаяся логика регистронезависимого поиска в GetDescByKeyNCase, теперь метод переиспользует обновленный функционал GetDescByKey.
Модуль Record:
api.php: Классу ObjectDataRecord добавлено развернутое описание методов через PHPDoc (@method) для улучшения автодополнения в IDE. Удалено неиспользуемое свойство $DbNames. Массив $Content теперь жестко типизирован и по умолчанию инициализируется пустым массивом.
GetSubField: Исправлена логика получения значения подполя. Устранены возможные проблемы с чувствительностью к регистру ключей и добавлены проверки на существование данных (защита от warning'ов).
ParseField и ParseIrbisRec: Устранены потенциальные ошибки с PHP Notice (undefined offset), добавлено использование оператора null coalescing (??), исправлена ошибка с дублированием вычисления подстроки.
CheckDefault113: Логика установки прав по умолчанию делегирована в модуль Security.
Модуль Security:
api.php: В класс Security перенесен и адаптирован метод CheckDefault113 (из модуля Record) для централизованного управления политиками безопасности и проверки наличия поля прав доступа (113) и системного идентификатора у записи.