]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
common_to_alphanumeric added, filtering Notice->source in classic layout
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 1 Sep 2016 22:08:17 +0000 (00:08 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 1 Sep 2016 23:00:08 +0000 (01:00 +0200)
lib/activityhandlerplugin.php
lib/noticelistitem.php
lib/util.php

index 8f28da85d67bbb42f8f9c9912eb4f42954e14cfc..b22096be0e39148d9d048e2e585387f8985d9fd7 100644 (file)
@@ -552,6 +552,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));
     }
index 4c4bde34a1c3d1e75c1703854238c36e7ad53268..387d2f376264f43ba1aca222a3b9e5cc2b2b52b7 100644 (file)
@@ -227,8 +227,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,
index c87b0f1bf69d9ca1cfdeef7958992f247b2a25d0..a177c92a25091499d4de28b467a6969e08488643 100644 (file)
@@ -580,6 +580,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)
 {
     require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php';