Give users more control over URL shortening
Users and administrators can set how long an URL can be before it's shortened, and how long a notice can be before all its URLs are shortened. They can also turn off shortening altogether. Squashed commit of the following: commitd136b39011
Author: Evan Prodromou <evan@status.net> Date: Mon Apr 26 02:39:00 2010 -0400 use site and user settings to determine when to shorten URLs commit1e1c851ff3
Author: Evan Prodromou <evan@status.net> Date: Mon Apr 26 02:38:40 2010 -0400 add a method to force shortening URLs commit4d29ca0b91
Author: Evan Prodromou <evan@status.net> Date: Mon Apr 26 02:37:41 2010 -0400 static method for getting best URL shortening service commita9c6a3bace
Author: Evan Prodromou <evan@status.net> Date: Mon Apr 26 02:37:11 2010 -0400 allow 0 in numeric entries in othersettings commit767ff2f7ec
Author: Evan Prodromou <evan@status.net> Date: Mon Apr 26 02:36:46 2010 -0400 allow 0 or blank string in inputs commit1e21af42a6
Author: Evan Prodromou <evan@status.net> Date: Mon Apr 26 02:01:11 2010 -0400 add more URL-shortening options to othersettings commit869a6be0f5
Author: Evan Prodromou <evan@status.net> Date: Sat Apr 24 14:22:51 2010 -0400 move url shortener superclass to lib from plugin commit9c0c9863d5
Author: Evan Prodromou <evan@status.net> Date: Sat Apr 24 14:20:28 2010 -0400 documentation and whitespace on UrlShortenerPlugin commit7a1dd5798f
Author: Evan Prodromou <evan@status.net> Date: Sat Apr 24 14:05:46 2010 -0400 add defaults for URL shortening commitd259c37ad2
Author: Evan Prodromou <evan@status.net> Date: Sat Apr 24 13:40:10 2010 -0400 Add User_urlshortener_prefs Add a table for URL shortener prefs, a corresponding class, and the correct mumbo-jumbo in statusnet.ini to make everything work.
This commit is contained in:
@@ -176,22 +176,52 @@ class File_redirection extends Memcached_DataObject
|
||||
* @param string $long_url
|
||||
* @return string
|
||||
*/
|
||||
function makeShort($long_url) {
|
||||
|
||||
function makeShort($long_url)
|
||||
{
|
||||
$canon = File_redirection::_canonUrl($long_url);
|
||||
|
||||
$short_url = File_redirection::_userMakeShort($canon);
|
||||
|
||||
// Did we get one? Is it shorter?
|
||||
if (!empty($short_url) && mb_strlen($short_url) < mb_strlen($long_url)) {
|
||||
|
||||
if (!empty($short_url)) {
|
||||
return $short_url;
|
||||
} else {
|
||||
return $long_url;
|
||||
}
|
||||
}
|
||||
|
||||
function _userMakeShort($long_url) {
|
||||
$short_url = common_shorten_url($long_url);
|
||||
/**
|
||||
* Shorten a URL with the current user's configured shortening
|
||||
* options, if applicable.
|
||||
*
|
||||
* If it cannot be shortened or the "short" URL is longer than the
|
||||
* original, the original is returned.
|
||||
*
|
||||
* If the referenced item has not been seen before, embedding data
|
||||
* may be saved.
|
||||
*
|
||||
* @param string $long_url
|
||||
* @return string
|
||||
*/
|
||||
|
||||
function forceShort($long_url)
|
||||
{
|
||||
$canon = File_redirection::_canonUrl($long_url);
|
||||
|
||||
$short_url = File_redirection::_userMakeShort($canon, true);
|
||||
|
||||
// Did we get one? Is it shorter?
|
||||
if (!empty($short_url)) {
|
||||
return $short_url;
|
||||
} else {
|
||||
return $long_url;
|
||||
}
|
||||
}
|
||||
|
||||
function _userMakeShort($long_url, $force = false) {
|
||||
$short_url = common_shorten_url($long_url, $force);
|
||||
if (!empty($short_url) && $short_url != $long_url) {
|
||||
$short_url = (string)$short_url;
|
||||
// store it
|
||||
|
Reference in New Issue
Block a user