* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
* @link http://status.net/
*/
-
class BlacklistadminpanelAction extends AdminPanelAction
{
/**
*
* @return string title
*/
-
function title()
{
- return _('Blacklist');
+ return _m('Blacklist');
}
/**
*
* @return string instructions
*/
-
function getInstructions()
{
- return _('Blacklisted URLs and nicknames');
+ return _m('Blacklisted URLs and nicknames');
}
/**
*
* @see BlacklistAdminPanelForm
*/
-
function showForm()
{
$form = new BlacklistAdminPanelForm($this);
*
* @return void
*/
-
function saveSettings()
{
- static $settings = array(
- 'blacklist' => array('nicknames', 'urls'),
- );
-
- $values = array();
-
- 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);
+ $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames'));
+ Nickname_blacklist::saveNew($nickPatterns);
- // assert(all values are valid);
+ $urlPatterns = $this->splitPatterns($this->trimmed('blacklist-urls'));
+ Homepage_blacklist::saveNew($urlPatterns);
- $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;
}
/**
*
* @return boolean success flag
*/
-
function validate(&$values)
{
return true;
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
* @link http://status.net/
*/
-
class BlacklistAdminPanelForm extends Form
{
/**
*
* @return string ID
*/
-
function id()
{
return 'blacklistadminpanel';
*
* @return string class
*/
-
function formClass()
{
return 'form_settings';
*
* @return string action URL
*/
-
function action()
{
return common_local_url('blacklistadminpanel');
*
* @return void
*/
-
function formData()
{
$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'),
- _('Patterns of nicknames to block, one per line'));
+ implode("\r\n", $nickPatterns),
+ _m('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'),
- _('Patterns of URLs to block, one per line'));
+ implode("\r\n", $urlPatterns),
+ _m('Patterns of URLs to block, one per line'));
$this->out->elementEnd('li');
$this->out->elementEnd('ul');
*
* @return void
*/
-
function formActions()
{
$this->out->submit('submit',
- _('Save'),
+ _m('Save'),
'submit',
null,
- _('Save site settings'));
+ _m('Save site settings'));
}
}