forked from GNUsocial/gnu-social
Merge branch 'testing' into 0.9.x
This commit is contained in:
commit
e4d934827b
|
@ -184,13 +184,21 @@ class NewnoticeAction extends Action
|
||||||
|
|
||||||
$options = array('reply_to' => ($replyto == 'false') ? null : $replyto);
|
$options = array('reply_to' => ($replyto == 'false') ? null : $replyto);
|
||||||
|
|
||||||
if ($user->shareLocation() && $this->arg('notice_data-geo')) {
|
if ($user->shareLocation()) {
|
||||||
|
// use browser data if checked; otherwise profile data
|
||||||
$locOptions = Notice::locationOptions($this->trimmed('lat'),
|
if ($this->arg('notice_data-geo')) {
|
||||||
$this->trimmed('lon'),
|
$locOptions = Notice::locationOptions($this->trimmed('lat'),
|
||||||
$this->trimmed('location_id'),
|
$this->trimmed('lon'),
|
||||||
$this->trimmed('location_ns'),
|
$this->trimmed('location_id'),
|
||||||
$user->getProfile());
|
$this->trimmed('location_ns'),
|
||||||
|
$user->getProfile());
|
||||||
|
} else {
|
||||||
|
$locOptions = Notice::locationOptions(null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
$user->getProfile());
|
||||||
|
}
|
||||||
|
|
||||||
$options = array_merge($options, $locOptions);
|
$options = array_merge($options, $locOptions);
|
||||||
}
|
}
|
||||||
|
@ -201,8 +209,6 @@ class NewnoticeAction extends Action
|
||||||
$upload->attachToNotice($notice);
|
$upload->attachToNotice($notice);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($this->boolean('ajax')) {
|
if ($this->boolean('ajax')) {
|
||||||
header('Content-Type: text/xml;charset=utf-8');
|
header('Content-Type: text/xml;charset=utf-8');
|
||||||
$this->xw->startDocument('1.0', 'UTF-8');
|
$this->xw->startDocument('1.0', 'UTF-8');
|
||||||
|
|
|
@ -96,12 +96,23 @@ class Inbox extends Memcached_DataObject
|
||||||
$inbox = new Inbox();
|
$inbox = new Inbox();
|
||||||
|
|
||||||
$inbox->user_id = $user_id;
|
$inbox->user_id = $user_id;
|
||||||
$inbox->notice_ids = call_user_func_array('pack', array_merge(array('N*'), $ids));
|
$inbox->pack($ids);
|
||||||
$inbox->fake = true;
|
$inbox->fake = true;
|
||||||
|
|
||||||
return $inbox;
|
return $inbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Append the given notice to the given user's inbox.
|
||||||
|
* Caching updates are managed for the inbox itself.
|
||||||
|
*
|
||||||
|
* If the notice is already in this inbox, the second
|
||||||
|
* add will be silently dropped.
|
||||||
|
*
|
||||||
|
* @param int @user_id
|
||||||
|
* @param int $notice_id
|
||||||
|
* @return boolean success
|
||||||
|
*/
|
||||||
static function insertNotice($user_id, $notice_id)
|
static function insertNotice($user_id, $notice_id)
|
||||||
{
|
{
|
||||||
$inbox = DB_DataObject::staticGet('inbox', 'user_id', $user_id);
|
$inbox = DB_DataObject::staticGet('inbox', 'user_id', $user_id);
|
||||||
|
@ -114,6 +125,13 @@ class Inbox extends Memcached_DataObject
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$ids = $inbox->unpack();
|
||||||
|
if (in_array(intval($notice_id), $ids)) {
|
||||||
|
// Already in there, we probably re-ran some inbox adds
|
||||||
|
// due to an error. Skip the dupe silently.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
$result = $inbox->query(sprintf('UPDATE inbox '.
|
$result = $inbox->query(sprintf('UPDATE inbox '.
|
||||||
'set notice_ids = concat(cast(0x%08x as binary(4)), '.
|
'set notice_ids = concat(cast(0x%08x as binary(4)), '.
|
||||||
'substr(notice_ids, 1, %d)) '.
|
'substr(notice_ids, 1, %d)) '.
|
||||||
|
@ -150,7 +168,7 @@ class Inbox extends Memcached_DataObject
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$ids = unpack('N*', $inbox->notice_ids);
|
$ids = $inbox->unpack();
|
||||||
|
|
||||||
if (!empty($since_id)) {
|
if (!empty($since_id)) {
|
||||||
$newids = array();
|
$newids = array();
|
||||||
|
@ -229,4 +247,21 @@ class Inbox extends Memcached_DataObject
|
||||||
}
|
}
|
||||||
return new ArrayWrapper($items);
|
return new ArrayWrapper($items);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saves a list of integer notice_ids into a packed blob in this object.
|
||||||
|
* @param array $ids list of integer notice_ids
|
||||||
|
*/
|
||||||
|
protected function pack(array $ids)
|
||||||
|
{
|
||||||
|
$this->notice_ids = call_user_func_array('pack', array_merge(array('N*'), $ids));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array of integer notice_ids
|
||||||
|
*/
|
||||||
|
protected function unpack()
|
||||||
|
{
|
||||||
|
return unpack('N*', $this->notice_ids);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -340,8 +340,9 @@ class NoticeListItem extends Widget
|
||||||
|
|
||||||
function showNickname()
|
function showNickname()
|
||||||
{
|
{
|
||||||
$this->out->element('span', array('class' => 'nickname fn'),
|
$this->out->raw('<span class="nickname fn">' .
|
||||||
$this->profile->nickname);
|
htmlspecialchars($this->profile->nickname) .
|
||||||
|
'</span>');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue