WP Manifestindependent plugin directory
manifest / content / fossnovena-register

Fossnovena Perpetual Register Manager

A comprehensive WordPress plugin for managing and displaying the Perpetual Register with CSV import functionality.

by Anil Ghatan · github.com/kajianil/fossnovena-register

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/kajianil/fossnovena-register/archive/refs/heads/main.zip

A comprehensive WordPress plugin for managing and displaying the Perpetual Register with CSV import functionality.

Features

  • CSV Import: Upload CSV files with drag-and-drop support
  • Three Operation Modes:
    • Replace All: Delete existing records and import new data
    • Append New: Add only new records (skip existing IDs)
    • Update & Append: Update existing records and add new ones
  • Data Validation: Automatic CSV validation and error checking
  • Preview & Analysis: Review data before importing
  • Backup System: Automatic backups before each import
  • Restore Functionality: Restore from previous backups
  • Frontend Display: Clean, responsive display with shortcode
  • Search Functionality: Search by name or date
  • Alphabetical Sections: Optional A-Z section headers
  • Upload History: Track all import operations
  • Responsive Design: Works on all devices

Installation

  1. Upload the fossnovena-register-plugin folder to /wp-content/plugins/
  2. Activate the plugin through the 'Plugins' menu in WordPress
  3. Navigate to 'Perpetual Register' in the admin menu

CSV Format

Your CSV file should have the following structure:

id,entry,lifeStats,sort
34500,MOREIRA Wilfredo,(d.9/08/2022),MOREIRA Wilfredo
2938,MORLEY Luke Michael,(8/09/1917 - 8/02/1975),MORLEY Luke Michael
25525,MORRIS Jane,,MORRIS Jane

Column Descriptions:

  • id: Unique identifier for each record (required)
  • entry: Full name as it should appear (required)
  • lifeStats: Birth/death dates or other life information (optional)
  • sort: Name used for alphabetical sorting (required, defaults to entry if empty)

Usage

Admin Interface

  1. Upload CSV:

    • Navigate to 'Perpetual Register' → 'Upload CSV'
    • Click or drag-and-drop your CSV file
    • Select operation type
    • Click 'Analyze & Preview'
    • Review the analysis and preview
    • Click 'Confirm & Import'
  2. View History:

    • Navigate to 'Upload History'
    • View all past imports
    • Restore from any previous backup
  3. Settings:

    • Configure display options
    • Set items per page
    • Enable/disable alphabetical sections

Frontend Display

Add the following shortcode to any page or post:

[perpetual_register]

Shortcode Parameters:

  • search="true" - Enable search functionality
  • sections="false" - Hide alphabetical section headers
  • per_page="100" - Custom number of items per page

Examples:

[perpetual_register search="true"]
[perpetual_register sections="false" per_page="50"]
[perpetual_register search="true" sections="true"]

Operation Types Explained

Replace All

  • Deletes ALL existing records in the database
  • Imports ALL records from the CSV
  • Use when: You have a complete, updated dataset

Append New

  • Keeps all existing records
  • Adds only records with NEW IDs (not in database)
  • Skips records with IDs that already exist
  • Use when: Adding new entries to existing register

Update & Append

  • Updates records with existing IDs
  • Adds records with new IDs
  • Best of both worlds
  • Use when: You have both updates and new entries

Technical Details

Database Tables

fossnovena_register:

  • Stores all register entries
  • Indexed on sort_name for fast alphabetical sorting
  • Unique constraint on external_id

fossnovena_register_history:

  • Stores upload history and backups
  • Contains full JSON backup of data before each operation

Security Features

  • Nonce verification on all AJAX requests
  • Capability checks (only administrators can upload)
  • File type validation (CSV only)
  • Data sanitization on all inputs
  • SQL injection prevention with prepared statements

Performance

  • Database indexes for fast queries
  • Optional pagination for large datasets
  • Efficient alphabetical grouping
  • Minimal AJAX requests

Requirements

  • WordPress 5.8 or higher
  • PHP 7.4 or higher
  • MySQL 5.7 or higher
  • Minimum 64MB PHP memory limit

Changelog

Version 1.0.0

  • Initial release
  • CSV import with three operation modes
  • Frontend display with shortcode
  • Search functionality
  • Backup and restore system
  • Upload history tracking
  • Responsive design