);
}
- protected $_profile = null;
+ protected $_profile = array();
/**
* @return Profile
*
- * @throws UserNoProfileException if user has no profile
+ * @throws GroupNoProfileException if user has no profile
*/
public function getProfile()
{
- if (!($this->_profile instanceof Profile)) {
- $this->_profile = Profile::getKV('id', $this->profile_id);
- if (!($this->_profile instanceof Profile)) {
- throw new GroupNoProfileException($this);
+ if (!isset($this->_profile[$this->profile_id])) {
+ $profile = Profile::getKV('id', $this->profile_id);
+
+ if (!$profile instanceof Profile) {
+
+ $profile = new Profile();
+ $profile->nickname = $this->nickname;
+ $profile->fullname = $this->fullname;
+ $profile->profileurl = $this->mainpage;
+ $profile->homepage = $this->homepage;
+ $profile->bio = $this->description;
+ $profile->location = $this->location;
+ $profile->created = common_sql_now();
+ $this->profile_id = $profile->insert();
+
+ //throw new GroupNoProfileException($this);
}
+
+ $this->_profile[$this->profile_id] = $profile;
}
+ return $this->_profile[$this->profile_id];
+ }
- return $this->_profile;
+ public function getNickname()
+ {
+ return $this->getProfile()->getNickname();
}
public static function defaultLogo($size)
// normally stored in mainpage, but older ones may be null
if (!empty($this->mainpage)) {
$url = $this->mainpage;
- } else {
+ } elseif ($this->isLocal()) {
$url = common_local_url('showgroup',
array('nickname' => $this->nickname));
}
if (Event::handle('StartUserGroupGetUri', array($this, &$uri))) {
if (!empty($this->uri)) {
$uri = $this->uri;
- } else {
+ } elseif ($this->isLocal()) {
$uri = common_local_url('groupbyid',
array('id' => $this->id));
}
{
$url = null;
if (Event::handle('StartUserGroupPermalink', array($this, &$url))) {
- $url = common_local_url('groupbyid',
- array('id' => $this->id));
+ if ($this->isLocal()) {
+ $url = common_local_url('groupbyid',
+ array('id' => $this->id));
+ }
}
Event::handle('EndUserGroupPermalink', array($this, &$url));
return $url;
// or we'll miss clearing some cache keys; that can make it hard
// to create a new group with one of those names or aliases.
$this->setAliases(array());
+
+ // $this->isLocal() but we're using the resulting object
$local = Local_group::getKV('group_id', $this->id);
if ($local instanceof Local_group) {
$local->delete();
$this->force_scope == 1);
}
+ public function isLocal()
+ {
+ $local = Local_group::getKV('group_id', $this->id);
+ return ($local instanceof Local_group);
+ }
+
static function groupsFromText($text, Profile $profile)
{
$groups = array();