From b87744534a5250e9f839997f8eceb5b86b8c0e5c Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 11 Aug 2015 23:28:41 +0300 Subject: add plugin-based filter actions (see example plugin in attic) bump schema --- classes/pref/filters.php | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'classes/pref/filters.php') diff --git a/classes/pref/filters.php b/classes/pref/filters.php index a84340877..a2a2d0928 100644 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -519,6 +519,21 @@ class Pref_Filters extends Handler_Protected { $action["action_id"] == 7) $title .= ": " . $action["action_param"]; + if ($action["action_id"] == 9) { + list ($pfclass, $pfaction) = explode(":", $action["action_param"]); + + $filter_actions = PluginHost::getInstance()->get_filter_actions(); + + foreach ($filter_actions as $fclass => $factions) { + foreach ($factions as $faction) { + if ($pfaction == $faction["action"] && $pfclass == $fclass) { + $title .= ": " . $fclass . ": " . $faction["description"]; + break; + } + } + } + } + return $title; } @@ -989,16 +1004,18 @@ class Pref_Filters extends Handler_Protected { print ""; - $param_box_hidden = ($action_id == 7 || $action_id == 4 || $action_id == 6) ? + $param_box_hidden = ($action_id == 7 || $action_id == 4 || $action_id == 6 || $action_id == 9) ? "" : "display : none"; $param_hidden = ($action_id == 4 || $action_id == 6) ? "" : "display : none"; $label_param_hidden = ($action_id == 7) ? "" : "display : none"; + $plugin_param_hidden = ($action_id == 9) ? "" : "display : none"; print ""; - print " " . __("with parameters:") . " "; + print " "; + //print " " . __("with parameters:") . " "; print ""; @@ -1007,6 +1024,22 @@ class Pref_Filters extends Handler_Protected { "id=\"filterDlg_actionParamLabel\" style=\"$label_param_hidden\" dojoType=\"dijit.form.Select\""); + $filter_actions = PluginHost::getInstance()->get_filter_actions(); + $filter_action_hash = array(); + + foreach ($filter_actions as $fclass => $factions) { + foreach ($factions as $faction) { + + $filter_action_hash[$fclass . ":" . $faction["action"]] = + $fclass . ": " . $faction["description"]; + } + + } + + print_select_hash("filterDlg_actionParamPlugin", $action_param, $filter_action_hash, + "style=\"$plugin_param_hidden\" dojoType=\"dijit.form.Select\"", + "action_param_plugin"); + print ""; print " "; // tiny layout hack -- cgit v1.2.3