mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 15:45:56 +00:00
experimental support for per-user plugins (bump schema)
This commit is contained in:
@@ -621,8 +621,133 @@ class Pref_Prefs extends Handler_Protected {
|
||||
<label for='prefs_show_advanced'>" .
|
||||
__("Show additional preferences") . "</label>";
|
||||
|
||||
print "</form>";
|
||||
print '</div>'; # inner pane
|
||||
print '</div>'; # border container
|
||||
|
||||
print "</div>"; #pane
|
||||
|
||||
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Plugins')."\">";
|
||||
|
||||
print "<h2>".__("Plugins")."</h2>";
|
||||
|
||||
print_notice("You will need to reload Tiny Tiny RSS for plugin changes to take effect.");
|
||||
|
||||
print "<form dojoType=\"dijit.form.Form\" id=\"changePluginsForm\">";
|
||||
|
||||
print "<script type=\"dojo/method\" event=\"onSubmit\" args=\"evt\">
|
||||
evt.preventDefault();
|
||||
if (this.validate()) {
|
||||
notify_progress('Saving data...', true);
|
||||
|
||||
new Ajax.Request('backend.php', {
|
||||
parameters: dojo.objectToQuery(this.getValues()),
|
||||
onComplete: function(transport) {
|
||||
notify('');
|
||||
if (confirm(__('Selected plugins have been enabled. Reload?'))) {
|
||||
window.location.reload();
|
||||
}
|
||||
} });
|
||||
|
||||
}
|
||||
</script>";
|
||||
|
||||
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-prefs\">";
|
||||
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setplugins\">";
|
||||
|
||||
print "<table width='100%'>";
|
||||
|
||||
print "<tr><td colspan='4'><h3>".__("System plugins")."</h3></td></tr>";
|
||||
|
||||
print "<tr class=\"title\">
|
||||
<td width=\"5%\"> </td>
|
||||
<td width='10%'>".__('Plugin')."</td>
|
||||
<td width=''>".__('Description')."</td>
|
||||
<td width='5%'>".__('Version')."</td>
|
||||
<td width='10%'>".__('Author')."</td></tr>";
|
||||
|
||||
$system_enabled = array_map("trim", explode(",", PLUGINS));
|
||||
$user_enabled = array_map("trim", explode(",", get_pref($this->link, "_ENABLED_PLUGINS")));
|
||||
|
||||
$tmppluginhost = new PluginHost($link);
|
||||
$tmppluginhost->load_all();
|
||||
|
||||
foreach ($tmppluginhost->get_plugins() as $name => $plugin) {
|
||||
$about = $plugin->_about();
|
||||
|
||||
if ($about[3]) {
|
||||
if (in_array($name, $system_enabled)) {
|
||||
$checked = "checked='1'";
|
||||
} else {
|
||||
$checked = "";
|
||||
}
|
||||
|
||||
print "<tr>";
|
||||
|
||||
print "<td align='center'><input disabled='1'
|
||||
dojoType=\"dijit.form.CheckBox\" $checked
|
||||
type=\"checkbox\"></td>";
|
||||
|
||||
print "<td>$name</td>";
|
||||
print "<td>" . htmlspecialchars($about[1]) . "</td>";
|
||||
print "<td>" . htmlspecialchars(sprintf("%.2f", $about[0])) . "</td>";
|
||||
print "<td>" . htmlspecialchars($about[2]) . "</td>";
|
||||
|
||||
print "</tr>";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
print "<tr><td colspan='4'><h3>".__("User plugins")."</h3></td></tr>";
|
||||
|
||||
print "<tr class=\"title\">
|
||||
<td width=\"5%\"> </td>
|
||||
<td width='10%'>".__('Plugin')."</td>
|
||||
<td width=''>".__('Description')."</td>
|
||||
<td width='5%'>".__('Version')."</td>
|
||||
<td width='10%'>".__('Author')."</td></tr>";
|
||||
|
||||
|
||||
foreach ($tmppluginhost->get_plugins() as $name => $plugin) {
|
||||
$about = $plugin->_about();
|
||||
|
||||
if (!$about[3]) {
|
||||
|
||||
if (in_array($name, $system_enabled)) {
|
||||
$checked = "checked='1'";
|
||||
$disabled = "disabled='1'";
|
||||
} else if (in_array($name, $user_enabled)) {
|
||||
$checked = "checked='1'";
|
||||
$disabled = "";
|
||||
} else {
|
||||
$checked = "";
|
||||
$disabled = "";
|
||||
}
|
||||
|
||||
print "<tr>";
|
||||
|
||||
print "<td align='center'><input id='FPCHK-$name' name='plugins[]' value='$name' onclick='toggleSelectRow2(this);'
|
||||
dojoType=\"dijit.form.CheckBox\" $checked $disabled
|
||||
type=\"checkbox\"></td>";
|
||||
|
||||
print "<td>$name</td>";
|
||||
print "<td>" . htmlspecialchars($about[1]) . "</td>";
|
||||
print "<td>" . htmlspecialchars(sprintf("%.2f", $about[0])) . "</td>";
|
||||
print "<td>" . htmlspecialchars($about[2]) . "</td>";
|
||||
|
||||
print "</tr>";
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
print "</table>";
|
||||
|
||||
print "<p><button dojoType=\"dijit.form.Button\" type=\"submit\">".
|
||||
__("Enable selected plugins")."</button></p>";
|
||||
|
||||
print "</form>";
|
||||
|
||||
print "</div>"; #pane
|
||||
@@ -698,5 +823,11 @@ class Pref_Prefs extends Handler_Protected {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function setplugins() {
|
||||
$plugins = join(",", $_REQUEST["plugins"]);
|
||||
|
||||
set_pref($this->link, "_ENABLED_PLUGINS", $plugins);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user