diff options
author | Zach Copley <zach@controlyourself.ca> | 2009-07-03 15:42:55 -0700 |
---|---|---|
committer | Zach Copley <zach@controlyourself.ca> | 2009-07-03 15:42:55 -0700 |
commit | 2881b553fec5167c8252f7c55247345e1af11be5 (patch) | |
tree | 60e215fb1e5eaa4e566f7b197f6ae10ffc3e4345 | |
parent | c02acd7341cc3104b75a56e0b8dfd4811e77e278 (diff) | |
parent | 088fa6befcf93607020fa2c77fcfdc952239efb8 (diff) |
Merge branch '0.8.x' of git@gitorious.org:laconica/dev into 0.8.x
* '0.8.x' of git@gitorious.org:laconica/dev:
null for both args in conversation
no limit on conversation stream
fixed limit for conversations
only show subscribe button in profile list for local users
move peoplesearchresults class to action/peoplesearch
only show subscription controls to owner
-rw-r--r-- | actions/conversation.php | 5 | ||||
-rw-r--r-- | actions/peoplesearch.php | 44 | ||||
-rw-r--r-- | actions/subscriptions.php | 5 | ||||
-rw-r--r-- | classes/Notice.php | 1 | ||||
-rw-r--r-- | lib/peoplesearchresults.php | 80 | ||||
-rw-r--r-- | lib/profilelist.php | 21 |
6 files changed, 66 insertions, 90 deletions
diff --git a/actions/conversation.php b/actions/conversation.php index 468409189..0eb0d86d6 100644 --- a/actions/conversation.php +++ b/actions/conversation.php @@ -31,6 +31,9 @@ if (!defined('LACONICA')) { exit(1); } +// XXX: not sure how to do paging yet, +// so set a 60-notice limit + require_once INSTALLDIR.'/lib/noticelist.php'; /** @@ -107,7 +110,7 @@ class ConversationAction extends Action function showContent() { - $notices = Notice::conversationStream($this->id, null); + $notices = Notice::conversationStream($this->id, null, null); $ct = new ConversationTree($notices, $this); diff --git a/actions/peoplesearch.php b/actions/peoplesearch.php index c61e0e273..60ddb6a82 100644 --- a/actions/peoplesearch.php +++ b/actions/peoplesearch.php @@ -87,3 +87,47 @@ class PeoplesearchAction extends SearchAction } } +/** + * People search results class + * + * Derivative of ProfileList with specialization for highlighting search terms. + * + * @category Widget + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Robin Millette <millette@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://laconi.ca/ + * + * @see PeoplesearchAction + */ + +class PeopleSearchResults extends ProfileList +{ + var $terms = null; + var $pattern = null; + + function __construct($profile, $terms, $action) + { + parent::__construct($profile, $action); + + $this->terms = array_map('preg_quote', + array_map('htmlspecialchars', $terms)); + + $this->pattern = '/('.implode('|',$terms).')/i'; + } + + function newProfileItem($profile) + { + return new PeopleSearchResultItem($profile, $this->action); + } +} + +class PeopleSearchResultItem extends ProfileListItem +{ + function highlight($text) + { + return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text)); + } +} + diff --git a/actions/subscriptions.php b/actions/subscriptions.php index 4124abea4..42bdae10f 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -159,7 +159,10 @@ class SubscriptionsListItem extends SubscriptionListItem $this->showBio(); $this->showTags(); // Relevant portion! - $this->showOwnerControls(); + $cur = common_current_user(); + if (!empty($cur) && $cur->id == $this->owner->id) { + $this->showOwnerControls(); + } $this->endProfile(); } diff --git a/classes/Notice.php b/classes/Notice.php index 2ba2f31b1..8a018068a 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1187,6 +1187,7 @@ class Notice extends Memcached_DataObject if (empty($cache) || $since_id != 0 || $max_id != 0 || (!is_null($since) && $since > 0) || + is_null($limit) || ($offset + $limit) > NOTICE_CACHE_WINDOW) { return call_user_func_array($fn, array_merge($args, array($offset, $limit, $since_id, $max_id, $since))); diff --git a/lib/peoplesearchresults.php b/lib/peoplesearchresults.php deleted file mode 100644 index 9f6696b5f..000000000 --- a/lib/peoplesearchresults.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * People search results class - * - * PHP version 5 - * - * @category Widget - * @package Laconica - * @author Evan Prodromou <evan@controlyourself.ca> - * @author Robin Millette <millette@controlyourself.ca> - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://laconi.ca/ - * - * Laconica - a distributed open-source microblogging tool - * Copyright (C) 2008, 2009, Control Yourself, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -if (!defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/profilelist.php'; - -/** - * People search results class - * - * Derivative of ProfileList with specialization for highlighting search terms. - * - * @category Widget - * @package Laconica - * @author Evan Prodromou <evan@controlyourself.ca> - * @author Robin Millette <millette@controlyourself.ca> - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://laconi.ca/ - * - * @see PeoplesearchAction - */ - -class PeopleSearchResults extends ProfileList -{ - var $terms = null; - var $pattern = null; - - function __construct($profile, $terms, $action) - { - parent::__construct($profile, $action); - - $this->terms = array_map('preg_quote', - array_map('htmlspecialchars', $terms)); - - $this->pattern = '/('.implode('|',$terms).')/i'; - } - - function newProfileItem($profile) - { - return new PeopleSearchResultItem($profile, $this->action); - } -} - -class PeopleSearchResultItem extends ProfileListItem -{ - function highlight($text) - { - return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text)); - } -} - diff --git a/lib/profilelist.php b/lib/profilelist.php index a604230f8..e13d56a9a 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -243,15 +243,20 @@ class ProfileListItem extends Widget $user = common_current_user(); if (!empty($user) && $this->profile->id != $user->id) { - $this->out->elementStart('li', 'entity_subscribe'); - if ($user->isSubscribed($this->profile)) { - $usf = new UnsubscribeForm($this->out, $this->profile); - $usf->show(); - } else { - $sf = new SubscribeForm($this->out, $this->profile); - $sf->show(); + // Is it a local user? can't remote sub from a list + // XXX: make that possible! + $other = User::staticGet('id', $this->profile->id); + if (!empty($other)) { + $this->out->elementStart('li', 'entity_subscribe'); + if ($user->isSubscribed($this->profile)) { + $usf = new UnsubscribeForm($this->out, $this->profile); + $usf->show(); + } else { + $sf = new SubscribeForm($this->out, $this->profile); + $sf->show(); + } + $this->out->elementEnd('li'); } - $this->out->elementEnd('li'); } } |