ABCD 3.8.0 Technical Release Notes
This release introduces deep structural updates to the core of ABCD, focusing heavily on modernizing the Data Entry (Cataloging) interface and ensuring compliance with international standards. ABCD v3.8 marks a significant milestone in transitioning from a traditional Integrated Library System (ILS) to a more modular Library Services Platform (LSP). The architecture has been refactored to be significantly more stable, developer-friendly, and fully prepared for future integrations via REST APIs.
🚀 Key Features
Data Entry Interface Modernization (More)
- Native TAB Support in FDT: Added support for the
TABfield type to organize forms into distinct tabs. This enables the clean separation of form sections, completely replacing massive, single-page layouts that previously required gigantic accordions and endless vertical scrolling.

- Removal of Legacy Dependencies: The heavy and rigid dependency on the legacy
dhtmlXlibrary has been completely removed. The interface was rebuilt using semantic HTML and CSS Flexbox, resulting in a lighter codebase and much faster browser rendering. - Responsive Toolbar: The global toolbar was redesigned into a responsive, two-tier layout. It maintains full support for core operations (including Quick Search, Formats, and Worksheets) while communicating seamlessly with the legacy iframe architecture.

- Database Lock Resolution: Resolved a critical, long-standing bug where database locks (
lock_db) caused the global toolbar to freeze. Critical navigation functions—such as "Home" and "Admin/Config"—now remain accessible, allowing users to safely unlock databases without forced browser refreshes. - Dynamic Component Integration: Restored the critical logic for "New Record" generation, ensuring that the system correctly detects and triggers the
typeofrecord.tabworkflow.
MARC Standards & Interoperability
- MARC Indicator Support: Added native support for the MARC Indicator (
IND) field type within the FDT and validation engine. The system now permits having an Indicator 1 and a Subfield 1 within the same field, building fully MARC21-compliant strings.

- Database Standardization: Template databases for MARC and RDA (across English, Spanish, and Portuguese locales) have been standardized to conform to the new tab-based layout system.
- File Normalization: All
.parand.fstconfiguration files have been standardized across example database models.
Modernized File Management & Uploads
- AJAX-Driven Uploads: Introduced a centralized upload system via
UploadRendererfeaturing a drag-and-drop modal, background AJAX processing, a visual progress bar, and full localization support.

- Directory Management: Users can now create target folders directly from the management interface, allowing files to be uploaded into exact subdirectories dynamically resolved by database paths.

System Administration Enhancements
- Profile Editor Refactoring: The user profile editor (
profile_edit.php) was completely overhauled to modernize UI and JavaScript behaviors. The new layout incorporates tabbed navigation, dynamic accordions with real-time badge counts, and grouped checkbox grids for managing permissions across databases, formats, and worksheets.

- Path Macros: Added native support for the
%path_database%constant within.parfiles, allowing administrators to point to relative paths for external databases directly from the core configuration (e.g.,rda.*=%path_database%rda/data/rda.*).

- Inline Subfields Toggle: Introduced a new global configuration option
SUBFIELDS_INLINE(Y/N) in the database settings to let administrators choose whether grouped subfields are displayed inline or managed via a pop-up window.

🛠 Technical Refactorings (Under the Hood)
- PFT Layout Modernization: Refactored
pft.phpto replace table-based formatting with modern div/flex structures, while standardizing and simplifying client-side JavaScript functions. - Code Modularization: Procedural field rendering logic in
dibujarhojaentrada.phpwas completely replaced by a structured object-oriented architecture utilizing dedicated helper and renderer classes (CalendarHelper, SubfieldHelper, RepeatableRenderer, etc.). - Unified UI Indicators: Embedded CSS loaders were replaced by a centralized, universal loading spinner component (
inc_wait.php), reducing code duplication across background operations. - Print-Media Queries: Implemented specialized CSS print-media queries for the statistics module, ensuring clean report generation by automatically hiding administrative panels during PDF export or printing.
- Asset Integration: Included the
Sortable.jslibrary to support seamless client-side drag-and-drop row reordering within the data entry module. - PHP 8.2 Compatibility: Hardened array index validations and variable initializations across core scripts to ensure full compatibility with PHP 8.2 and prevent deprecation notices.
- Atomic Concurrency Locks: Automated record increment routines were refactored to use exclusive, atomic
flock()execution oncontrol_number.cn, preventing data corruption from race conditions during concurrent cataloging.