common_to_alphanumeric added, filtering Notice->source in classic layout

This commit is contained in:
Mikael Nordfeldth 2016-09-02 00:08:17 +02:00
parent af6a3aa456
commit e6b3924a5d
3 changed files with 18 additions and 2 deletions

View File

@ -556,6 +556,11 @@ abstract class ActivityHandlerPlugin extends Plugin
if ($nli->notice->scope != 0 && $nli->notice->scope != 1) { if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
$class .= ' limited-scope'; $class .= ' limited-scope';
} }
try {
$class .= ' notice-source-'.common_to_alphanumeric($this->notice->source);
} catch (Exception $e) {
// either source or what we filtered out was a zero-length string
}
$nli->out->elementStart('li', array('class' => $class, $nli->out->elementStart('li', array('class' => $class,
'id' => 'notice-' . $id)); 'id' => 'notice-' . $id));
} }

View File

@ -229,8 +229,10 @@ class NoticeListItem extends Widget
if ($this->notice->scope != 0 && $this->notice->scope != 1) { if ($this->notice->scope != 0 && $this->notice->scope != 1) {
$class .= ' limited-scope'; $class .= ' limited-scope';
} }
if (!empty($this->notice->source)) { try {
$class .= ' notice-source-'.$this->notice->source; $class .= ' notice-source-'.common_to_alphanumeric($this->notice->source);
} catch (Exception $e) {
// either source or what we filtered out was a zero-length string
} }
$id_prefix = (strlen($this->id_prefix) ? $this->id_prefix . '-' : ''); $id_prefix = (strlen($this->id_prefix) ? $this->id_prefix . '-' : '');
$this->out->elementStart($this->item_tag, array('class' => $class, $this->out->elementStart($this->item_tag, array('class' => $class,

View File

@ -581,6 +581,15 @@ function common_canonical_email($email)
return $email; return $email;
} }
function common_to_alphanumeric($str)
{
$filtered = preg_replace('/[^A-Za-z0-9]\s*/', '', $str);
if (strlen($filtered) < 1) {
throw new Exception('Filtered string was zero-length.');
}
return $filtered;
}
function common_purify($html, array $args=array()) function common_purify($html, array $args=array())
{ {
require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php'; require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php';