diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/AnonymousFave/AnonymousFavePlugin.php | 69 | ||||
-rw-r--r-- | plugins/NoticeTitle/NoticeTitlePlugin.php | 4 | ||||
-rw-r--r-- | plugins/OStatus/scripts/resub-feed.php | 4 | ||||
-rw-r--r-- | plugins/OStatus/scripts/testfeed.php | 2 |
4 files changed, 60 insertions, 19 deletions
diff --git a/plugins/AnonymousFave/AnonymousFavePlugin.php b/plugins/AnonymousFave/AnonymousFavePlugin.php index 6561114ba..96edf82e1 100644 --- a/plugins/AnonymousFave/AnonymousFavePlugin.php +++ b/plugins/AnonymousFave/AnonymousFavePlugin.php @@ -1,11 +1,19 @@ <?php - /** * StatusNet - the distributed open-source microblogging tool * Copyright (C) 2010, StatusNet, Inc. * * A plugin to allow anonymous users to favorite notices * + * If you want to keep certain users from having anonymous faving for their + * notices initialize the plugin with the restricted array, e.g.: + * + * addPlugin( + * 'AnonymousFave', + * array('restricted' => array('spock', 'kirk', 'bones')) + * ); + * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -48,7 +56,13 @@ define('ANONYMOUS_FAVE_PLUGIN_VERSION', '0.1'); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ -class AnonymousFavePlugin extends Plugin { + +class AnonymousFavePlugin extends Plugin +{ + + // Array of users who should not have anon faving. The default is + // that anonymous faving is allowed for all users. + public $restricted = array(); function onArgsInitialize() { // We always want a session because we're tracking anon users @@ -128,16 +142,16 @@ class AnonymousFavePlugin extends Plugin { } } - function onStartInitializeRouter($m) { - + function onStartInitializeRouter($m) + { $m->connect('main/anonfavor', array('action' => 'AnonFavor')); $m->connect('main/anondisfavor', array('action' => 'AnonDisFavor')); return true; } - function onStartShowNoticeOptions($item) { - + function onStartShowNoticeOptions($item) + { if (!common_logged_in()) { $item->out->elementStart('div', 'notice-options'); $item->showFaveForm(); @@ -147,9 +161,9 @@ class AnonymousFavePlugin extends Plugin { return true; } - function onStartShowFaveForm($item) { - - if (!common_logged_in()) { + function onStartShowFaveForm($item) + { + if (!common_logged_in() && $this->hasAnonFaving($item)) { $profile = AnonymousFavePlugin::getAnonProfile(); if (!empty($profile)) { @@ -188,9 +202,13 @@ class AnonymousFavePlugin extends Plugin { 'class' => 'notice-tally' ) ); - // TRANS: Tally for number of times a notice was favored. - // TRANS: %d is the number of times a notice was favored. - $out->raw(sprintf(_m("favored once", "favored %d times", $tally->count), $tally->count)); + $out->elementStart('span', array('class' => 'fave-tally-title')); + // TRANS: Label for tally for number of times a notice was favored. + $out->raw(sprintf(_m("Favored"))); + $out->elementEnd('span'); + $out->elementStart('span', array('class' => 'fave-tally')); + $out->raw($tally->count); + $out->elementEnd('span'); $out->elementEnd('div'); } } @@ -205,8 +223,8 @@ class AnonymousFavePlugin extends Plugin { $tally = Fave_tally::decrement($notice->id); } - static function createAnonProfile() { - + static function createAnonProfile() + { // Get the anon user's IP, and turn it into a nickname list($proxy, $ip) = common_client_ip(); @@ -244,7 +262,8 @@ class AnonymousFavePlugin extends Plugin { return $profile; } - static function getAnonProfile() { + static function getAnonProfile() + { $token = $_SESSION['anon_token']; $anon = base64_decode($token); @@ -266,6 +285,26 @@ class AnonymousFavePlugin extends Plugin { } /** + * Determine whether a given NoticeListItem should have the + * anonymous fave/disfave form + * + * @param NoticeListItem $item + * + * @return boolean false if the profile associated with the notice is + * in the list of restricted profiles, otherwise + * return true + */ + function hasAnonFaving($item) + { + $profile = Profile::staticGet('id', $item->notice->profile_id); + if (in_array($profile->nickname, $this->restricted)) { + return false; + } + + return true; + } + + /** * Provide plugin version information. * * This data is used when showing the version page. diff --git a/plugins/NoticeTitle/NoticeTitlePlugin.php b/plugins/NoticeTitle/NoticeTitlePlugin.php index 269f06189..a3b4489f2 100644 --- a/plugins/NoticeTitle/NoticeTitlePlugin.php +++ b/plugins/NoticeTitle/NoticeTitlePlugin.php @@ -221,7 +221,9 @@ class NoticeTitlePlugin extends Plugin $title = Notice_title::fromNotice($nli->notice); if (!empty($title)) { - $nli->out->element('h4', array('class' => 'notice_title'), $title); + $nli->out->elementStart('h4', array('class' => 'notice_title')); + $nli->out->element('a', array('href' => $nli->notice->bestUrl()), $title); + $nli->out->elementEnd('h4'); } return true; diff --git a/plugins/OStatus/scripts/resub-feed.php b/plugins/OStatus/scripts/resub-feed.php index 121d12109..8803c0118 100644 --- a/plugins/OStatus/scripts/resub-feed.php +++ b/plugins/OStatus/scripts/resub-feed.php @@ -38,7 +38,7 @@ if (empty($args[0]) || !Validate::uri($args[0])) { $feedurl = $args[0]; -$sub = FeedSub::staticGet('topic', $feedurl); +$sub = FeedSub::staticGet('uri', $feedurl); if (!$sub) { print "Feed $feedurl is not subscribed.\n"; exit(1); @@ -57,7 +57,7 @@ if ($ok) { print "Could not confirm.\n"; } -$sub2 = FeedSub::staticGet('topic', $feedurl); +$sub2 = FeedSub::staticGet('uri', $feedurl); print "\n"; print "New state:\n"; diff --git a/plugins/OStatus/scripts/testfeed.php b/plugins/OStatus/scripts/testfeed.php index 82a1c6586..149bcc343 100644 --- a/plugins/OStatus/scripts/testfeed.php +++ b/plugins/OStatus/scripts/testfeed.php @@ -45,7 +45,7 @@ $skip = have_option('skip') ? intval(get_option_value('skip')) : 0; $count = have_option('count') ? intval(get_option_value('count')) : 0; -$sub = FeedSub::staticGet('topic', $feedurl); +$sub = FeedSub::staticGet('uri', $feedurl); if (!$sub) { print "Feed $feedurl is not subscribed.\n"; exit(1); |