diff options
author | Andrew Dolgov <[email protected]> | 2013-04-18 12:27:34 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-04-18 12:27:34 +0400 |
commit | 1ffe3391f902c4baa984982f19e61a0e45de21ff (patch) | |
tree | 4b0b7554c42a6df823db9cf90b925151c796f696 /classes | |
parent | 52d88392dad52ec4d5607fef7479d74dee8b8be4 (diff) |
make pluginhost a singleton
Diffstat (limited to 'classes')
-rw-r--r-- | classes/api.php | 10 | ||||
-rw-r--r-- | classes/feeds.php | 20 | ||||
-rw-r--r-- | classes/handler/public.php | 3 | ||||
-rw-r--r-- | classes/pluginhandler.php | 4 | ||||
-rw-r--r-- | classes/pluginhost.php | 16 | ||||
-rw-r--r-- | classes/pref/feeds.php | 14 | ||||
-rw-r--r-- | classes/pref/filters.php | 3 | ||||
-rw-r--r-- | classes/pref/labels.php | 3 | ||||
-rw-r--r-- | classes/pref/prefs.php | 29 | ||||
-rw-r--r-- | classes/pref/system.php | 3 | ||||
-rw-r--r-- | classes/pref/users.php | 3 |
11 files changed, 43 insertions, 65 deletions
diff --git a/classes/api.php b/classes/api.php index 945496bcf..9e99ed007 100644 --- a/classes/api.php +++ b/classes/api.php @@ -341,8 +341,7 @@ class API extends Handler { "score" => (int)$line["score"] ); - global $pluginhost; - foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE_API) as $p) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_API) as $p) { $article = $p->hook_render_article_api(array("article" => $article)); } @@ -466,9 +465,7 @@ class API extends Handler { } function index($method) { - global $pluginhost; - - $plugin = $pluginhost->get_api_method(strtolower($method)); + $plugin = PluginHost::getInstance()->get_api_method(strtolower($method)); if ($plugin && method_exists($plugin, $method)) { $reply = $plugin->$method(); @@ -697,8 +694,7 @@ class API extends Handler { $headline_row["author"] = $line["author"]; $headline_row["score"] = (int)$line["score"]; - global $pluginhost; - foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE_API) as $p) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_API) as $p) { $headline_row = $p->hook_render_article_api(array("headline" => $headline_row)); } diff --git a/classes/feeds.php b/classes/feeds.php index 969c25db1..bef759d36 100644 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -108,14 +108,12 @@ class Feeds extends Handler_Protected { } - global $pluginhost; - - if ($pluginhost->get_plugin("mail")) { + if (PluginHost::getInstance()->get_plugin("mail")) { $reply .= "<option value=\"emailArticle(false)\">".__('Forward by email'). "</option>"; } - if ($pluginhost->get_plugin("mailto")) { + if (PluginHost::getInstance()->get_plugin("mailto")) { $reply .= "<option value=\"mailtoArticle(false)\">".__('Forward by email'). "</option>"; } @@ -132,7 +130,7 @@ class Feeds extends Handler_Protected { //$reply .= "</h2"; - foreach ($pluginhost->get_hooks($pluginhost::HOOK_HEADLINE_TOOLBAR_BUTTON) as $p) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINE_TOOLBAR_BUTTON) as $p) { echo $p->hook_headline_toolbar_button($feed_id, $is_cat); } @@ -214,9 +212,7 @@ class Feeds extends Handler_Protected { // error_log("search_mode: " . $search_mode); if (!$cat_view && is_numeric($feed) && $feed < PLUGIN_FEED_BASE_INDEX && $feed > LABEL_BASE_INDEX) { - global $pluginhost; - - $handler = $pluginhost->get_feed_handler( + $handler = PluginHost::getInstance()->get_feed_handler( PluginHost::feed_to_pfeed_id($feed)); // function queryFeedHeadlines($feed, $limit, $view_mode, $cat_view, $search, $search_mode, $override_order = false, $offset = 0, $owner_uid = 0, $filter = false, $since_id = 0, $include_children = false, $ignore_vfeed_group = false) { @@ -273,8 +269,6 @@ class Feeds extends Handler_Protected { } } */ - global $pluginhost; - if ($this->dbh->num_rows($result) > 0) { $lnum = $offset; @@ -521,7 +515,7 @@ class Feeds extends Handler_Protected { $line["content"] = sanitize($line["content_preview"], sql_bool_to_bool($line['hide_images']), false, $entry_site_url); - foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE_CDM) as $p) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_CDM) as $p) { $line = $p->hook_render_article_cdm($line); } @@ -679,7 +673,7 @@ class Feeds extends Handler_Protected { $reply['content'] .= "<div class=\"cdmFooter\">"; - foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_LEFT_BUTTON) as $p) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_LEFT_BUTTON) as $p) { $reply['content'] .= $p->hook_article_left_button($line); } @@ -713,7 +707,7 @@ class Feeds extends Handler_Protected { // $reply['content'] .= "$marked_pic"; // $reply['content'] .= "$published_pic"; - foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_BUTTON) as $p) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_BUTTON) as $p) { $reply['content'] .= $p->hook_article_button($line); } diff --git a/classes/handler/public.php b/classes/handler/public.php index ca5952bca..79ed9d0ae 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -377,8 +377,7 @@ class Handler_Public extends Handler { cleanup_tags(14, 50000); - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op); + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op); } diff --git a/classes/pluginhandler.php b/classes/pluginhandler.php index eb859ab32..690305165 100644 --- a/classes/pluginhandler.php +++ b/classes/pluginhandler.php @@ -5,9 +5,7 @@ class PluginHandler extends Handler_Protected { } function catchall($method) { - global $pluginhost; - - $plugin = $pluginhost->get_plugin($_REQUEST["plugin"]); + $plugin = PluginHost::getInstance()->get_plugin($_REQUEST["plugin"]); if ($plugin) { if (method_exists($plugin, $method)) { diff --git a/classes/pluginhost.php b/classes/pluginhost.php index c10f789b5..1c490b1ef 100644 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -10,6 +10,7 @@ class PluginHost { private $api_methods = array(); private $owner_uid; private $debug; + private static $instance; const HOOK_ARTICLE_BUTTON = 1; const HOOK_ARTICLE_FILTER = 2; @@ -35,13 +36,24 @@ class PluginHost { const KIND_SYSTEM = 2; const KIND_USER = 3; - function __construct($dbh) { - $this->dbh = $dbh; + function __construct($ignored = false) { + $this->dbh = Db::get(); $this->storage = $_SESSION["plugin_storage"]; if (!$this->storage) $this->storage = array(); } + private function __clone() { + // + } + + public static function getInstance() { + if (self::$instance == null) + self::$instance = new self(); + + return self::$instance; + } + private function register_plugin($name, $plugin) { //array_push($this->plugins, $plugin); $this->plugins[$name] = $plugin; diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 054ea4e8c..2f5a0e499 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -124,9 +124,7 @@ class Pref_Feeds extends Handler_Protected { /* Plugin feeds for -1 */ - global $pluginhost; - - $feeds = $pluginhost->get_feeds(-1); + $feeds = PluginHost::getInstance()->get_feeds(-1); if ($feeds) { foreach ($feeds as $feed) { @@ -1456,8 +1454,7 @@ class Pref_Feeds extends Handler_Protected { print "<button dojoType=\"dijit.form.Button\" onclick=\"return displayDlg('".__("Public OPML URL")."','pubOPMLUrl')\">". __('Display published OPML URL')."</button> "; - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION, "hook_prefs_tab_section", "prefFeedsOPML"); print "</div>"; # pane @@ -1503,15 +1500,12 @@ class Pref_Feeds extends Handler_Protected { print "<button dojoType=\"dijit.form.Button\" onclick=\"return clearArticleAccessKeys()\">". __('Unshare all articles')."</button> "; - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION, "hook_prefs_tab_section", "prefFeedsPublishedGenerated"); print "</div>"; #pane - global $pluginhost; - - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "hook_prefs_tab", "prefFeeds"); print "</div>"; #container diff --git a/classes/pref/filters.php b/classes/pref/filters.php index ec7fd0d51..4dbee5906 100644 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -706,8 +706,7 @@ class Pref_Filters extends Handler_Protected { print "</div>"; #pane - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "hook_prefs_tab", "prefFilters"); print "</div>"; #container diff --git a/classes/pref/labels.php b/classes/pref/labels.php index a928dd017..2ad152c2d 100644 --- a/classes/pref/labels.php +++ b/classes/pref/labels.php @@ -319,8 +319,7 @@ class Pref_Labels extends Handler_Protected { print "</div>"; #pane - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "hook_prefs_tab", "prefLabels"); print "</div>"; #container diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index d8b8ecc75..b2e7edf03 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -79,8 +79,7 @@ class Pref_Prefs extends Handler_Protected { return; } - global $pluginhost; - $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]); + $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]); if (method_exists($authenticator, "change_password")) { print $authenticator->change_password($_SESSION["uid"], $old_pw, $new_pw); @@ -255,10 +254,7 @@ class Pref_Prefs extends Handler_Protected { print "</form>"; if ($_SESSION["auth_module"]) { - global $pluginhost; - - $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]); - + $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]); } else { $authenticator = false; } @@ -436,8 +432,7 @@ class Pref_Prefs extends Handler_Protected { } } - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION, "hook_prefs_tab_section", "prefPrefsAuth"); print "</div>"; #pane @@ -675,8 +670,7 @@ class Pref_Prefs extends Handler_Protected { print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"boolean_prefs\" value=\"$listed_boolean_prefs\">"; - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION, "hook_prefs_tab_section", "prefPrefsPrefsInside"); print '</div>'; # inside pane @@ -712,8 +706,7 @@ class Pref_Prefs extends Handler_Protected { <label for='prefs_show_advanced'>" . __("Show additional preferences") . "</label>"; */ - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION, "hook_prefs_tab_section", "prefPrefsPrefsOutside"); print "</form>"; @@ -877,8 +870,7 @@ class Pref_Prefs extends Handler_Protected { print "</div>"; #pane - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "hook_prefs_tab", "prefPrefs"); print "</div>"; #container @@ -918,8 +910,7 @@ class Pref_Prefs extends Handler_Protected { $password = $_REQUEST["password"]; $otp = $_REQUEST["otp"]; - global $pluginhost; - $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]); + $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]); if ($authenticator->check_password($_SESSION["uid"], $password)) { @@ -951,8 +942,7 @@ class Pref_Prefs extends Handler_Protected { function otpdisable() { $password = $this->dbh->escape_string($_REQUEST["password"]); - global $pluginhost; - $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]); + $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]); if ($authenticator->check_password($_SESSION["uid"], $password)) { @@ -978,8 +968,7 @@ class Pref_Prefs extends Handler_Protected { function clearplugindata() { $name = $this->dbh->escape_string($_REQUEST["name"]); - global $pluginhost; - $pluginhost->clear_data($pluginhost->get_plugin($name)); + PluginHost::getInstance()->clear_data(PluginHost::getInstance()->get_plugin($name)); } function customizeCSS() { diff --git a/classes/pref/system.php b/classes/pref/system.php index 3d82b8fff..725c337dc 100644 --- a/classes/pref/system.php +++ b/classes/pref/system.php @@ -66,8 +66,7 @@ class Pref_System extends Handler_Protected { print "</div>"; - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "hook_prefs_tab", "prefSystem"); print "</div>"; #container diff --git a/classes/pref/users.php b/classes/pref/users.php index d483c771b..4b7d2d69a 100644 --- a/classes/pref/users.php +++ b/classes/pref/users.php @@ -453,8 +453,7 @@ class Pref_Users extends Handler_Protected { print "</div>"; #pane - global $pluginhost; - $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB, + PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "hook_prefs_tab", "prefUsers"); print "</div>"; #container |