From: millette <millette@controlyourself.ca>
Date: Thu, 13 Nov 2008 18:28:34 +0000 (-0500)
Subject: trac31 added longurl title to anchors when applicable. Also removed * url prefix... 
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=0633d0404d5ca75dbb52e6dc6eb50d854bee77d3;p=quix0rs-gnu-social.git

trac31 added longurl title to anchors when applicable. Also removed * url prefix feature to prevent short urls.

darcs-hash:20081113182834-099f7-f55adc95eb8fb46f8cee1c176653c88f65e27ab6.gz
---

diff --git a/actions/othersettings.php b/actions/othersettings.php
index 497500509f..18de9c189f 100644
--- a/actions/othersettings.php
+++ b/actions/othersettings.php
@@ -51,7 +51,7 @@ class OthersettingsAction extends SettingsAction {
 			'metamark.net' => 'metamark.net'
 		);
 		
-		common_dropdown('urlshorteningservice', _('Service'), $services, _('Shortening service to use when notices exceed the 140 character limit. Precede a URL with a * to prevent shortening of that URL.'), FALSE, $user->urlshorteningservice);
+		common_dropdown('urlshorteningservice', _('Service'), $services, _('Shortening service to use when notices exceed the 140 character limit.'), FALSE, $user->urlshorteningservice);
 		
 		common_submit('save', _('Save'));
 		
diff --git a/lib/util.php b/lib/util.php
index ee1a149a7d..bdc7983148 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -744,14 +744,28 @@ function common_render_uri_thingy($matches) {
 			$trailer = $final . $trailer;
 		}
 	}
-	return '<a href="' . $uri . '" class="extlink">' . $uri . '</a>' . $trailer;
+	if ($longurl = common_longurl($uri)) {
+		$longurl = htmlentities($longurl, ENT_QUOTES, 'UTF-8');
+		$title = " title=$longurl";
+	}
+	else $title = '';
+	
+	return '<a href="' . $uri . '"' . $title . ' class="extlink">' . $uri . '</a>' . $trailer;
+}
+
+function common_longurl($uri)  {
+	$uri_e = urlencode($uri);
+	$longurl = unserialize(file_get_contents("http://api.longurl.org/v1/expand?format=php&url=$uri_e"));
+	if (empty($longurl['long_url']) || $uri === $longurl['long_url']) return false;
+	return $longurl['long_url'];
 }
 
 function common_shorten_links($text) {
 	$r = htmlspecialchars($text);
     // \s = not a horizontal whitespace character (since PHP 5.2.4)
-	$r = preg_replace('@[^*]https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r);
-//	$r = preg_replace('@https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r);
+	// RYM this should prevent * preceded URLs from being processed but it its a char
+//	$r = preg_replace('@[^*](https?://[^)\]>\s]+)@e', "common_shorten_link('\\1')", $r);
+	$r = preg_replace('@https?://[^)\]>\s]+@e', "common_shorten_link('\\0')", $r);
 	return $r;
 }