X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FDirectory%2Flib%2Fsortablesubscriptionlist.php;h=7e9c3103583767ab350717d36407e2df1d913b1d;hb=3f28b17c86c4cd88d4f39629ea8a89ec3a820790;hp=a22aeadb3d25873337abd7012ec328afaa068e87;hpb=52df926b8d7d1c284bc4f6dcf6ce4d8a74730087;p=quix0rs-gnu-social.git diff --git a/plugins/Directory/lib/sortablesubscriptionlist.php b/plugins/Directory/lib/sortablesubscriptionlist.php index a22aeadb3d..7e9c310358 100644 --- a/plugins/Directory/lib/sortablesubscriptionlist.php +++ b/plugins/Directory/lib/sortablesubscriptionlist.php @@ -1,5 +1,4 @@ out->elementStart('tr'); $tableHeaders = array( + // TRANS: Column header in table for user nickname. 'nickname' => _m('Nickname'), + // TRANS: Column header in table for timestamp when user was created. 'created' => _m('Created') ); foreach ($tableHeaders as $id => $label) { - $attrs = array('id' => $id); + $attrs = array('id' => $id); $current = (!empty($this->action->sort) && $this->action->sort == $id); if ($current || empty($this->action->sort) && $id == 'nickname') { $attrs['class'] = 'current'; } - if ($current && !$this->action->boolean('asc')) { - $attrs['class'] .= ' asc'; + if ($current && $this->action->reverse) { + $attrs['class'] .= ' reverse'; $attrs['class'] = trim($attrs['class']); } @@ -86,8 +86,12 @@ class SortableSubscriptionList extends SubscriptionList $linkAttrs = array(); $params = array('sort' => $id); - if ($current && !$this->action->boolean('asc')) { - $params['asc'] = "true"; + if (!empty($this->action->q)) { + $params['q'] = $this->action->q; + } + + if ($current && !$this->action->reverse) { + $params['reverse'] = 'true'; } $args = array(); @@ -106,9 +110,11 @@ class SortableSubscriptionList extends SubscriptionList $this->out->elementEnd('th'); } - $this->out->element('th', array('id' => 'subscriptions'), 'Subscriptions'); - $this->out->element('th', array('id' => 'notices'), 'Notices'); - //$this->out->element('th', array('id' => 'controls'), 'Controls'); + // TRANS: Column header for number of subscriptions. + $this->out->element('th', array('id' => 'subscriptions'), _m('Subscriptions')); + // TRANS: Column header for number of notices. + $this->out->element('th', array('id' => 'notices'), _m('Notices')); + $this->out->element('th', array('id' => 'controls'), null); $this->out->elementEnd('tr'); $this->out->elementEnd('thead'); @@ -124,24 +130,28 @@ class SortableSubscriptionList extends SubscriptionList function showProfiles() { - $cnt = 0; + // Note: we don't use fetchAll() because it's borked with query() + + $profiles = array(); while ($this->profile->fetch()) { - $cnt++; - if($cnt > PROFILES_PER_PAGE) { - break; - } + $profiles[] = clone($this->profile); + } - $odd = ($cnt % 2 == 0); // for zebra striping + $cnt = count($profiles); - $pli = $this->newListItem($this->profile, $odd); + $max = min($cnt, $this->maxProfiles()); + + for ($i = 0; $i < $max; $i++) { + $odd = ($i % 2 == 0); // for zebra striping + $pli = $this->newListItem($profiles[$i], $odd); $pli->show(); } return $cnt; } - function newListItem($profile, $odd) + function newListItem(Profile $profile, $odd) { return new SortableSubscriptionListItem($profile, $this->owner, $this->action, $odd); } @@ -181,7 +191,7 @@ class SortableSubscriptionListItem extends SubscriptionListItem function startProfile() { - $this->out->elementStart('td', 'entity_profile vcard entry-content'); + $this->out->elementStart('td', 'entity_profile h-card'); } function endProfile() @@ -197,6 +207,18 @@ class SortableSubscriptionListItem extends SubscriptionListItem function endActions() { + + // delete button + $cur = common_current_user(); + list($action, $r2args) = $this->out->returnToArgs(); + $r2args['action'] = $action; + if ($cur instanceof User && $cur->hasRight(Right::DELETEUSER)) { + $this->out->elementStart('li', 'entity_delete'); + $df = new DeleteUserForm($this->out, $this->profile, $r2args); + $df->show(); + $this->out->elementEnd('li'); + } + $this->out->elementEnd('ul'); $this->out->elementEnd('td'); } @@ -245,6 +267,27 @@ class SortableSubscriptionListItem extends SubscriptionListItem $this->out->elementEnd('td'); } + /** + * Overrided to truncate the bio if it's real long, because it + * looks better that way in the SortableSubscriptionList's table + */ + function showBio() + { + if (!empty($this->profile->bio)) { + $cutoff = 140; // XXX Should this be configurable? + $bio = htmlspecialchars($this->profile->bio); + + if (mb_strlen($bio) > $cutoff) { + $bio = mb_substr($bio, 0, $cutoff - 1) + .'…'; + } + + $this->out->elementStart('p', 'note'); + $this->out->raw($bio); + $this->out->elementEnd('p'); + } + } + /** * Only show the tags if we're logged in */ @@ -255,5 +298,4 @@ class SortableSubscriptionListItem extends SubscriptionListItem } } - }