X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Ftoselector.php;h=153d9001b54aef0882e291168083db9882d01638;hb=b596391fcd05dddc8c37495b663d3be074eac05d;hp=6dd4b5c9f4bfaa174f4d7db8ac18fe5d78428b12;hpb=e862dcdb8a9cfc21cf00513d76f40d20dd3b1b7a;p=quix0rs-gnu-social.git diff --git a/lib/toselector.php b/lib/toselector.php index 6dd4b5c9f4..153d9001b5 100644 --- a/lib/toselector.php +++ b/lib/toselector.php @@ -4,7 +4,7 @@ * Copyright (C) 2011, StatusNet, Inc. * * Widget showing a drop-down of potential addressees - * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -44,7 +44,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class ToSelector extends Widget { protected $user; @@ -84,15 +83,17 @@ class ToSelector extends Widget $default = 'public:site'; if (!common_config('site', 'private')) { - $choices['public:everyone'] = _('Everyone'); + // TRANS: Option in drop-down of potential addressees. + $choices['public:everyone'] = _m('SENDTO','Everyone'); $default = 'public:everyone'; } - // XXX: better name...? - $choices['public:site'] = sprintf(_('My colleagues at %s'), common_config('site', 'name')); - + // TRANS: Option in drop-down of potential addressees. + // TRANS: %s is a StatusNet sitename. + $choices['public:site'] = sprintf(_('Everyone at %s'), common_config('site', 'name')); + $groups = $this->user->getGroups(); - while ($groups->fetch()) { + while ($groups instanceof User_group && $groups->fetch()) { $value = 'group:'.$groups->id; if (($this->to instanceof User_group) && $this->to->id == $groups->id) { $default = $value; @@ -100,7 +101,16 @@ class ToSelector extends Widget $choices[$value] = $groups->getBestName(); } - // XXX: add users...? + // Add subscribed users to dropdown menu + $users = $this->user->getSubscribed(); + while ($users->fetch()) { + $value = 'profile:'.$users->id; + if ($this->user->streamNicknames()) { + $choices[$value] = $users->getNickname(); + } else { + $choices[$value] = $users->getBestName(); + } + } if ($this->to instanceof Profile) { $value = 'profile:'.$this->to->id; @@ -109,15 +119,19 @@ class ToSelector extends Widget } $this->out->dropdown($this->id, - _('To:'), + // TRANS: Label for drop-down of potential addressees. + _m('LABEL','To:'), $choices, null, false, $default); + $this->out->elementStart('span', 'checkbox-wrapper'); $this->out->checkbox('notice_private', - _('Private'), + // TRANS: Checkbox label in widget for selecting potential addressees to mark the notice private. + _('Private?'), $this->private); + $this->out->elementEnd('span'); } static function fillOptions($action, &$options) @@ -126,6 +140,10 @@ class ToSelector extends Widget $toArg = $action->trimmed('notice_to'); $private = $action->boolean('notice_private'); + if (empty($toArg)) { + return; + } + list($prefix, $value) = explode(':', $toArg); switch ($prefix) { case 'group': @@ -135,8 +153,8 @@ class ToSelector extends Widget } break; case 'profile': - $profile = Profile::staticGet('id', $value); - $options['replies'] = $profile->getUri(); + $profile = Profile::getKV('id', $value); + $options['replies'] = array($profile->getUri()); if ($private) { $options['scope'] = Notice::ADDRESSEE_SCOPE; } @@ -149,7 +167,8 @@ class ToSelector extends Widget } break; default: - throw new ClientException('Unknown to value: ' . toArg); + // TRANS: Client exception thrown in widget for selecting potential addressees when an invalid fill option was received. + throw new ClientException(sprintf(_('Unknown to value: "%s".'),$toArg)); break; } }