summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-18 12:27:34 +0400
committerAndrew Dolgov <[email protected]>2013-04-18 12:27:34 +0400
commit1ffe3391f902c4baa984982f19e61a0e45de21ff (patch)
tree4b0b7554c42a6df823db9cf90b925151c796f696 /classes
parent52d88392dad52ec4d5607fef7479d74dee8b8be4 (diff)
make pluginhost a singleton
Diffstat (limited to 'classes')
-rw-r--r--classes/api.php10
-rw-r--r--classes/feeds.php20
-rw-r--r--classes/handler/public.php3
-rw-r--r--classes/pluginhandler.php4
-rw-r--r--classes/pluginhost.php16
-rw-r--r--classes/pref/feeds.php14
-rw-r--r--classes/pref/filters.php3
-rw-r--r--classes/pref/labels.php3
-rw-r--r--classes/pref/prefs.php29
-rw-r--r--classes/pref/system.php3
-rw-r--r--classes/pref/users.php3
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