URL shortening can now be disabled for the 'maxurllength'

Also, URL shortening now consistently uses 'maxurllength'...
This commit is contained in:
Mikael Nordfeldth 2013-10-06 22:35:26 +02:00
parent 34a6624452
commit 87370f0cb1
6 changed files with 12 additions and 12 deletions

View File

@ -794,14 +794,14 @@ external: external links in notices. One of three values: 'sometimes',
url
---
Everybody loves URL shorteners. These are some options for fine-tuning
how and when the server shortens URLs.
These are some options for fine-tuning how and when the server will
shorten URLs.
shortener: URL shortening service to use by default. Users can override
individually. 'ur1.ca' by default.
maxlength: If an URL is strictly longer than this limit, it will be
individually. 'internal' by default.
maxurllength: If an URL is strictly longer than this limit, it will be
shortened. Note that the URL shortener service may return an
URL longer than this limit. Defaults to 25. Users can
URL longer than this limit. Defaults to 100. Users can
override. If set to 0, all URLs will be shortened.
maxnoticelength: If a notice is strictly longer than this limit, all
URLs in the notice will be shortened. Users can override.

View File

@ -61,7 +61,7 @@ class ApiStatusnetConfigAction extends ApiAction
'xmpp' => array('enabled', 'server', 'port', 'user'),
'integration' => array('source'),
'attachments' => array('uploads', 'file_quota'),
'url' => array('maxlength', 'maxnoticelength'),
'url' => array('maxurllength', 'maxnoticelength'),
);
/**

View File

@ -136,7 +136,7 @@ class UrlsettingsAction extends SettingsAction
(!is_null($this->arg('maxurllength'))) ?
$this->arg('maxurllength') : User_urlshortener_prefs::maxUrlLength($user),
// TRANS: Field title in URL settings in profile.
_('URLs longer than this will be shortened, 0 means always shorten.'));
_('URLs longer than this will be shortened, -1 means never shorten because a URL is long.'));
$this->elementEnd('li');
$this->elementStart('li');
$this->input('maxnoticelength',
@ -145,7 +145,7 @@ class UrlsettingsAction extends SettingsAction
(!is_null($this->arg('maxnoticelength'))) ?
$this->arg('maxnoticelength') : User_urlshortener_prefs::maxNoticeLength($user),
// TRANS: Field title in URL settings in profile.
_('URLs in notices longer than this will always be shortened, -1 means shorten only if notice text exceeds maximum length.'));
_('URLs in notices longer than this will always be shortened, -1 means only shorten if the full post exceeds maximum length.'));
$this->elementEnd('li');
$this->elementEnd('ul');
// TRANS: Button text for saving "Other settings" in profile.
@ -183,7 +183,7 @@ class UrlsettingsAction extends SettingsAction
$maxurllength = $this->trimmed('maxurllength');
if (!Validate::number($maxurllength, array('min' => 0))) {
if (!Validate::number($maxurllength, array('min' => -1))) {
// TRANS: Client exception thrown when the maximum URL settings value is invalid in profile URL settings.
throw new ClientException(_('Invalid number for maximum URL length.'));
}

View File

@ -58,7 +58,7 @@ class User_urlshortener_prefs extends Managed_DataObject
static function maxUrlLength($user)
{
$def = common_config('url', 'maxlength');
$def = common_config('url', 'maxurllength');
$prefs = self::getPrefs($user);

View File

@ -343,7 +343,7 @@ $default =
'external' => 'sometimes'), // Options: 'sometimes', 'never', default = 'sometimes'
'url' =>
array('shortener' => 'internal',
'maxlength' => 100,
'maxurllength' => 100,
'maxnoticelength' => -1),
'http' => // HTTP client settings when contacting other sites
array('ssl_cafile' => false, // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')

View File

@ -2155,7 +2155,7 @@ function common_shorten_url($long_url, User $user=null, $force = false)
// $force forces shortening even if it's not strictly needed
// I doubt URL shortening is ever 'strictly' needed. - ESP
if (mb_strlen($long_url) < $maxUrlLength && !$force) {
if (($maxUrlLength == -1 || mb_strlen($long_url) < $maxUrlLength) && !$force) {
return $long_url;
}