summaryrefslogtreecommitdiff
path: root/plugins/Blacklist/blacklistadminpanel.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-03-25 13:49:12 -0400
committerEvan Prodromou <evan@status.net>2010-03-25 13:49:12 -0400
commit6e644f77a43ea7028e0aafb2d83059d0f19db701 (patch)
tree57f7a05c8b6190c55613d7176ccf2a70d1df1bcd /plugins/Blacklist/blacklistadminpanel.php
parentedee1fc09e304616fbce4ad1d1dae6097655c4e7 (diff)
Store blacklist patterns in their own tables
We were bumping into limits on the config format in the Blacklist plugin. So, added new tables for nickname and homepage blacklists, and changed the plugin to use those instead of config file (actually, still uses config file in addition, for compatibility).
Diffstat (limited to 'plugins/Blacklist/blacklistadminpanel.php')
-rw-r--r--plugins/Blacklist/blacklistadminpanel.php40
1 files changed, 17 insertions, 23 deletions
diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php
index 98d07080d..b996aba8d 100644
--- a/plugins/Blacklist/blacklistadminpanel.php
+++ b/plugins/Blacklist/blacklistadminpanel.php
@@ -88,35 +88,24 @@ class BlacklistadminpanelAction extends AdminPanelAction
function saveSettings()
{
- static $settings = array(
- 'blacklist' => array('nicknames', 'urls'),
- );
+ $nickPatterns = array();
- $values = array();
+ $rawNickPatterns = explode("\n", $this->trimmed('blacklist-nicknames'));
- foreach ($settings as $section => $parts) {
- foreach ($parts as $setting) {
- $values[$section][$setting] = $this->trimmed("$section-$setting");
- }
+ foreach ($rawNickPatterns as $raw) {
+ $nickPatterns[] = trim($raw);
}
- // This throws an exception on validation errors
+ Nickname_blacklist::saveNew($nickPatterns);
- $this->validate($values);
+ $rawUrlPatterns = explode("\n", $this->trimmed('blacklist-urls'));
+ $urlPatterns = array();
- // assert(all values are valid);
-
- $config = new Config();
-
- $config->query('BEGIN');
-
- foreach ($settings as $section => $parts) {
- foreach ($parts as $setting) {
- Config::save($section, $setting, $values[$section][$setting]);
- }
+ foreach ($rawUrlPatterns as $raw) {
+ $urlPatterns[] = trim($raw);
}
- $config->query('COMMIT');
+ Homepage_blacklist::saveNew($urlPatterns);
return;
}
@@ -191,14 +180,19 @@ class BlacklistAdminPanelForm extends Form
$this->out->elementStart('ul', 'form_data');
$this->out->elementStart('li');
+
+ $nickPatterns = Nickname_blacklist::getPatterns();
+
$this->out->textarea('blacklist-nicknames', _m('Nicknames'),
- common_config('blacklist', 'nicknames'),
+ implode("\r\n", $nickPatterns),
_('Patterns of nicknames to block, one per line'));
$this->out->elementEnd('li');
+ $urlPatterns = Homepage_blacklist::getPatterns();
+
$this->out->elementStart('li');
$this->out->textarea('blacklist-urls', _m('URLs'),
- common_config('blacklist', 'urls'),
+ implode("\r\n", $urlPatterns),
_('Patterns of URLs to block, one per line'));
$this->out->elementEnd('li');