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) {
$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,
'id' => 'notice-' . $id));
}

View File

@ -229,8 +229,10 @@ class NoticeListItem extends Widget
if ($this->notice->scope != 0 && $this->notice->scope != 1) {
$class .= ' limited-scope';
}
if (!empty($this->notice->source)) {
$class .= ' notice-source-'.$this->notice->source;
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
}
$id_prefix = (strlen($this->id_prefix) ? $this->id_prefix . '-' : '');
$this->out->elementStart($this->item_tag, array('class' => $class,

View File

@ -581,6 +581,15 @@ function common_canonical_email($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())
{
require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php';