2010-04-24 18:40:10 +01:00
< ? php
2020-06-28 23:41:46 +01:00
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GNU social is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
2010-04-24 18:40:10 +01:00
/*
2020-06-28 23:41:46 +01:00
* @ copyright 2010 StatusNet , Inc .
* @ license https :// www . gnu . org / licenses / agpl . html GNU AGPL v3 or later
2010-04-24 18:40:10 +01:00
*/
2020-06-28 23:41:46 +01:00
defined ( 'GNUSOCIAL' ) || die ();
2010-04-24 18:40:10 +01:00
2011-08-22 22:52:02 +01:00
class User_urlshortener_prefs extends Managed_DataObject
2010-04-24 18:40:10 +01:00
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'user_urlshortener_prefs' ; // table name
public $user_id ; // int(4) primary_key not_null
public $urlshorteningservice ; // varchar(50) default_ur1.ca
public $maxurllength ; // int(4) not_null
public $maxnoticelength ; // int(4) not_null
2020-06-28 23:41:46 +01:00
public $created ; // datetime()
public $modified ; // timestamp() not_null default_CURRENT_TIMESTAMP
2010-04-24 18:40:10 +01:00
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
2011-08-22 22:52:02 +01:00
public static function schemaDef ()
2010-04-24 18:40:10 +01:00
{
2011-08-22 22:52:02 +01:00
return array (
'fields' => array (
'user_id' => array ( 'type' => 'int' , 'not null' => true , 'description' => 'user' ),
'urlshorteningservice' => array ( 'type' => 'varchar' , 'length' => 50 , 'default' => 'internal' , 'description' => 'service to use for auto-shortening URLs' ),
'maxurllength' => array ( 'type' => 'int' , 'not null' => true , 'description' => 'urls greater than this length will be shortened, 0 = always, null = never' ),
2013-09-25 21:48:32 +01:00
'maxnoticelength' => array ( 'type' => 'int' , 'not null' => true , 'description' => 'notices with content greater than this value will have all urls shortened, 0 = always, -1 = only if notice text is longer than max allowed' ),
2020-06-28 23:41:46 +01:00
'created' => array ( 'type' => 'datetime' , 'description' => 'date this record was created' ),
'modified' => array ( 'type' => 'timestamp' , 'not null' => true , 'description' => 'date this record was modified' ),
2011-08-22 22:52:02 +01:00
),
'primary key' => array ( 'user_id' ),
'foreign keys' => array (
'user_urlshortener_prefs_user_id_fkey' => array ( 'user' , array ( 'user_id' => 'id' )),
),
);
2010-04-24 18:40:10 +01:00
}
2010-04-26 07:01:11 +01:00
2020-06-28 23:41:46 +01:00
public static function maxUrlLength ( $user )
2010-04-26 07:01:11 +01:00
{
2013-10-06 21:35:26 +01:00
$def = common_config ( 'url' , 'maxurllength' );
2010-04-26 07:01:11 +01:00
$prefs = self :: getPrefs ( $user );
if ( empty ( $prefs )) {
return $def ;
} else {
return $prefs -> maxurllength ;
}
}
2020-06-28 23:41:46 +01:00
public static function maxNoticeLength ( $user )
2010-04-26 07:01:11 +01:00
{
$def = common_config ( 'url' , 'maxnoticelength' );
if ( $def == - 1 ) {
2013-09-25 21:48:32 +01:00
/*
* maxContent == 0 means infinite length ,
* but maxNoticeLength == 0 means " always shorten "
* so if maxContent == 0 we must set this to - 1
*/
$def = Notice :: maxContent () ? : - 1 ;
2010-04-26 07:01:11 +01:00
}
$prefs = self :: getPrefs ( $user );
if ( empty ( $prefs )) {
return $def ;
} else {
return $prefs -> maxnoticelength ;
}
}
2020-06-28 23:41:46 +01:00
public static function urlShorteningService ( $user )
2010-04-26 07:37:41 +01:00
{
$def = common_config ( 'url' , 'shortener' );
$prefs = self :: getPrefs ( $user );
if ( empty ( $prefs )) {
if ( ! empty ( $user )) {
return $user -> urlshorteningservice ;
} else {
return $def ;
}
} else {
return $prefs -> urlshorteningservice ;
}
}
2020-06-28 23:41:46 +01:00
public static function getPrefs ( $user )
2010-04-26 07:01:11 +01:00
{
if ( empty ( $user )) {
return null ;
}
2013-08-18 12:04:58 +01:00
$prefs = User_urlshortener_prefs :: getKV ( 'user_id' , $user -> id );
2010-04-26 07:01:11 +01:00
return $prefs ;
}
2010-04-24 18:40:10 +01:00
}