]> git.wh0rd.org - tt-rss.git/commitdiff
make pluginhost a singleton
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Thu, 18 Apr 2013 08:27:34 +0000 (12:27 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Thu, 18 Apr 2013 08:27:34 +0000 (12:27 +0400)
19 files changed:
backend.php
classes/api.php
classes/feeds.php
classes/handler/public.php
classes/pluginhandler.php
classes/pluginhost.php
classes/pref/feeds.php
classes/pref/filters.php
classes/pref/labels.php
classes/pref/prefs.php
classes/pref/system.php
classes/pref/users.php
include/functions.php
include/rssfuncs.php
index.php
plugins/instances/init.php
prefs.php
public.php
update.php

index d3d8622d97025c6440cfbf110895d2e300988007..c69d6d98baa277778f08e1f7472c491e2b151636 100644 (file)
 
        $op = str_replace("-", "_", $op);
 
-       global $pluginhost;
-       $override = $pluginhost->lookup_handler($op, $method);
+       $override = PluginHost::getInstance()->lookup_handler($op, $method);
 
        if (class_exists($op) || $override) {
 
index 945496bcfff0c9206430d9e8c2eb2556dfcb22a1..9e99ed007f94147181bc1f63f1f80be3e76ddd4b 100644 (file)
@@ -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));
                                }
 
index 969c25db10cab40fd9d51cfb442b0be79fc9b013..bef759d369bd0c853ff060ee7dab4257f49cac0c 100644 (file)
@@ -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);
                                        }
 
index ca5952bca121b40338a4527fd7fb645ede6a1428..79ed9d0aed74331cfd583b6d8a57cc9ecbfa7068 100644 (file)
@@ -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);
 
        }
 
index eb859ab323ce26d920b8af025070ce1be5947704..69030516523a2a88914c64a2d74aa2b68b006524 100644 (file)
@@ -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)) {
index c10f789b5fbe052b478338ba0356d6f9916acc2b..1c490b1ef926eb5e483eff20c152cacde1df199c 100644 (file)
@@ -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;
index 054ea4e8c09dfe51a0279d351018784ba0349da3..2f5a0e499d7a51bb631995009f9ebe22515ecedc 100644 (file)
@@ -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
index ec7fd0d5101251e93ca6372aa6798c3469530c78..4dbee5906fa9a2a049dead55071de5588cd560e6 100644 (file)
@@ -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
index a928dd0171dc940130e74ec7e4796d5f034e280a..2ad152c2d40d4d3fdb7889b4c567a47c7c42ca10 100644 (file)
@@ -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
index d8b8ecc756841c6704cbb5fc933e6042a3c66d0c..b2e7edf03d8797ec403a653ed20624ed7a0ff922 100644 (file)
@@ -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() {
index 3d82b8fff66a2154612bcbe2c85bc02057369896..725c337dc99ec0504dd2ab42a3b0e93e2347f146 100644 (file)
@@ -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
index d483c771b4532b87803baa6b303c03f815264044..4b7d2d69a77afd61e990b52949883e806a1452cb 100644 (file)
@@ -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
index 3c8e9d62c25436e61e864d1d9bf7726f43c19d24..9f890eba747f3dc1463646b1fd38229b8e5a2772 100644 (file)
@@ -9,7 +9,6 @@
        $fetch_last_error_code = false;
        $fetch_last_content_type = false;
        $fetch_curl_used = false;
-       $pluginhost = false;
 
        mb_internal_encoding("UTF-8");
        date_default_timezone_set('UTC');
                if (!SINGLE_USER_MODE) {
                        $user_id = false;
 
-                       global $pluginhost;
-                       foreach ($pluginhost->get_hooks($pluginhost::HOOK_AUTH_USER) as $plugin) {
+                       foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_AUTH_USER) as $plugin) {
 
                                $user_id = (int) $plugin->authenticate($login, $password);
 
                if ($owner_uid) {
                        $plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
 
-                       global $pluginhost;
-                       $pluginhost->load($plugins, $pluginhost::KIND_USER, $owner_uid);
+                       PluginHost::getInstance()->load($plugins, PluginHost::KIND_USER, $owner_uid);
 
                        if (get_schema_version() > 100) {
-                               $pluginhost->load_data();
+                               PluginHost::getInstance()->load_data();
                        }
                }
        }
                        array_push($ret_arr, $cv);
                }
 
-               global $pluginhost;
-
-               if ($pluginhost) {
-                       $feeds = $pluginhost->get_feeds(-1);
-
-                       if (is_array($feeds)) {
-                               foreach ($feeds as $feed) {
-                                       $cv = array("id" => PluginHost::pfeed_to_feed_id($feed['id']),
-                                               "counter" => $feed['sender']->get_unread($feed['id']));
+               $feeds = PluginHost::getInstance()->get_feeds(-1);
 
+               if (is_array($feeds)) {
+                       foreach ($feeds as $feed) {
+                               $cv = array("id" => PluginHost::pfeed_to_feed_id($feed['id']),
+                                       "counter" => $feed['sender']->get_unread($feed['id']));
                                        array_push($ret_arr, $cv);
-                               }
                        }
                }
 
                                "help_dialog" => __("Show help dialog"))
                        );
 
-               global $pluginhost;
-               foreach ($pluginhost->get_hooks($pluginhost::HOOK_HOTKEY_INFO) as $plugin) {
+               foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HOTKEY_INFO) as $plugin) {
                        $hotkeys = $plugin->hook_hotkey_info($hotkeys);
                }
 
                        $hotkeys["^(40)|Ctrl-down"] = "next_article_noscroll";
                }
 
