forked from GNUsocial/gnu-social
de55d8f83b
lib/plugin.php now has a parent onAutoload function that finds most common files that are used in plugins (actions, dataobjects, forms, libs etc.) if they are put in the standardised directories ('actions', 'classes', 'forms', 'lib' and perhaps some others in the future).
81 lines
2.0 KiB
PHP
81 lines
2.0 KiB
PHP
<?php
|
|
|
|
class RawBookmarksNoticeStream extends NoticeStream
|
|
{
|
|
protected $user_id;
|
|
protected $own;
|
|
|
|
function __construct($user_id, $own)
|
|
{
|
|
$this->user_id = $user_id;
|
|
$this->own = $own;
|
|
}
|
|
|
|
function getNoticeIds($offset, $limit, $since_id, $max_id)
|
|
{
|
|
$notice = new Notice();
|
|
$qry = null;
|
|
|
|
$qry = 'SELECT notice.* FROM notice ';
|
|
$qry .= 'INNER JOIN bookmark ON bookmark.uri = notice.uri ';
|
|
$qry .= 'WHERE bookmark.profile_id = ' . $this->user_id . ' ';
|
|
$qry .= 'AND notice.is_local != ' . Notice::GATEWAY . ' ';
|
|
|
|
if ($since_id != 0) {
|
|
$qry .= 'AND notice.id > ' . $since_id . ' ';
|
|
}
|
|
|
|
if ($max_id != 0) {
|
|
$qry .= 'AND notice.id <= ' . $max_id . ' ';
|
|
}
|
|
|
|
// NOTE: we sort by bookmark time, not by notice time!
|
|
$qry .= 'ORDER BY created DESC ';
|
|
if (!is_null($offset)) {
|
|
$qry .= "LIMIT $limit OFFSET $offset";
|
|
}
|
|
|
|
$notice->query($qry);
|
|
$ids = array();
|
|
while ($notice->fetch()) {
|
|
$ids[] = $notice->id;
|
|
}
|
|
|
|
$notice->free();
|
|
unset($notice);
|
|
return $ids;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Notice stream for bookmarks
|
|
*
|
|
* @category Stream
|
|
* @package StatusNet
|
|
* @author Stephane Berube <chimo@chromic.org>
|
|
* @copyright 2011 StatusNet, Inc.
|
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
|
* @link http://status.net/
|
|
*/
|
|
|
|
class BookmarksNoticeStream extends ScopingNoticeStream
|
|
{
|
|
function __construct($user_id, $own, $profile = -1)
|
|
{
|
|
$stream = new RawBookmarksNoticeStream($user_id, $own);
|
|
|
|
if ($own) {
|
|
$key = 'bookmark:ids_by_user_own:'.$user_id;
|
|
} else {
|
|
$key = 'bookmark:ids_by_user:'.$user_id;
|
|
}
|
|
|
|
if (is_int($profile) && $profile == -1) {
|
|
$profile = Profile::current();
|
|
}
|
|
|
|
parent::__construct(new CachingNoticeStream($stream, $key),
|
|
$profile);
|
|
}
|
|
}
|