X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FUser_urlshortener_prefs.php;h=a9a70112c7b15e9428c81f9376a920b3cb9a37d5;hb=e8d1bb25469fe1ef0cbcb32c3022010997aca4b0;hp=aef39e3719e1c3aed3acdf3a9e22917c3f56b51f;hpb=d259c37ad231ca0010c60e5cfd397bb1732874a4;p=quix0rs-gnu-social.git diff --git a/classes/User_urlshortener_prefs.php b/classes/User_urlshortener_prefs.php old mode 100755 new mode 100644 index aef39e3719..a9a70112c7 --- a/classes/User_urlshortener_prefs.php +++ b/classes/User_urlshortener_prefs.php @@ -21,7 +21,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -class User_urlshortener_prefs extends Memcached_DataObject +class User_urlshortener_prefs extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -34,14 +34,88 @@ class User_urlshortener_prefs extends Memcached_DataObject public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 public $modified; // timestamp not_null default_CURRENT_TIMESTAMP - /* Static get */ - function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_urlshortener_prefs',$k,$v); } - /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function sequenceKey() + public static function schemaDef() + { + 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'), + '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'), + + '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')), + ), + ); + } + + static function maxUrlLength($user) + { + $def = common_config('url', 'maxurllength'); + + $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) { + /* + * 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; + } + + $prefs = self::getPrefs($user); + + if (empty($prefs)) { + return $def; + } else { + return $prefs->maxnoticelength; + } + } + + static function urlShorteningService($user) { - return array(false, false, false); + $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; + } + } + + static function getPrefs($user) + { + if (empty($user)) { + return null; + } + + $prefs = User_urlshortener_prefs::getKV('user_id', $user->id); + + return $prefs; } }