From 8233610d92fb7241658c6888f378c5ddd587e324 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 11 May 2020 16:26:43 +0800 Subject: [PATCH] DEV: Add `add_controller_callback` server side plugin api. --- lib/plugin/instance.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb index 5f218ab699b..d8bc0b49a4e 100644 --- a/lib/plugin/instance.rb +++ b/lib/plugin/instance.rb @@ -235,6 +235,16 @@ class Plugin::Instance end end + def add_controller_callback(klass_name, callback, &block) + reloadable_patch do |plugin| + klass = klass_name.to_s.classify.constantize rescue klass_name.to_s.constantize + + klass.public_send(callback) do |controller, action| + block.call(controller, action) if plugin.enabled? + end + end + end + # Add a post_custom_fields_whitelister block to the TopicView, respecting if the plugin is enabled def topic_view_post_custom_fields_whitelister(&block) reloadable_patch do |plugin|