-               global $pluginhost;
-               foreach ($pluginhost->get_hooks($pluginhost::HOOK_HOTKEY_MAP) as $plugin) {
+               foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HOTKEY_MAP) as $plugin) {
                        $hotkeys = $plugin->hook_hotkey_map($hotkeys);
                }
 
 
                $disallowed_attributes = array('id', 'style', 'class');
 
-               global $pluginhost;
-
-               if (isset($pluginhost)) {
-                       foreach ($pluginhost->get_hooks($pluginhost::HOOK_SANITIZE) as $plugin) {
-                               $retval = $plugin->hook_sanitize($doc, $site_url, $allowed_elements, $disallowed_attributes);
-                               if (is_array($retval)) {
-                                       $doc = $retval[0];
-                                       $allowed_elements = $retval[1];
-                                       $disallowed_attributes = $retval[2];
-                               } else {
-                                       $doc = $retval;
-                               }
+               foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SANITIZE) as $plugin) {
+                       $retval = $plugin->hook_sanitize($doc, $site_url, $allowed_elements, $disallowed_attributes);
+                       if (is_array($retval)) {
+                               $doc = $retval[0];
+                               $allowed_elements = $retval[1];
+                               $disallowed_attributes = $retval[2];
+                       } else {
+                               $doc = $retval;
                        }
                }
 
 
                        $line["content"] = sanitize($line["content"], false, $owner_uid,        $line["site_url"]);
 
-                       global $pluginhost;
-
-                       foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE) as $p) {
+                       foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE) as $p) {
                                $line = $p->hook_render_article($line);
                        }
 
                                        id=\"ATSTRTIP-$id\" connectId=\"ATSTR-$id\"
                                        position=\"below\">$tags_str_full</div>";
 
-                               global $pluginhost;
-                               foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_BUTTON) as $p) {
+                               foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_BUTTON) as $p) {
                                        $rv['content'] .= $p->hook_article_button($line);
                                }
 
                        $rv['content'] .= "</div>";
                        $rv['content'] .= "<div clear='both'>";
 
-                       global $pluginhost;
-                       foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_LEFT_BUTTON) as $p) {
+                       foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_LEFT_BUTTON) as $p) {
                                $rv['content'] .= $p->hook_article_left_button($line);
                        }
 
        }
 
        function init_plugins() {
-               global $pluginhost;
-
-               $pluginhost = new PluginHost(Db::get());
-               $pluginhost->load(PLUGINS, $pluginhost::KIND_ALL);
+               PluginHost::getInstance()->load(PLUGINS, PluginHost::KIND_ALL);
 
                return true;
        }
