'Record for a user group on the local site, with some additional info not in user_group', 'fields' => array( 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group represented'), 'nickname' => array('type' => 'varchar', 'length' => 64, 'description' => 'group represented'), '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('group_id'), 'foreign keys' => array( 'local_group_group_id_fkey' => array('user_group', array('group_id' => 'id')), ), 'unique keys' => array( 'local_group_nickname_key' => array('nickname'), ), ); } public function getProfile() { $group = $this->getGroup(); if (!$group instanceof User_group) { return null; // TODO: Throw exception when other code is ready } return $group->getProfile(); } public function getGroup() { return User_group::getKV('id', $this->group_id); } function setNickname($nickname) { $this->decache(); $qry = 'UPDATE local_group set nickname = "'.$this->escape($nickname).'" where group_id = ' . $this->group_id; $result = $this->query($qry); if ($result) { $this->nickname = $nickname; $this->fixupTimestamps(); $this->encache(); } else { common_log_db_error($local, 'UPDATE', __FILE__); // TRANS: Server exception thrown when updating a local group fails. throw new ServerException(_('Could not update local group.')); } return $result; } }