User Docs Developer Docs | |

Managing Plugins

Install, activate, deactivate, and update Pubvana plugins.

TL;DR

Place a plugin folder in plugins/. Go to Admin → Plugins → Discover to detect it. Click Activate to enable. Click Deactivate to disable. Plugin updates appear in Admin → Updates → Addons.

Details

Plugin Structure

Each plugin lives in its own folder under the plugins/ directory at the project root. The folder contains at minimum:

  • Plugin.php — the main plugin class extending PubvanaPluginBase.
  • plugin_info.json — manifest with name, version, description, author, and compatibility info.

Plugins may also include controllers, models, views, migrations, language files, and assets.

Discovery

Pubvana does not load plugins it does not know about. You must run Discover after placing a new plugin folder:

  1. Go to Admin → Plugins.
  2. Click Discover.

Pubvana scans the plugins/ directory, reads each plugin_info.json, and registers new or updated plugins in the database as inactive. No code runs yet.

During discovery, Pubvana also checks with pubvana.net to determine whether the plugin is approved (vetted by the Pubvana team). Unapproved plugins display a warning badge. You can still activate them by clicking Activate Anyway in the confirmation dialog.

Activation

Clicking Activate on a plugin:

  1. Runs the plugin's database migrations (up direction).
  2. Calls Installer::up() if the plugin defines an Installer class.
  3. Marks the plugin as active in the database.
  4. Loads the plugin's routes and admin menu items on all subsequent requests.
  5. Logs a plugin.activated activity entry.

New in 2.3.6 — If the activated plugin is the first to declare "core" email capability, a prompt appears asking whether it should handle core system email delivery (contact forms, password resets, etc.). You can change this selection at any time in Admin → Settings → Email.

Deactivation

Clicking Deactivate:

  1. Marks the plugin as inactive.
  2. Routes, admin menu items, and CSRF exemptions are no longer loaded.
  3. Logs a plugin.deactivated activity entry.

Deactivation does not run down migrations or delete any plugin data. Data is preserved so you can reactivate the plugin later without losing anything.

Uninstalling

There is no one-click uninstall. To fully remove a plugin:

  1. Deactivate it from Admin → Plugins.
  2. Manually run the plugin's down migrations if needed (php spark migrate:rollback).
  3. Delete the plugin folder from plugins/.
  4. Run Discover again — Pubvana will remove the database record for the missing plugin.

Plugin Updates

Installed plugins that have an update_url in their plugin_info.json appear in Admin → Updates → Addons when a newer version is available. Apply updates the same way as CMS updates. Toggle per-plugin auto-update from the Addons tab.

Plugin Licensing

Free plugins activate without a license key. Paid third-party plugins require a license key entered on the admin Plugins page.

Disabled Plugins

Plugins with missing or invalid plugin_info.json files are registered but disabled. Disabled plugins cannot be activated and their cron commands, migrations, and routes will not execute.