add support for plugins in prefs

This commit is contained in:
Andrew Dolgov 2012-12-23 16:15:34 +04:00
parent 5a0e03923f
commit 6065f3ad63
8 changed files with 57 additions and 3 deletions

View File

@ -6,6 +6,8 @@ class PluginHost {
const HOOK_ARTICLE_BUTTON = 1; const HOOK_ARTICLE_BUTTON = 1;
const HOOK_ARTICLE_FILTER = 2; const HOOK_ARTICLE_FILTER = 2;
const HOOK_PREFS_TAB = 3;
const HOOK_PREFS_SECTION = 4;
function __construct($link) { function __construct($link) {
$this->link = $link; $this->link = $link;
@ -28,6 +30,12 @@ class PluginHost {
return $this->plugins[$name]; return $this->plugins[$name];
} }
function run_hooks($type, $method, $args) {
foreach ($this->get_hooks($type) as $hook) {
$hook->$method($args);
}
}
function add_hook($type, $sender) { function add_hook($type, $sender) {
if (!is_array($this->hooks[$type])) { if (!is_array($this->hooks[$type])) {
$this->hooks[$type] = array(); $this->hooks[$type] = array();

View File

@ -1530,6 +1530,10 @@ class Pref_Feeds extends Handler_Protected {
print "</div>"; #pane print "</div>"; #pane
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefFeeds");
print "</div>"; #container print "</div>"; #container
} }

View File

@ -625,6 +625,11 @@ class Pref_Filters extends Handler_Protected {
</div>"; </div>";
print "</div>"; #pane print "</div>"; #pane
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefFilters");
print "</div>"; #container print "</div>"; #container
} }

View File

@ -211,6 +211,11 @@ class Pref_Instances extends Handler_Protected {
print "</table>"; print "</table>";
print "</div>"; #pane print "</div>"; #pane
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefInstances");
print "</div>"; #container print "</div>"; #container
} }

View File

@ -318,6 +318,11 @@ class Pref_Labels extends Handler_Protected {
</div>"; </div>";
print "</div>"; #pane print "</div>"; #pane
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefLabels");
print "</div>"; #container print "</div>"; #container
} }

View File

@ -650,6 +650,10 @@ class Pref_Prefs extends Handler_Protected {
print "</div>"; #pane print "</div>"; #pane
} }
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefPrefs");
print "</div>"; #container print "</div>"; #container
} }

View File

@ -487,6 +487,11 @@ class Pref_Users extends Handler_Protected {
} }
print "</div>"; #pane print "</div>"; #pane
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefUsers");
print "</div>"; #container print "</div>"; #container
} }

View File

@ -44,9 +44,27 @@
<script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script> <script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
<script type="text/javascript" charset="utf-8" src="js/functions.js?<?php echo $dt_add ?>"></script> <script type="text/javascript">
<script type="text/javascript" charset="utf-8" src="js/deprecated.js?<?php echo $dt_add ?>"></script> <?php
<script type="text/javascript" charset="utf-8" src="js/prefs.js?<?php echo $dt_add ?>"></script> require 'lib/jsmin.php';
global $pluginhost;
foreach ($pluginhost->get_plugins() as $n => $p) {
if (method_exists($p, "get_prefs_js")) {
echo JSMin::minify($p->get_prefs_js());
}
}
foreach (array("functions", "deprecated", "prefs") as $js) {
if (!isset($_GET['debug'])) {
echo JSMin::minify(file_get_contents("js/$js.js"));
} else {
echo file_get_contents("js/$js.js");
}
}
?>
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>