Skip to content

Navigation Menu Synchronizer plugin for OJS 3.3 - Copy navigation menus between journals in multi-journal installations

License

Notifications You must be signed in to change notification settings

ojs-services/OJS-NavMenuSync-Plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Navigation Menu Synchronizer Plugin for OJS 3.3

Copy navigation menus between journals in a multi-journal Open Journal Systems (OJS) installation. Replicate complete menu structures — including items, hierarchy, assignments, and locale settings — from one journal to another with a single click.

Navigation Menu Synchronizer - Preview

Features

  • Full Menu Replication — Copies menus, menu items, parent-child hierarchy, display order, and all locale-specific settings (title, content, remote URL) across journals.
  • Built-in Type Support — Handles all OJS built-in menu item types (About, Contact, Editorial Team, Submissions, Archives, Privacy, etc.) alongside custom items.
  • Multi-locale Aware — Preserves translations in all configured languages (e.g., English, Turkish, French) during synchronization.
  • Preview Before Sync — Inspect the source journal's full menu structure with hierarchical preview before making any changes.
  • Copy Mode Selection — Choose between copying only active (assigned) menu items or all items including unassigned ones.
  • Clear & Replace — Option to clear all existing menus in the target journal before synchronization, or selectively replace menus by area.
  • Site Admin Restricted — Only site administrators can access synchronization features, preventing unauthorized cross-journal data access.

Requirements

  • OJS 3.3.x
  • PHP 7.3 or higher
  • Site administrator access

Installation

  1. Download or clone this repository into your OJS plugins directory:

    plugins/generic/navMenuSync/
    
  2. Navigate to Settings > Website > Plugins > Generic Plugins in any journal.

  3. Enable Navigation Menu Synchronizer.

Usage

  1. Go to the target journal (the journal you want to copy menus into).
  2. Navigate to Settings > Website > Plugins > Generic Plugins.
  3. Find Navigation Menu Synchronizer and click Synchronize Menus.
  4. Select the source journal from the dropdown.
  5. Choose your options:
    • Clear existing menus — removes all current menus in the target journal before copying.
    • Copy mode — select whether to copy only active menu items or include unassigned items.
  6. Click Preview Source Menus to review the menu structure.
  7. Click Synchronize to perform the copy.
  8. Refresh the page or go to Settings > Website > Navigation to verify.

How It Works

The plugin copies data across five OJS navigation menu tables:

Source Table What's Copied
navigation_menus Menu containers with title and area
navigation_menu_items Individual menu items with type and path
navigation_menu_item_settings Locale data: title, content, remoteUrl, titleLocaleKey
navigation_menu_item_assignments Item-to-menu assignments with parent-child hierarchy

Parent-child relationships are resolved correctly regardless of whether the source database stores assignment IDs or item IDs as parent references — a known inconsistency in OJS data.

Localization

The plugin includes translations for:

  • English (en_US)
  • Turkish (tr_TR)

Additional translations can be added by creating a new locale directory under locale/.

License

This plugin is licensed under the GNU General Public License v3.0. See LICENSE for details.

Credits

Developed by OJS Services.

About

Navigation Menu Synchronizer plugin for OJS 3.3 - Copy navigation menus between journals in multi-journal installations

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •