mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-02 06:14:51 -04:00
This implements a clean plugin architecture based on PR #4255 discussion: Core Components: - PluginInterface: Standard contract all plugins must implement - BasePlugin: Abstract class with common functionality - PluginManager: Discovers and loads plugins from app/Plugins/ - Plugin_config: Model for plugin settings storage Architecture: - Each plugin registers its own event listeners via registerEvents() - No hardcoded plugin dependencies in core Events.php - Generic event triggers (item_sale, item_change, etc.) remain in core code - Plugins can be enabled/disabled via database settings - Clean separation: plugin orchestrators vs MVC components Example Implementations: - ExamplePlugin: Simple plugin demonstrating event logging - MailchimpPlugin: Integration with Mailchimp for customer sync Admin UI: - Plugin management controller at Controllers/Plugins/Manage.php - Plugin management view at Views/plugins/manage.php Database: - ospos_plugin_config table for plugin settings (key-value store) - Migration creates table with timestamps Documentation: - Comprehensive README with architecture patterns - Simple vs complex plugin examples - MVC directory structure guidance
36 lines
2.2 KiB
PHP
36 lines
2.2 KiB
PHP
<?php
|
|
return [
|
|
// Mailchimp Plugin
|
|
"mailchimp" => "MailChimp",
|
|
"mailchimp_api_key" => "MailChimp API Key",
|
|
"mailchimp_configuration" => "MailChimp Configuration",
|
|
"mailchimp_key_successfully" => "API Key is valid.",
|
|
"mailchimp_key_unsuccessfully" => "API Key is invalid.",
|
|
"mailchimp_lists" => "MailChimp List(s)",
|
|
"mailchimp_tooltip" => "Click the icon for an API Key.",
|
|
|
|
// Plugin Management
|
|
"plugins" => "Plugins",
|
|
"plugin_management" => "Plugin Management",
|
|
"plugin_name" => "Plugin Name",
|
|
"plugin_description" => "Description",
|
|
"plugin_version" => "Version",
|
|
"plugin_status" => "Status",
|
|
"plugin_enabled" => "Plugin enabled successfully",
|
|
"plugin_enable_failed" => "Failed to enable plugin",
|
|
"plugin_disabled" => "Plugin disabled successfully",
|
|
"plugin_disable_failed" => "Failed to disable plugin",
|
|
"plugin_uninstalled" => "Plugin uninstalled successfully",
|
|
"plugin_uninstall_failed" => "Failed to uninstall plugin",
|
|
"plugin_not_found" => "Plugin not found",
|
|
"plugin_no_config" => "This plugin has no configuration options",
|
|
"settings_saved" => "Plugin settings saved successfully",
|
|
"settings_save_failed" => "Failed to save plugin settings",
|
|
"enable" => "Enable",
|
|
"disable" => "Disable",
|
|
"configure" => "Configure",
|
|
"uninstall" => "Uninstall",
|
|
"no_plugins_found" => "No plugins found",
|
|
"active" => "Active",
|
|
"inactive" => "Inactive",
|
|
]; |