X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Futil.php;h=a061d17739356cc0bc9643a39bec2106513b7efb;hb=ab053fe2ca8bb2be76d6af0d313f38d89540d768;hp=3535cfb08a8a4ca1914db1d8065255cb5259011b;hpb=13d479bc18ac7f1bc447acdbf2d1f66dfe9f25b8;p=quix0rs-gnu-social.git diff --git a/lib/util.php b/lib/util.php index 3535cfb08a..a061d17739 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1,7 +1,7 @@ user_id); + $user = User::staticGet('id', $rm->user_id); if (!$user) { common_log(LOG_WARNING, 'No such user for rememberme: ' . $rm->user_id); @@ -1127,8 +1127,11 @@ function common_tag_link($tag) function common_canonical_tag($tag) { + // only alphanum + $tag = preg_replace('/[^\pL\pN]/u', '', $tag); $tag = mb_convert_case($tag, MB_CASE_LOWER, "UTF-8"); - return str_replace(array('-', '_', '.'), '', $tag); + $tag = substr($tag, 0, 64); + return $tag; } function common_valid_profile_tag($str) @@ -1234,12 +1237,12 @@ function common_local_url($action, $args=null, $params=null, $fragment=null, $ad $ssl = common_is_sensitive($action); if (common_config('site','fancy')) { - $url = common_path(mb_substr($path, 1), $ssl, $addSession); + $url = common_path($path, $ssl, $addSession); } else { if (mb_strpos($path, '/index.php') === 0) { - $url = common_path(mb_substr($path, 1), $ssl, $addSession); + $url = common_path($path, $ssl, $addSession); } else { - $url = common_path('index.php'.$path, $ssl, $addSession); + $url = common_path('index.php/'.$path, $ssl, $addSession); } } Event::handle('EndLocalURL', array(&$action, &$params, &$fragment, &$addSession, &$url)); @@ -1304,11 +1307,11 @@ function common_inject_session($url, $serverpart = null) { if (common_have_session()) { - if (empty($serverpart)) { - $serverpart = parse_url($url, PHP_URL_HOST); - } + if (empty($serverpart)) { + $serverpart = parse_url($url, PHP_URL_HOST); + } - $currentServer = $_SERVER['HTTP_HOST']; + $currentServer = (array_key_exists('HTTP_HOST', $_SERVER)) ? $_SERVER['HTTP_HOST'] : null; // Are we pointing to another server (like an SSL server?) @@ -1456,6 +1459,7 @@ function common_redirect($url, $code=307) header('HTTP/1.1 '.$code.' '.$status[$code]); header("Location: $url"); + header("Connection: close"); $xo = new XMLOutputter(); $xo->startXML('a', @@ -1501,16 +1505,18 @@ function common_enqueue_notice($notice) } /** - * Broadcast profile updates to OMB and other remote subscribers. + * Legacy function to broadcast profile updates to OMB remote subscribers. + * + * XXX: This probably needs killing, but there are several bits of code + * that broadcast profile changes that need to be dealt with. AFAIK + * this function is only used for OMB. -z * * Since this may be slow with a lot of subscribers or bad remote sites, * this is run through the background queues if possible. */ function common_broadcast_profile(Profile $profile) { - $qm = QueueManager::get(); - $qm->enqueue($profile, "profile"); - return true; + Event::handle('BroadcastProfile', array($profile)); } function common_profile_url($nickname) @@ -2008,20 +2014,20 @@ function common_user_property($property) function common_profile_uri($profile) { - if (!$profile) { - return null; - } - $user = User::staticGet($profile->id); - if ($user) { - return $user->uri; - } + $uri = null; - $remote = Remote_profile::staticGet($profile->id); - if ($remote) { - return $remote->uri; + if (!empty($profile)) { + if (Event::handle('StartCommonProfileURI', array($profile, &$uri))) { + $user = User::staticGet($profile->id); + if (!empty($user)) { + $uri = $user->uri; + } + Event::handle('EndCommonProfileURI', array($profile, &$uri)); + } } + // XXX: this is a very bad profile! - return null; + return $uri; } function common_canonical_sms($sms) @@ -2157,7 +2163,11 @@ function common_shorten_url($long_url, User $user=null, $force = false) } else { $shortenedUrl = common_local_url('redirecturl', array('id' => $f->id)); - return $shortenedUrl; + if ((mb_strlen($shortenedUrl) < mb_strlen($long_url)) || $force) { + return $shortenedUrl; + } else { + return $long_url; + } } } else { return $long_url; @@ -2307,3 +2317,31 @@ function common_is_email($str) { return (strpos($str, '@') !== false); } + +function common_init_stats() +{ + global $_mem, $_ts; + + $_mem = memory_get_usage(true); + $_ts = microtime(true); +} + +function common_log_delta($comment=null) +{ + global $_mem, $_ts; + + $mold = $_mem; + $told = $_ts; + + $_mem = memory_get_usage(true); + $_ts = microtime(true); + + $mtotal = $_mem - $mold; + $ttotal = $_ts - $told; + + if (empty($comment)) { + $comment = 'Delta'; + } + + common_debug(sprintf("%s: %d %d", $comment, $mtotal, round($ttotal * 1000000))); +}