X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FProfile_prefs.php;h=27034390f848d4293ff35f701b95d2ac2ef57a77;hb=c1ac189951219e0dc06e2b3dc3bca97133921d7a;hp=37ccf4fb9677263aceca5e31f6071282eb4f6680;hpb=220b51d8be61e9bd316567f3ad03fffdbc4b7526;p=quix0rs-gnu-social.git diff --git a/classes/Profile_prefs.php b/classes/Profile_prefs.php index 37ccf4fb96..27034390f8 100644 --- a/classes/Profile_prefs.php +++ b/classes/Profile_prefs.php @@ -31,8 +31,8 @@ class Profile_prefs extends Managed_DataObject { public $__table = 'profile_prefs'; // table name public $profile_id; // int(4) primary_key not_null - public $namespace; // varchar(255) not_null - public $topic; // varchar(255) not_null + public $namespace; // varchar(191) not_null + public $topic; // varchar(191) not_null public $data; // text public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 public $modified; // timestamp not_null default_CURRENT_TIMESTAMP @@ -42,8 +42,8 @@ class Profile_prefs extends Managed_DataObject return array( 'fields' => array( 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'user'), - 'namespace' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'namespace, like pluginname or category'), - 'topic' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'preference key, i.e. description, age...'), + 'namespace' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'namespace, like pluginname or category'), + 'topic' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'preference key, i.e. description, age...'), 'data' => array('type' => 'blob', 'description' => 'topic data, may be anything'), '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'), @@ -112,8 +112,17 @@ class Profile_prefs extends Managed_DataObject return $pref; } - static function getData(Profile $profile, $namespace, $topic) { - $pref = self::getTopic($profile, $namespace, $topic); + static function getData(Profile $profile, $namespace, $topic, $def=null) { + try { + $pref = self::getTopic($profile, $namespace, $topic); + } catch (NoResultException $e) { + if ($def === null) { + // If no default value was set, continue the exception. + throw $e; + } + // If there was a default value, return that. + return $def; + } return $pref->data; } @@ -159,6 +168,7 @@ class Profile_prefs extends Managed_DataObject $pref->namespace = $namespace; $pref->topic = $topic; $pref->data = $data; + $pref->created = common_sql_now(); if ($pref->insert() === false) { throw new ServerException('Could not save profile preference.');