index b2d7e0c59b7058a182e3159bd422d528eb07c369..9c80a72d6efc7035ac9151fc27afd8cccb516b9f 100644 (file)
                        }
                }
 
-               $pluginhost = new PluginHost(Db::get());
+               $pluginhost = new PluginHost();
                $pluginhost->set_debug($debug_enabled);
                $user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
 
-               $pluginhost->load(PLUGINS, $pluginhost::KIND_ALL);
-               $pluginhost->load($user_plugins, $pluginhost::KIND_USER, $owner_uid);
+               $pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
+               $pluginhost->load($user_plugins, PluginHost::KIND_USER, $owner_uid);
                $pluginhost->load_data();
 
-               foreach ($pluginhost->get_hooks($pluginhost::HOOK_FEED_FETCHED) as $plugin) {
+               foreach ($pluginhost->get_hooks(PluginHost::HOOK_FEED_FETCHED) as $plugin) {
                        $feed_data = $plugin->hook_feed_fetched($feed_data);
                }
 
                        }
 
                        // We use local pluginhost here because we need to load different per-user feed plugins
-                       $pluginhost->run_hooks($pluginhost::HOOK_FEED_PARSED, "hook_feed_parsed", $rss);
+                       $pluginhost->run_hooks(PluginHost::HOOK_FEED_PARSED, "hook_feed_parsed", $rss);
 
                        if ($debug_enabled) {
                                _debug("update_rss_feed: processing feed data...");
                                        "author" => $entry_author,
                                        "stored" => $stored_article);
 
