2010-04-24 18:40:10 +01:00
< ? php
/*
* StatusNet - the distributed open - source microblogging tool
* Copyright ( C ) 2010 , StatusNet , Inc .
*
* This program 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 .
*
* This program 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 this program . If not , see < http :// www . gnu . org / licenses />.
*/
if ( ! defined ( 'STATUSNET' ) && ! defined ( 'LACONICA' )) {
exit ( 1 );
}
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
public $created ; // datetime not_null default_0000-00-00%2000%3A00%3A00
public $modified ; // timestamp not_null default_CURRENT_TIMESTAMP
/* 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' ),
2011-08-22 22:52:02 +01:00
'created' => array ( 'type' => 'datetime' , 'not null' => true , 'description' => 'date this record was created' ),
'modified' => array ( 'type' => 'timestamp' , 'not null' => true , 'description' => 'date this record was modified' ),
),
'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
static function maxUrlLength ( $user )
{
$def = common_config ( 'url' , 'maxlength' );
$prefs = self :: getPrefs ( $user );
if ( empty ( $prefs )) {
return $def ;
} else {
return $prefs -> maxurllength ;
}
}
static function maxNoticeLength ( $user )
{
$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 ;
}
}
2010-04-26 07:37:41 +01:00
static function urlShorteningService ( $user )
{
$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 ;
}
}
2010-04-26 07:01:11 +01:00
static function getPrefs ( $user )
{
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
}