X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fnoticelistactorsitem.php;fp=lib%2Fnoticelistactorsitem.php;h=fb07a66a9639dfcc9f0bb743b81c2931131e4fa9;hb=fcdd061b4f89d04889025c516f98c9eead53ad1a;hp=0000000000000000000000000000000000000000;hpb=29730b6ca7e23d5686491a39ba3464a38d4313a0;p=quix0rs-gnu-social.git diff --git a/lib/noticelistactorsitem.php b/lib/noticelistactorsitem.php new file mode 100644 index 0000000000..fb07a66a96 --- /dev/null +++ b/lib/noticelistactorsitem.php @@ -0,0 +1,84 @@ +. + */ + +if (!defined('GNUSOCIAL')) { exit(1); } + +/** + * Placeholder for showing faves... + */ +abstract class NoticeListActorsItem extends NoticeListItem +{ + /** + * @return array of profile IDs + */ + abstract function getProfiles(); + + abstract function getListMessage($count, $you); + + function show() + { + $links = array(); + $you = false; + $cur = common_current_user(); + foreach ($this->getProfiles() as $id) { + if ($cur && $cur->id == $id) { + $you = true; + // TRANS: Reference to the logged in user in favourite list. + array_unshift($links, _m('FAVELIST', 'You')); + } else { + $profile = Profile::getKV('id', $id); + if ($profile instanceof Profile) { + $links[] = sprintf('%s', + htmlspecialchars($profile->getUrl()), + htmlspecialchars($profile->getBestName())); + } + } + } + + if ($links) { + $count = count($links); + $msg = $this->getListMessage($count, $you); + $out = sprintf($msg, $this->magicList($links)); + + $this->showStart(); + $this->out->raw($out); + $this->showEnd(); + return $count; + } else { + return 0; + } + } + + function magicList($items) + { + if (count($items) == 0) { + return ''; + } else if (count($items) == 1) { + return $items[0]; + } else { + $first = array_slice($items, 0, -1); + $last = array_slice($items, -1, 1); + // TRANS: Separator in list of user names like "Jim, Bob, Mary". + $separator = _(', '); + // TRANS: For building a list such as "Jim, Bob, Mary and 5 others like this". + // TRANS: %1$s is a list of users, separated by a separator (default: ", "), %2$s is the last user in the list. + return sprintf(_m('FAVELIST', '%1$s and %2$s'), implode($separator, $first), implode($separator, $last)); + } + } +}