X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FSubMirror%2FSubMirrorPlugin.php;h=ccb32b4a49d68a02ef16fe6780a4c35476be25a4;hb=14f03a237e1a67a764a75cfa8e6fed34f0074a4b;hp=80c6c5a88f824b8bf210d1865e8454f56294b7da;hpb=7cd0706aefd3d3eb4d70213d915651958faaadbc;p=quix0rs-gnu-social.git diff --git a/plugins/SubMirror/SubMirrorPlugin.php b/plugins/SubMirror/SubMirrorPlugin.php index 80c6c5a88f..ccb32b4a49 100644 --- a/plugins/SubMirror/SubMirrorPlugin.php +++ b/plugins/SubMirror/SubMirrorPlugin.php @@ -17,14 +17,12 @@ * along with this program. If not, see . */ +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + /** * @package SubMirrorPlugin * @maintainer Brion Vibber */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - - class SubMirrorPlugin extends Plugin { /** @@ -37,6 +35,9 @@ class SubMirrorPlugin extends Plugin { $m->connect('settings/mirror', array('action' => 'mirrorsettings')); + $m->connect('settings/mirror/add/:provider', + array('action' => 'mirrorsettings'), + array('provider' => '[A-Za-z0-9_-]+')); $m->connect('settings/mirror/add', array('action' => 'addmirror')); $m->connect('settings/mirror/edit', @@ -89,21 +90,22 @@ class SubMirrorPlugin extends Plugin 'author' => 'Brion Vibber', 'homepage' => 'http://status.net/wiki/Plugin:SubMirror', 'rawdescription' => + // TRANS: Plugin description. _m('Pull feeds into your timeline!')); return true; } /** - * Menu item for settings + * Menu item for personal subscriptions/groups area * - * @param Action &$action Action being executed + * @param Widget $widget Widget being executed * * @return boolean hook return */ - - function onEndAccountSettingsNav(&$action) + function onEndSubGroupNav($widget) { + $action = $widget->out; $action_name = $action->trimmed('action'); $action->menuItem(common_local_url('mirrorsettings'), @@ -165,4 +167,38 @@ class SubMirrorPlugin extends Plugin } return true; } + + /** + * Add a count of mirrored feeds into a user's profile sidebar stats. + * + * @param Profile $profile + * @param array $stats + * @return boolean hook return value + */ + function onProfileStats($profile, &$stats) + { + $cur = common_current_user(); + if (!empty($cur) && $cur->id == $profile->id) { + $mirror = new SubMirror(); + $mirror->subscriber = $profile->id; + $entry = array( + 'id' => 'mirrors', + // TRANS: Label in profile statistics section, followed by a count. + 'label' => _m('Mirrored feeds'), + 'link' => common_local_url('mirrorsettings'), + 'value' => $mirror->count(), + ); + + $insertAt = count($stats); + foreach ($stats as $i => $row) { + if ($row['id'] == 'groups') { + // Slip us in after them. + $insertAt = $i + 1; + break; + } + } + array_splice($stats, $insertAt, 0, array($entry)); + } + return true; + } }