]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/util.php
Link rtsp, mms & tel URI schemes, correct pseudo-protocol ones.
[quix0rs-gnu-social.git] / lib / util.php
index b5b194519e37598b260cfba818673069c0bf0e74..d7af3f2045eba96552e1e9f07d7e9b1b4c5d26d1 100644 (file)
@@ -370,8 +370,6 @@ function common_canonical_email($email)
     return $email;
 }
 
-define('URL_REGEX', '^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))');
-
 function common_render_content($text, $notice)
 {
     $r = common_render_text($text);
@@ -388,7 +386,8 @@ function common_render_text($text)
     $r = htmlspecialchars($text);
 
     $r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r);
-    $r = preg_replace_callback('@https?://[^\]>\s]+@', 'common_render_uri_thingy', $r);
+    $r = preg_replace_callback('@(ftp|http|https|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc)://[^\]>\s]+@', 'common_render_uri_thingy', $r);
+    $r = preg_replace_callback('@(mailto|aim|tel):[^\]>\s]+@', 'common_render_uri_thingy', $r); // Pseudo-protocols don't require '//' after ':'.
     $r = preg_replace('/(^|\s+)#([A-Za-z0-9_\-\.]{1,64})/e', "'\\1#'.common_tag_link('\\2')", $r);
     // XXX: machine tags
     return $r;
@@ -887,7 +886,7 @@ function common_fancy_url($action, $args=null)
      case 'newgroup':
         return common_path('group/new');
      case 'showgroup':
-        return common_path('group/'.$args['nickname']);
+        return common_path('group/'.$args['nickname'] . (($args['page']) ? ('?page=' . $args['page']) : ''));
      case 'editgroup':
         return common_path('group/'.$args['nickname'].'/edit');
      case 'joingroup':
@@ -903,7 +902,9 @@ function common_fancy_url($action, $args=null)
      case 'grouplogo':
         return common_path('group/'.$args['nickname'].'/logo');
      case 'usergroups':
-        return common_path($args['nickname'].'/groups' . (($args) ? ('?' . http_build_query($args)) : ''));
+        $nickname = $args['nickname'];
+        unset($args['nickname']);
+        return common_path($nickname.'/groups' . (($args) ? ('?' . http_build_query($args)) : ''));
      case 'groups':
         return common_path('group' . (($args) ? ('?' . http_build_query($args)) : ''));
      default:
@@ -1140,23 +1141,6 @@ function common_enqueue_notice($notice)
     return $result;
 }
 
-function common_dequeue_notice($notice)
-{
-    $qi = Queue_item::staticGet($notice->id);
-    if ($qi) {
-        $result = $qi->delete();
-        if (!$result) {
-            $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
-            common_log(LOG_ERR, 'DB error deleting queue item: ' . $last_error->message);
-            return false;
-        }
-        common_log(LOG_DEBUG, 'complete dequeueing notice ID = ' . $notice->id);
-        return $result;
-    } else {
-        return false;
-    }
-}
-
 function common_real_broadcast($notice, $remote=false)
 {
     $success = true;