summaryrefslogtreecommitdiff
path: root/plugins/Blacklist/blacklistadminpanel.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Blacklist/blacklistadminpanel.php')
-rw-r--r--plugins/Blacklist/blacklistadminpanel.php49
1 files changed, 21 insertions, 28 deletions
diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php
index 98d07080d..4289dec1b 100644
--- a/plugins/Blacklist/blacklistadminpanel.php
+++ b/plugins/Blacklist/blacklistadminpanel.php
@@ -88,37 +88,25 @@ class BlacklistadminpanelAction extends AdminPanelAction
function saveSettings()
{
- static $settings = array(
- 'blacklist' => array('nicknames', 'urls'),
- );
+ $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames'));
+ Nickname_blacklist::saveNew($nickPatterns);
- $values = array();
+ $urlPatterns = $this->splitPatterns($this->trimmed('blacklist-urls'));
+ Homepage_blacklist::saveNew($urlPatterns);
- foreach ($settings as $section => $parts) {
- foreach ($parts as $setting) {
- $values[$section][$setting] = $this->trimmed("$section-$setting");
- }
- }
-
- // This throws an exception on validation errors
-
- $this->validate($values);
-
- // assert(all values are valid);
-
- $config = new Config();
-
- $config->query('BEGIN');
+ return;
+ }
- foreach ($settings as $section => $parts) {
- foreach ($parts as $setting) {
- Config::save($section, $setting, $values[$section][$setting]);
+ protected function splitPatterns($text)
+ {
+ $patterns = array();
+ foreach (explode("\n", $text) as $raw) {
+ $trimmed = trim($raw);
+ if ($trimmed != '') {
+ $patterns[] = $trimmed;
}
}
-
- $config->query('COMMIT');
-
- return;
+ return $patterns;
}
/**
@@ -191,14 +179,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');