diff options
author | Andrew Dolgov <[email protected]> | 2021-12-14 21:53:45 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2021-12-14 21:53:45 +0300 |
commit | 720b31879634f21ea7db85f49d6f07ec7d7344bc (patch) | |
tree | a8657d8762cd2d5d8ea3118731cc9826e9678d05 /classes | |
parent | 8a645892a60bc3181f598d2192f01cc21f35b719 (diff) |
* fox.form.Select: add several properties allowing it to better
imitate other controls like DropDownButton, etc.
* rework several main toolbar items to use fox.form.Select instead of
other controls
* replace HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM with
HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 because of markup change (option
instead of menuitem)
* PluginHost: add some explicit typecasts to make intellephense shut up
Diffstat (limited to 'classes')
-rwxr-xr-x | classes/feeds.php | 2 | ||||
-rw-r--r-- | classes/plugin.php | 13 | ||||
-rwxr-xr-x | classes/pluginhost.php | 28 |
3 files changed, 31 insertions, 12 deletions
diff --git a/classes/feeds.php b/classes/feeds.php index 62fd6a5b3..503108e41 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -133,7 +133,7 @@ class Feeds extends Handler_Protected { $reply['vfeed_group_enabled'] = $vfeed_group_enabled; $plugin_menu_items = ""; - PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM, + PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2, function ($result) use (&$plugin_menu_items) { $plugin_menu_items .= $result; }, diff --git a/classes/plugin.php b/classes/plugin.php index be8376925..3bced3b04 100644 --- a/classes/plugin.php +++ b/classes/plugin.php @@ -647,6 +647,7 @@ abstract class Plugin { } /** Allows adding custom elements to headlines Select... dropdown + * @deprecated removed, see Plugin::hook_headline_toolbar_select_menu_item2() * @param int $feed_id * @param int $is_cat * @return string @@ -658,6 +659,18 @@ abstract class Plugin { return ""; } + /** Allows adding custom elements to headlines Select... select dropdown (<option> format) + * @param int $feed_id + * @param int $is_cat + * @return string + * @see PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 + */ + function hook_headline_toolbar_select_menu_item2($feed_id, $is_cat) { + user_error("Dummy method invoked.", E_USER_ERROR); + + return ""; + } + /** Invoked when user tries to subscribe to feed, may override information (i.e. feed URL) used afterwards * @param string $url * @param string $auth_login diff --git a/classes/pluginhost.php b/classes/pluginhost.php index a3a389def..952d4df77 100755 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -189,9 +189,14 @@ class PluginHost { /** @see Plugin::hook_headlines_custom_sort_override() */ const HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE = "hook_headlines_custom_sort_override"; - /** @see Plugin::hook_headline_toolbar_select_menu_item() */ + /** @see Plugin::hook_headline_toolbar_select_menu_item() + * @deprecated removed, see PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 + */ const HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM = "hook_headline_toolbar_select_menu_item"; + /** @see Plugin::hook_headline_toolbar_select_menu_item() */ + const HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 = "hook_headline_toolbar_select_menu_item2"; + /** @see Plugin::hook_pre_subscribe() */ const HOOK_PRE_SUBSCRIBE = "hook_pre_subscribe"; @@ -270,9 +275,10 @@ class PluginHost { * @param mixed $args */ function run_hooks(string $hook, ...$args): void { - $method = strtolower($hook); - foreach ($this->get_hooks($hook) as $plugin) { + $method = strtolower((string)$hook); + + foreach ($this->get_hooks((string)$hook) as $plugin) { //Debug::log("invoking: " . get_class($plugin) . "->$hook()", Debug::$LOG_VERBOSE); try { @@ -291,9 +297,9 @@ class PluginHost { * @param mixed $check */ function run_hooks_until(string $hook, $check, ...$args): bool { - $method = strtolower($hook); + $method = strtolower((string)$hook); - foreach ($this->get_hooks($hook) as $plugin) { + foreach ($this->get_hooks((string)$hook) as $plugin) { try { $result = $plugin->$method(...$args); @@ -315,9 +321,9 @@ class PluginHost { * @param mixed $args */ function run_hooks_callback(string $hook, Closure $callback, ...$args): void { - $method = strtolower($hook); + $method = strtolower((string)$hook); - foreach ($this->get_hooks($hook) as $plugin) { + foreach ($this->get_hooks((string)$hook) as $plugin) { //Debug::log("invoking: " . get_class($plugin) . "->$hook()", Debug::$LOG_VERBOSE); try { @@ -336,9 +342,9 @@ class PluginHost { * @param mixed $args */ function chain_hooks_callback(string $hook, Closure $callback, &...$args): void { - $method = strtolower($hook); + $method = strtolower((string)$hook); - foreach ($this->get_hooks($hook) as $plugin) { + foreach ($this->get_hooks((string)$hook) as $plugin) { //Debug::log("invoking: " . get_class($plugin) . "->$hook()", Debug::$LOG_VERBOSE); try { @@ -358,7 +364,7 @@ class PluginHost { function add_hook(string $type, Plugin $sender, int $priority = 50): void { $priority = (int) $priority; - if (!method_exists($sender, strtolower($type))) { + if (!method_exists($sender, strtolower((string)$type))) { user_error( sprintf("Plugin %s tried to register a hook without implementation: %s", get_class($sender), $type), @@ -422,7 +428,7 @@ class PluginHost { asort($plugins); - $this->load(join(",", $plugins), $kind, $owner_uid, $skip_init); + $this->load(join(",", $plugins), (int)$kind, $owner_uid, $skip_init); } /** |