- Compatible XF 2.x versions
- 2.3
Data Tables lets administrators create stand-alone, fully customizable data tables within XenForo - no code required. Define your own columns, set up dropdown lookups, link records across tables, and manage structured data right from the AdminCP, with clean public-facing display pages wrapped in your forum's theme.
Perfect for product catalogs, game databases, team rosters, pricing tables, inventory lists, or any structured data that doesn't fit neatly into forum threads.
Perfect for product catalogs, game databases, team rosters, pricing tables, inventory lists, or any structured data that doesn't fit neatly into forum threads.
- Dynamic Table Definitions - Create unlimited tables, each with its own title, URL slug, description, and display order. Toggle tables active/inactive without deleting data.
- Listed/Unlisted Tables - Hide definitions from the public table index while keeping them accessible via direct URL. "Unlisted" badge in AdminCP.
- 10 Field Types - Build columns using: Text, Number, URL, Date, Lookup (dropdown), Table Lookup (cross-table reference), Text Area, Yes/No (boolean), Color (hex picker with inline swatch), and Rich Text (BBCode with XF editor). Each field supports sortable and filterable flags.
- Safe Field Type Conversion - Changing a field's type shows a confirmation page with impact preview (records affected, auto-convertible count) and performs smart data conversion instead of wiping values. Supports lookup-to-text (resolves option labels), table_lookup-to-text (resolves linked record labels), boolean-to-number, and all other combinations.
- Color Swatch Field - HTML5 color picker input with hex validation. Table views show a compact inline swatch; record detail shows a larger preview.
- Rich Text (BBCode) Field - Full XF BBCode editor for rich content. Rendered as formatted HTML on record detail and stripped to plain text on type conversion.
- Field Visibility - Per-field "Show in table" toggle to hide columns from the table view while still showing them on record detail pages.
- Lookup Columns (Relational Dropdowns) - Define dropdown options for any field. Options are stored relationally (not as flat strings), enabling clean data entry and consistent display.
- Cross-Table Relational Lookups - Link records between tables with the Table Lookup field type. Select a linked table and a display field, and users pick from records in that table via dropdown. Values render as clickable links to the referenced record.
- Inline "Create New" Overlay - A "+" button next to every Table Lookup dropdown opens a modal to create a new record in the linked table. Saves via AJAX and auto-selects in the parent dropdown - no page reload, no navigating away. Works in both AdminCP and public pages.
- Nested Overlay Creation - The "+" button works inside overlays too (one level deep), so you can create a referenced record without leaving the parent creation form.
- Friendly URLs with .ID Suffix - Records accessible at /data-tables/{table-slug}/{record-slug}.{id}/ using XF's native .ID suffix pattern (like thread URLs). Auto-generated unique slugs. Legacy URLs 301-redirect to the new format.
- Custom Route Prefix - Change the public URL from /data-tables/ to any custom prefix (e.g., /reference/) via an admin option. Uses XF's native route filter system - all template links update automatically.
- Breadcrumbs - Full navigation trail on all public pages: Home > Data Tables > Table Name > Record Title.
- Clickable Table Rows - Click anywhere on a table row to navigate to the record detail page. Ctrl/Cmd+click opens in a new tab.
- Record Detail Pages - Each record has its own detail page showing all fields and a "Referenced by" section listing records from other tables that point to it.
- Sitemap Integration - Records from active, listed definitions are automatically included in XF's sitemap for search engine indexing.
- CSV Import - Upload CSV files from the AdminCP record list page. Supports comma, tab, semicolon, and pipe delimiters. Automatic column mapping by header name, 5-row preview, lookup resolution with optional auto-creation of missing options.
- CSV Export - Download table data as CSV with formatted cell values (lookup labels, boolean Yes/No, table lookup display labels).
- Move Field Between Definitions - Relocate a field and its data from one table to another via AdminCP. Includes field key collision check and automatic reference cleanup.
- Inline Display Order Editing - Edit field display order values directly from the field list page without opening each field individually.
- Inline Required & Show in Table Toggles - "Required" and "Show in table" are editable checkboxes on the field list page, saved alongside display order in one click. No need to open each field's edit page.
- FontAwesome Icon Picker - Choose a custom icon for each table definition from 1,500+ FontAwesome icons (e.g., fa-car, fa-wrench, fa-database). Icons appear on the table list, table view header, and record detail header.
- Enhanced Table List - Public table directory uses rich card rows with definition icon, description, field count, and record count badge with smooth hover transitions.
- Unified Page Headers - Table view and record detail pages share a consistent icon + title block header pattern for visual cohesion across all pages.
- Bulk Select & Delete - Select-all checkbox and batch delete button on definition list, field list, and record list pages with dynamic count display.
- Admin Record Management - Full CRUD for records within the AdminCP. Dynamic forms automatically adapt to your field definitions - text fields become text inputs, lookups become dropdowns, numbers get spinners, booleans get checkboxes, colors get pickers, rich text gets the BBCode editor.
- Admin Definition List UX - Clicking a definition title goes directly to its records page. Edit and Delete buttons in the Actions column.
- Public Table Display - Clean, responsive public pages at /data-tables/ showing all listed tables, with individual table views at /data-tables/{slug}/. Full theme integration.
- Column Sorting - Mark fields as "sortable" in the admin, and users can click column headers on the public table view to sort ascending/descending.
- Public Record Submission - Optionally allow members to submit new records from the public side (permission-controlled).
- Multi-Select Table Lookups - Table Lookup fields can be marked multi-select for many-to-many relationships. Rendered as a multi-select dropdown (or autocomplete tags for large lists). Cell display shows comma-separated linked items with clickable links.
- Public Edit/Delete - Record owners can edit and delete records from public pages. Controlled by dedicated permissions with sensible defaults (edit: Allow, delete: Deny).
- Required Field Validation - Mark fields as required. Enforced across all save actions (admin and public) with clear error messages.
- Autocomplete Search - Table Lookup fields with more than 50 options automatically switch from dropdown to AJAX autocomplete with debounced search and removable tag pills for multi-select.
- Inline Edit Linked Record - Pencil icon next to single-select Table Lookup fields opens an overlay to edit the referenced record. Option label refreshes on save without page reload.
- Title Field Resolution - Lookup and Table Lookup fields used as the title field now resolve to their display labels (option text or linked record name) instead of showing raw IDs.
- Permission-Controlled Access- Four permissions out of the box:
- View data tables (default: Allow for all)
- Add records (default: Deny)
- Edit records (default: Allow)
- Delete records (default: Deny)
- Pagination - Both admin and public views paginate at 50 records per page with deterministic sort order (tiebreaker on record ID for bulk-imported data).
- AJAX Field Configuration - When editing fields, selecting "Table Lookup" dynamically shows linked table and display field dropdowns via AJAX - no page reload needed.
- Clickable URL Fields - URL-type field values render as clickable links in both admin and public table views.
- Clean Uninstall - All 5 database tables are dropped on uninstall. No leftover data.
- Create a Definition - Go to AdminCP > Tools > Data Tables > Add Definition. Give it a title (e.g., "Product Catalog") and a URL slug (e.g., "products").
- Add Fields- Click "Fields" to define your columns. For example:
- Name (Text, Required, Sortable)
- Category (Lookup - with options like "Electronics", "Clothing", "Home")
- Price (Number, Sortable)
- In Stock (Yes/No)
- Website (URL)
- Brand Color (Color - hex picker with swatch preview)
- Description (Rich Text - full BBCode editor)
- Manufacturer (Table Lookup - linked to a "Manufacturers" table, displaying the "Name" field)
- Add Records - Click "Records" to start entering data. The form automatically generates the right input type for each field. Need a new linked record? Click the "+" next to any Table Lookup dropdown and create one inline.
- Import Data - Have existing data? Click "Import CSV" on the record list page, upload your file, map columns, preview, and import.
- View Publicly - Visit /data-tables/products/ to see your table with sortable columns, resolved lookup values, clickable cross-links, and clean formatting. Click any row to see its detail page at a friendly URL like /data-tables/products/widget-pro.42/.
Installation
- Download and extract the ZIP file
- Upload the Qubn/DataTables/ folder to src/addons/
- Go to AdminCP > Add-ons > Install from archive (or Install/upgrade)
- Navigate to AdminCP > Tools > Data Tables to start creating tables