-                               foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_FILTER) as $plugin) {
+                               foreach ($pluginhost->get_hooks(PluginHost::HOOK_ARTICLE_FILTER) as $plugin) {
                                        $article = $plugin->hook_article_filter($article);
                                }
 
index d8b58407194d8288faece81398b161e96b6d52f9..bf78be1f3c1f7c0a8616f2ef10dbb54038d695d2 100644 (file)
--- a/index.php
+++ b/index.php
 
        if (!init_plugins()) return;
 
-       global $pluginhost;
-
        if (!$_REQUEST['mobile']) {
-               if ($mobile->isTablet() && $pluginhost->get_plugin("digest")) {
+               if ($mobile->isTablet() && PluginHost::getInstance()->get_plugin("digest")) {
                        header('Location: backend.php?op=digest');
                        exit;
-               } else if ($mobile->isMobile() && $pluginhost->get_plugin("mobile")) {
+               } else if ($mobile->isMobile() && PluginHost::getInstance()->get_plugin("mobile")) {
                        header('Location: backend.php?op=mobile');
                        exit;
-               } else if ($mobile->isMobile() && $pluginhost->get_plugin("digest")) {
+               } else if ($mobile->isMobile() && PluginHost::getInstance()->get_plugin("digest")) {
                        header('Location: backend.php?op=digest');
                        exit;
                }
@@ -74,7 +72,7 @@
 
        <style type="text/css">
        <?php
-               foreach ($pluginhost->get_plugins() as $n => $p) {
+               foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
                        if (method_exists($p, "get_css")) {
                                echo $p->get_css();
                        }
                print get_minified_js(array("tt-rss",
                        "functions", "feedlist", "viewfeed", "FeedTree"));
 
-               global $pluginhost;
-
-               foreach ($pluginhost->get_plugins() as $n => $p) {
+               foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
                        if (method_exists($p, "get_js")) {
                                echo JShrink\Minifier::minify($p->get_js());
                        }
                <div class="actionChooser">
 
                        <?php
-                               global $pluginhost;
-                               foreach ($pluginhost->get_hooks($pluginhost::HOOK_TOOLBAR_BUTTON) as $p) {
+                               foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_TOOLBAR_BUTTON) as $p) {
                                         echo $p->hook_toolbar_button();
                                }
                        ?>
                                        <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcCatchupAll')"><?php echo __('Mark as read') ?></div>
                                        <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcShowOnlyUnread')"><?php echo __('(Un)hide read feeds') ?></div>
                                        <div dojoType="dijit.MenuItem" disabled="1"><?php echo __('Other actions:') ?></div>
-                                       <!-- <?php if ($pluginhost->get_plugin("digest")) { ?>
-                                       <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcDigest')"><?php echo __('Switch to digest...') ?></div>
-                                       <?php } ?> -->
-                                               <!-- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagCloud')"><?php echo __('Show tag cloud...') ?></div> -->
-                                               <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcToggleWidescreen')"><?php echo __('Toggle widescreen mode') ?></div>
+                                       <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcToggleWidescreen')"><?php echo __('Toggle widescreen mode') ?></div>
                                        <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagSelect')"><?php echo __('Select by tags...') ?></div>
                                        <!-- <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddLabel')"><?php echo __('Create label...') ?></div>
                                        <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddFilter')"><?php echo __('Create filter...') ?></div> -->
                                        <div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcHKhelp')"><?php echo __('Keyboard shortcuts help') ?></div>
 
                                        <?php
-                                               foreach ($pluginhost->get_hooks($pluginhost::HOOK_ACTION_ITEM) as $p) {
+                                               foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ACTION_ITEM) as $p) {
                                                 echo $p->hook_action_item();
                                                }
                                        ?>
index a87684b56b9c32631ea77abf1f824795930c165f..d59e17ffdf8b57254420badabf65e0c3faa0027d 100644 (file)
@@ -351,8 +351,7 @@ class Instances extends Plugin implements IHandler {
 
                print "</div>"; #pane
 
-               global $pluginhost;
-               $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+               PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
                        "hook_prefs_tab", "prefInstances");
 
                print "</div>"; #container
index 826728315ea3c994ffe912815efc55394b02ceda..9bf610a53ad1daa9508827184278c05fb3528b66 100644 (file)
--- a/prefs.php
+++ b/prefs.php
@@ -66,9 +66,7 @@
        <?php
                require 'lib/jshrink/Minifier.php';
 
-               global $pluginhost;
-
-               foreach ($pluginhost->get_plugins() as $n => $p) {
+               foreach (PluginHost::getInstance()->get_plugins() as $n => $p) {
                        if (method_exists($p, "get_prefs_js")) {
                                echo JShrink\Minifier::minify($p->get_prefs_js());
                        }
                title="<?php echo __('System') ?>"></div>
 <?php } ?>
 <?php
-       $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TABS,
+       PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TABS,
                "hook_prefs_tabs", false);
 ?>
 </div>
index 2f5081957a1abd75a219d090537231ad9cf953a6..f92d252e2a210befc2603a46d5181de8373d56c5 100644 (file)
@@ -37,8 +37,7 @@
 
        $method = $_REQUEST["op"];
 
-       global $pluginhost;
-       $override = $pluginhost->lookup_handler("public", $method);
+       $override = PluginHost::getInstance()->lookup_handler("public", $method);
 
        if ($override) {
                $handler = $override;
index be7314175d628df1611c6bd11feba3645b981dc1..d8ea52361ac27c0571f51c4628a5c31f86638427 100755 (executable)
@@ -36,7 +36,7 @@
                        "list-plugins",
                        "help");
 
-       foreach ($pluginhost->get_commands() as $command => $data) {
+       foreach (PluginHost::getInstance()->get_commands() as $command => $data) {
                array_push($longopts, $command . $data["suffix"]);
        }
 
@@ -79,7 +79,7 @@
                print "  --help               - show this help\n";
                print "Plugin options:\n";
 
-               foreach ($pluginhost->get_commands() as $command => $data) {
+               foreach (PluginHost::getInstance()->get_commands() as $command => $data) {
                        $args = $data['arghelp'];
                        printf(" --%-19s - %s\n", "$command $args", $data["description"]);
                }
                $rc = cleanup_tags( 14, 50000);
                _debug("Cleaned $rc cached tags.");
 
-               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);
        }
 
        if (isset($options["feedbrowser"])) {
 
                        _debug("Cleaned $rc cached tags.");
 
-                       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);
                }
 
        }
 
        }
 
-       $pluginhost->run_commands($options);
+       PluginHost::getInstance()->run_commands($options);
 
        if ($lock_handle != false) {
                fclose($lock_handle);