X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FProfile.php;h=db8326f0f6959dbd090e39dda6ef7bfe1f77e60e;hb=b53e1439969bfa2c0b551d8cc2fc8fe15652c62a;hp=8352861fe63089cb187f92d1cbf3bf67b1baeaee;hpb=fac9f4e5455787eab32a9f7a7176aeab84fcf483;p=quix0rs-gnu-social.git diff --git a/classes/Profile.php b/classes/Profile.php index 8352861fe6..db8326f0f6 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -30,11 +30,11 @@ class Profile extends Managed_DataObject public $__table = 'profile'; // table name public $id; // int(4) primary_key not_null public $nickname; // varchar(64) multiple_key not_null - public $fullname; // varchar(255) multiple_key - public $profileurl; // varchar(255) - public $homepage; // varchar(255) multiple_key + public $fullname; // varchar(191) multiple_key not 255 because utf8mb4 takes more space + public $profileurl; // varchar(191) not 255 because utf8mb4 takes more space + public $homepage; // varchar(191) multiple_key not 255 because utf8mb4 takes more space public $bio; // text() multiple_key - public $location; // varchar(255) multiple_key + public $location; // varchar(191) multiple_key not 255 because utf8mb4 takes more space public $lat; // decimal(10,7) public $lon; // decimal(10,7) public $location_id; // int(4) @@ -49,11 +49,11 @@ class Profile extends Managed_DataObject 'fields' => array( 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), 'nickname' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'nickname or username', 'collate' => 'utf8_general_ci'), - 'fullname' => array('type' => 'varchar', 'length' => 255, 'description' => 'display name', 'collate' => 'utf8_general_ci'), - 'profileurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL, cached so we dont regenerate'), - 'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'identifying URL', 'collate' => 'utf8_general_ci'), + 'fullname' => array('type' => 'varchar', 'length' => 191, 'description' => 'display name', 'collate' => 'utf8_general_ci'), + 'profileurl' => array('type' => 'varchar', 'length' => 191, 'description' => 'URL, cached so we dont regenerate'), + 'homepage' => array('type' => 'varchar', 'length' => 191, 'description' => 'identifying URL', 'collate' => 'utf8_general_ci'), 'bio' => array('type' => 'text', 'description' => 'descriptive biography', 'collate' => 'utf8_general_ci'), - 'location' => array('type' => 'varchar', 'length' => 255, 'description' => 'physical location', 'collate' => 'utf8_general_ci'), + 'location' => array('type' => 'varchar', 'length' => 191, 'description' => 'physical location', 'collate' => 'utf8_general_ci'), 'lat' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'latitude'), 'lon' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'longitude'), 'location_id' => array('type' => 'int', 'description' => 'location id if possible'), @@ -155,7 +155,12 @@ class Profile extends Managed_DataObject public function setOriginal($filename) { - $imagefile = new ImageFile($this->id, Avatar::path($filename)); + if ($this->isGroup()) { + // Until Group avatars are handled just like profile avatars. + return $this->getGroup()->setOriginal($filename); + } + + $imagefile = new ImageFile(null, Avatar::path($filename)); $avatar = new Avatar(); $avatar->profile_id = $this->id; @@ -838,12 +843,8 @@ class Profile extends Managed_DataObject common_debug("Updating User ({$this->id}) nickname from {$dataObject->nickname} to {$this->nickname}"); $origuser = clone($local); $local->nickname = $this->nickname; - $result = $local->updateKeys($origuser); - if ($result === false) { - common_log_db_error($local, 'UPDATE', __FILE__); - // TRANS: Server error thrown when user profile settings could not be updated. - throw new ServerException(_('Could not update user nickname.')); - } + // updateWithKeys throws exception on failure. + $local->updateWithKeys($origuser); // Clear the site owner, in case nickname changed if ($local->hasRole(Profile_role::OWNER)) { @@ -1450,6 +1451,12 @@ class Profile extends Managed_DataObject return $feed; } + public function repeatedToMe($offset=0, $limit=20, $since_id=null, $max_id=null) + { + // TRANS: Exception thrown when trying view "repeated to me". + throw new Exception(_('Not implemented since inbox change.')); + } + /* * Get a Profile object by URI. Will call external plugins for help * using the event StartGetProfileFromURI. @@ -1565,6 +1572,15 @@ class Profile extends Managed_DataObject return $this->getUser()->shortenLinks($text, $always); } + public function isPrivateStream() + { + // We only know of public remote users as of yet... + if (!$this->isLocal()) { + return false; + } + return $this->getUser()->private_stream ? true : false; + } + public function delPref($namespace, $topic) { return Profile_prefs::setData($this, $namespace, $topic, null); } @@ -1578,6 +1594,12 @@ class Profile extends Managed_DataObject } } + // The same as getPref but will fall back to common_config value for the same namespace/topic + public function getConfigPref($namespace, $topic) + { + return Profile_prefs::getConfigData($this, $namespace, $topic); + } + public function setPref($namespace, $topic, $data) { return Profile_prefs::setData($this, $namespace, $topic, $data); }