Update translator documentation.

Whitespace updates.
Header updates.
Break long lines in README.
Indentation updates.
This commit is contained in:
Siebrand Mazeland 2011-04-08 18:46:41 +02:00
parent b77531897a
commit ea82086297
20 changed files with 140 additions and 109 deletions

View File

@ -1,11 +1,11 @@
<?php
/*
StatusNet Plugin: 0.9
Plugin Name: FirePHP
Description: Sends StatusNet log output to FirePHP
Version: 0.1
Author: Craig Andrews <candrews@integralblue.com>
Author URI: http://candrews.integralblue.com/
* StatusNet Plugin: 0.9
* Plugin Name: FirePHP
* Description: Sends StatusNet log output to FirePHP
* Version: 0.1
* Author: Craig Andrews <candrews@integralblue.com>
* Author URI: http://candrews.integralblue.com/
*/
/*
@ -65,6 +65,7 @@ class FirePHPPlugin extends Plugin
'author' => 'Craig Andrews',
'homepage' => 'http://status.net/wiki/Plugin:FirePHP',
'rawdescription' =>
// TRANS: Plugin description.
_m('The FirePHP plugin writes StatusNet\'s log output to FirePHP.'));
return true;
}

View File

@ -1,8 +1,9 @@
The FirePHP plugin writes StatusNet's log output to FirePHP.
Using FirePHP on production sites can expose sensitive information.
You must protect the security of your application by disabling FirePHP
logging on your live site.
You must protect the security of your application by disabling FirePHP logging
on your live site!
Installation
============
@ -18,4 +19,3 @@ Example
=======
addPlugin('FirePHP', array());

View File

@ -59,7 +59,6 @@ class FollowEveryonePlugin extends Plugin
* @param User &$newUser The new user
*
* @return boolean hook value
*
*/
function onEndUserRegister(&$newProfile, &$newUser)
{
@ -115,7 +114,6 @@ class FollowEveryonePlugin extends Plugin
$schema = Schema::get();
// For storing user-submitted flags on profiles
$schema->ensureTable('user_followeveryone_prefs',
array(new ColumnDef('user_id', 'integer', null,
true, 'PRI'),
@ -200,6 +198,7 @@ class FollowEveryonePlugin extends Plugin
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:FollowEveryone',
'rawdescription' =>
// TRANS: Plugin description.
_m('New users follow everyone at registration and are followed in return.'));
return true;
}

View File

@ -121,6 +121,7 @@ class GeoURLPlugin extends Plugin
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:GeoURL',
'rawdescription' =>
// TRANS: Plugin description.
_m('Ping <a href="http://geourl.org/">GeoURL</a> when '.
'new geolocation-enhanced notices are posted.'));
return true;

View File

@ -435,7 +435,8 @@ class GeonamesPlugin extends Plugin
function getGeonames($method, $params)
{
if ($this->lastTimeout && (time() - $this->lastTimeout < $this->timeoutWindow)) {
throw new Exception("skipping due to recent web service timeout");
// TRANS: Exception thrown when a geo names service is not used because of a recent timeout.
throw new Exception(_m('Skipping due to recent web service timeout.'));
}
$client = HTTPClient::start();
@ -451,13 +452,16 @@ class GeonamesPlugin extends Plugin
}
if (!$result->isOk()) {
throw new Exception("HTTP error code " . $result->getStatus());
// TRANS: Exception thrown when a geo names service does not return an expected response.
// TRANS: %s is an HTTP error code.
throw new Exception(sprintf(_m('HTTP error code %s.'),$result->getStatus()));
}
$body = $result->getBody();
if (empty($body)) {
throw new Exception("Empty HTTP body in response");
// TRANS: Exception thrown when a geo names service returns an empty body.
throw new Exception(_m('Empty HTTP body in response.'));
}
// This will throw an exception if the XML is mal-formed
@ -473,7 +477,9 @@ class GeonamesPlugin extends Plugin
}
if (isset($document->status)) {
throw new Exception("Error #".$document->status['value']." ('".$document->status['message']."')");
// TRANS: Exception thrown when a geo names service return a specific error number and error text.
// TRANS: %1$s is an error code, %2$s is an error message.
throw new Exception(sprintf(_m('Error #%1$s ("%2$s").'),$document->status['value'],$document->status['message']));
}
// Array of elements, >0 elements
@ -488,6 +494,7 @@ class GeonamesPlugin extends Plugin
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:Geonames',
'rawdescription' =>
// TRANS: Plugin description.
_m('Uses <a href="http://geonames.org/">Geonames</a> service to get human-readable '.
'names for locations based on user-provided lat/long pairs.'));
return true;

View File

@ -77,6 +77,7 @@ class GoogleAnalyticsPlugin extends Plugin
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics',
'rawdescription' =>
// TRANS: Plugin description.
_m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'.
' to track web access.'));
return true;

View File

@ -57,15 +57,18 @@ class GravatarPlugin extends Plugin
'action' =>
common_local_url('avatarsettings')));
$action->elementStart('fieldset', array('id' => 'settings_gravatar_add'));
// TRANS: Fieldset legend. Gravatar is an avatar service.
$action->element('legend', null, _m('Set Gravatar'));
$action->hidden('token', common_session_token());
$action->element('p', 'form_guide',
// TRANS: Form guide. Gravatar is an avatar service.
_m('If you want to use your Gravatar image, click "Add".'));
$action->element('input', array('type' => 'submit',
'id' => 'settings_gravatar_add_action-submit',
'name' => 'add',
'class' => 'submit',
'value' => _m('Add')));
// TRANS: Button text to add a Gravatar. Gravatar is an avatar service.
'value' => _m('BUTTON','Add')));
$action->elementEnd('fieldset');
$action->elementEnd('form');
} elseif($hasGravatar) {
@ -75,19 +78,23 @@ class GravatarPlugin extends Plugin
'action' =>
common_local_url('avatarsettings')));
$action->elementStart('fieldset', array('id' => 'settings_gravatar_remove'));
// TRANS: Fieldset legend. Gravatar is an avatar service.
$action->element('legend', null, _m('Remove Gravatar'));
$action->hidden('token', common_session_token());
$action->element('p', 'form_guide',
// TRANS: Form guide. Gravatar is an avatar service.
_m('If you want to remove your Gravatar image, click "Remove".'));
$action->element('input', array('type' => 'submit',
'id' => 'settings_gravatar_remove_action-submit',
'name' => 'remove',
'class' => 'submit',
// TRANS: Button text to remove a Gravatar. Gravatar is an avatar service.
'value' => _m('Remove')));
$action->elementEnd('fieldset');
$action->elementEnd('form');
} else {
$action->element('p', 'form_guide',
// TRANS: Form guide. Gravatar is an avatar service.
_m('To use a Gravatar first enter in an email address.'));
}
}
@ -137,6 +144,7 @@ class GravatarPlugin extends Plugin
$cur = common_current_user();
if(empty($cur->email)) {
// TRANS: Message displayed when no e-mail address was set when saving Gravatar setting. Gravatar is an avatar service.
return array('message' => _m('You do not have an email address set in your profile.'),
'success' => false);
}
@ -155,10 +163,12 @@ class GravatarPlugin extends Plugin
$gravatar->created = DB_DataObject_Cast::dateTime(); # current time
if (!$gravatar->insert()) {
// TRANS: Message displayed when saving Gravatar setting fails. Gravatar is an avatar service.
return array('message' => _m('Failed to save Gravatar to the database.'),
'success' => false);
}
}
// TRANS: Message displayed when Gravatar was added. Gravatar is an avatar service.
return array('message' => _m('Gravatar added.'),
'success' => true);
}
@ -177,6 +187,7 @@ class GravatarPlugin extends Plugin
$avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
if($avatar) $avatar->delete();
// TRANS: Message displayed when Gravatar was removed. Gravatar is an avatar service.
return array('message' => _m('Gravatar removed.'),
'success' => true);
}
@ -197,6 +208,7 @@ class GravatarPlugin extends Plugin
'author' => 'Eric Helgeson',
'homepage' => 'http://status.net/wiki/Plugin:Gravatar',
'rawdescription' =>
// TRANS: Plugin decsription.
_m('The Gravatar plugin allows users to use their <a href="http://www.gravatar.com/">Gravatar</a> with StatusNet.'));
return true;

View File

@ -1,13 +1,12 @@
GravatarPlugin 0.1
About
About:
This will allow users to use their Gravatar Avatar with your StatusNet install.
Configuration
Configuration:
add this to your config.php:
addPlugin('Gravatar', array());
ToDo:
To do:
Site default all on for gravatar by default
Migration Script
Localize

View File

@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class GroupPrivateMessagePlugin extends Plugin
{
/**
@ -57,7 +56,6 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @return boolean hook value
*/
function onCheckSchema()
{
$schema = Schema::get();
@ -136,7 +134,6 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @return boolean hook value
*/
function onAutoload($cls)
{
$dir = dirname(__FILE__);
@ -171,7 +168,6 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @return boolean hook value
*/
function onRouterInitialized($m)
{
$m->connect('group/:nickname/inbox',
@ -199,7 +195,6 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @see Action
*/
function onEndGroupGroupNav($groupnav)
{
$action = $groupnav->action;
@ -207,7 +202,9 @@ class GroupPrivateMessagePlugin extends Plugin
$action->menuItem(common_local_url('groupinbox',
array('nickname' => $group->nickname)),
// TRANS: Menu item in group page.
_m('MENU','Inbox'),
// TRANS: Menu title in group page.
_m('Private messages for this group.'),
$action->trimmed('action') == 'groupinbox',
'nav_group_inbox');
@ -221,7 +218,6 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @result boolean hook value
*/
function onEndGroupSave($group)
{
$gps = new Group_privacy_settings();
@ -244,7 +240,6 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @param GroupEditForm $form form being shown
*/
function onEndGroupEditFormData($form)
{
$gps = null;
@ -255,20 +250,30 @@ class GroupPrivateMessagePlugin extends Plugin
$form->out->elementStart('li');
$form->out->dropdown('allow_privacy',
// TRANS: Dropdown label in group settings page for if group allows private messages.
_m('Private messages'),
// TRANS: Dropdown option in group settings page for allowing private messages.
array(Group_privacy_settings::SOMETIMES => _m('Sometimes'),
// TRANS: Dropdown option in group settings page for allowing private messages.
Group_privacy_settings::ALWAYS => _m('Always'),
// TRANS: Dropdown option in group settings page for allowing private messages.
Group_privacy_settings::NEVER => _m('Never')),
// TRANS: Dropdown title in group settings page for if group allows private messages.
_m('Whether to allow private messages to this group.'),
false,
(empty($gps)) ? Group_privacy_settings::SOMETIMES : $gps->allow_privacy);
$form->out->elementEnd('li');
$form->out->elementStart('li');
$form->out->dropdown('allow_sender',
// TRANS: Dropdown label in group settings page for who can send private messages to the group.
_m('Private senders'),
// TRANS: Dropdown option in group settings page for who can send private messages.
array(Group_privacy_settings::EVERYONE => _m('Everyone'),
// TRANS: Dropdown option in group settings page for who can send private messages.
Group_privacy_settings::MEMBER => _m('Member'),
// TRANS: Dropdown option in group settings page for who can send private messages.
Group_privacy_settings::ADMIN => _m('Admin')),
// TRANS: Dropdown title in group settings page for who can send private messages to the group.
_m('Who can send private messages to the group.'),
false,
(empty($gps)) ? Group_privacy_settings::MEMBER : $gps->allow_sender);
@ -370,8 +375,10 @@ class GroupPrivateMessagePlugin extends Plugin
$action->elementStart('li', 'entity_send-a-message');
$action->element('a', array('href' => common_local_url('newgroupmessage', array('nickname' => $group->nickname)),
// TRANS: Title for action in group actions list.
'title' => _m('Send a direct message to this group.')),
_m('Message'));
// TRANS: Link text for action in group actions list to send a private message to a group.
_m('LINKTEXT','Message'));
// $form = new GroupMessageForm($action, $group);
// $form->hidden = true;
// $form->show();
@ -385,11 +392,8 @@ class GroupPrivateMessagePlugin extends Plugin
* If any of the groups disallows private messages, skip it.
*
* @param
*
*/
function onStartNoticeSave(&$notice) {
// Look for group tags
// FIXME: won't work for remote groups
// @fixme if Notice::saveNew is refactored so we can just pull its list
@ -406,11 +410,9 @@ class GroupPrivateMessagePlugin extends Plugin
$profile = $notice->getProfile();
if ($count > 0) {
/* Add them to the database */
foreach (array_unique($match[1]) as $nickname) {
$group = User_group::getForNickname($nickname, $profile);
if (empty($group)) {
@ -433,7 +435,6 @@ class GroupPrivateMessagePlugin extends Plugin
}
if ($forcePrivate) {
foreach ($ignored as $group) {
common_log(LOG_NOTICE,
"Notice forced to group direct message ".
@ -454,6 +455,7 @@ class GroupPrivateMessagePlugin extends Plugin
// Don't save the notice!
// FIXME: this is probably cheating.
// TRANS: Client exception thrown when a private group message has to be forced.
throw new ClientException(sprintf(_m('Forced notice to private group message.')),
200);
}
@ -470,12 +472,12 @@ class GroupPrivateMessagePlugin extends Plugin
*
* @return boolean hook value
*/
function onEndGroupProfileElements($action, $group)
{
$gps = Group_privacy_settings::forGroup($group);
if ($gps->allow_privacy == Group_privacy_settings::ALWAYS) {
// TRANS: Indicator on the group page that the group is (essentially) private.
$action->element('p', 'privategroupindicator', _m('Private'));
}
@ -501,6 +503,7 @@ class GroupPrivateMessagePlugin extends Plugin
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:GroupPrivateMessage',
'rawdescription' =>
// TRANS: Plugin description.
_m('Allow posting private messages to groups.'));
return true;
}

View File

@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
*
* @see DB_DataObject
*/
class Group_message extends Memcached_DataObject
{
public $__table = 'group_message'; // table name
@ -66,7 +65,6 @@ class Group_message extends Memcached_DataObject
* @param mixed $v Value to lookup
*
* @return Group_message object found, or null for no hits
*
*/
function staticGet($k, $v=null)
{
@ -123,6 +121,8 @@ class Group_message extends Memcached_DataObject
{
if (!$user->hasRight(Right::NEWMESSAGE)) {
// XXX: maybe break this out into a separate right
// TRANS: Exception thrown when trying to send group private message without having the right to do that.
// TRANS: %s is a user nickname.
throw new Exception(sprintf(_m('User %s is not allowed to send private messages.'),
$user->nickname));
}
@ -134,6 +134,8 @@ class Group_message extends Memcached_DataObject
// We use the same limits as for 'regular' private messages.
if (Message::contentTooLong($text)) {
// TRANS: Exception thrown when trying to send group private message that is too long.
// TRANS: %d is the maximum meggage length.
throw new Exception(sprintf(_m('That\'s too long. Maximum message size is %d character.',
'That\'s too long. Maximum message size is %d characters.',
Message::maxContent()),
@ -177,6 +179,7 @@ class Group_message extends Memcached_DataObject
{
$group = User_group::staticGet('id', $this->to_group);
if (empty($group)) {
// TRANS: Exception thrown when trying to send group private message to a non-existing group.
throw new ServerException(_m('No group for group message.'));
}
return $group;
@ -186,6 +189,7 @@ class Group_message extends Memcached_DataObject
{
$sender = Profile::staticGet('id', $this->from_profile);
if (empty($sender)) {
// TRANS: Exception thrown when trying to send group private message without having a sender.
throw new ServerException(_m('No sender for group message.'));
}
return $sender;
@ -204,5 +208,4 @@ class Group_message extends Memcached_DataObject
return $gm;
}
}

View File

@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
*
* @see DB_DataObject
*/
class Group_message_profile extends Memcached_DataObject
{
public $__table = 'group_message_profile'; // table name
@ -61,7 +60,6 @@ class Group_message_profile extends Memcached_DataObject
* @param mixed $v Value to lookup
*
* @return Group_message object found, or null for no hits
*
*/
function staticGet($k, $v=null)
{
@ -163,14 +161,14 @@ class Group_message_profile extends Memcached_DataObject
// TRANS: %3$s is the message content, %4$s a URL to the message,
// TRANS: %5$s is the StatusNet sitename.
$body = sprintf(_m("%1\$s (%2\$s) sent a private message to group %3\$s:\n\n".
"------------------------------------------------------\n".
"%4\$s\n".
"------------------------------------------------------\n\n".
"You can reply to their message here:\n\n".
"%5\$s\n\n".
"Do not reply to this email; it will not get to them.\n\n".
"With kind regards,\n".
"%6\$s"),
"------------------------------------------------------\n".
"%4\$s\n".
"------------------------------------------------------\n\n".
"You can reply to their message here:\n\n".
"%5\$s\n\n".
"Do not reply to this email; it will not get to them.\n\n".
"With kind regards,\n".
"%6\$s"),
$from_profile->getBestName(),
$from_profile->nickname,
$group->nickname,

View File

@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
*
* @see DB_DataObject
*/
class Group_privacy_settings extends Memcached_DataObject
{
public $__table = 'group_privacy_settings';
@ -81,7 +80,6 @@ class Group_privacy_settings extends Memcached_DataObject
*
* @return User_greeting_count object found, or null for no hits
*/
function staticGet($k, $v=null)
{
return Memcached_DataObject::staticGet('Group_privacy_settings', $k, $v);
@ -95,7 +93,6 @@ class Group_privacy_settings extends Memcached_DataObject
*
* @return array array of column definitions
*/
function table()
{
return array('group_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
@ -115,7 +112,6 @@ class Group_privacy_settings extends Memcached_DataObject
*
* @return array list of key field names
*/
function keys()
{
return array_keys($this->keyTypes());
@ -128,7 +124,6 @@ class Group_privacy_settings extends Memcached_DataObject
* 'K' for primary key: for compound keys, add an entry for each component;
* 'U' for unique keys: compound keys are not well supported here.
*/
function keyTypes()
{
return array('group_id' => 'K');
@ -139,7 +134,6 @@ class Group_privacy_settings extends Memcached_DataObject
*
* @return array magic three-false array that stops auto-incrementing.
*/
function sequenceKey()
{
return array(false, false, false);
@ -164,6 +158,7 @@ class Group_privacy_settings extends Memcached_DataObject
$gps = self::forGroup($group);
if ($gps->allow_privacy == Group_privacy_settings::NEVER) {
// TRANS: Exception thrown when trying to set group privacy setting if group %s does not allow private messages.
throw new Exception(sprintf(_m('Group %s does not allow private messages.'),
$group->nickname));
}
@ -172,6 +167,8 @@ class Group_privacy_settings extends Memcached_DataObject
case Group_privacy_settings::EVERYONE:
$profile = $user->getProfile();
if (Group_block::isBlocked($group, $profile)) {
// TRANS: Exception thrown when trying to send group private message while blocked from that group.
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
throw new Exception(sprintf(_m('User %1$s is blocked from group %2$s.'),
$user->nickname,
$group->nickname));
@ -179,6 +176,8 @@ class Group_privacy_settings extends Memcached_DataObject
break;
case Group_privacy_settings::MEMBER:
if (!$user->isMember($group)) {
// TRANS: Exception thrown when trying to send group private message while not a member.
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
throw new Exception(sprintf(_m('User %1$s is not a member of group %2$s.'),
$user->nickname,
$group->nickname));
@ -186,12 +185,16 @@ class Group_privacy_settings extends Memcached_DataObject
break;
case Group_privacy_settings::ADMIN:
if (!$user->isAdmin($group)) {
// TRANS: Exception thrown when trying to send group private message while not a group administrator.
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
throw new Exception(sprintf(_m('User %1$s is not an administrator of group %2$s.'),
$user->nickname,
$group->nickname));
}
break;
default:
// TRANS: Exception thrown when encountering undefined group privacy settings.
// TRANS: %s is a group nickname.
throw new Exception(sprintf(_m('Unknown privacy settings for group %s.'),
$group->nickname));
}

View File

@ -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 GroupinboxAction extends GroupDesignAction
{
var $gm;
@ -63,6 +62,7 @@ class GroupinboxAction extends GroupDesignAction
$cur = common_current_user();
if (empty($cur)) {
// TRANS: Client exception thrown when trying to view group inbox while not logged in.
throw new ClientException(_m('Only for logged-in users.'), 403);
}
@ -79,16 +79,19 @@ class GroupinboxAction extends GroupDesignAction
$localGroup = Local_group::staticGet('nickname', $nickname);
if (empty($localGroup)) {
// TRANS: Client exception thrown when trying to view group inbox for non-existing group.
throw new ClientException(_m('No such group.'), 404);
}
$this->group = User_group::staticGet('id', $localGroup->group_id);
if (empty($this->group)) {
// TRANS: Client exception thrown when trying to view group inbox for non-existing group.
throw new ClientException(_m('No such group.'), 404);
}
if (!$cur->isMember($this->group)) {
// TRANS: Client exception thrown when trying to view group inbox while not a member.
throw new ClientException(_m('Only for members.'), 403);
}
@ -122,6 +125,7 @@ class GroupinboxAction extends GroupDesignAction
$cnt = $gml->show();
if ($cnt == 0) {
// TRANS: Text of group inbox if no private messages were sent to it.
$this->element('p', 'guide', _m('This group has not received any private messages.'));
}
$this->pagination($this->page > 1,
@ -167,6 +171,7 @@ class GroupinboxAction extends GroupDesignAction
$base = $this->group->getFancyName();
if ($this->page == 1) {
// TRANS: Title of inbox for group %s.
return sprintf(_m('%s group inbox'), $base);
} else {
// TRANS: Page title for any but first group page.
@ -184,7 +189,6 @@ class GroupinboxAction extends GroupDesignAction
*
* @return void
*/
function showPageNotice()
{
$instr = $this->getInstructions();

View File

@ -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 GroupMessageCommand extends Command
{
/** User sending the message. */
@ -61,7 +60,6 @@ class GroupMessageCommand extends Command
* @param string $nickname Nickname of the group
* @param string $text Text of message
*/
function __construct($user, $nickname, $text)
{
$this->user = $user;
@ -77,6 +75,7 @@ class GroupMessageCommand extends Command
$gm = Group_message::send($this->user, $group, $this->text);
$channel->output($this->user,
// TRANS: Succes message after sending private group message to group %s.
sprintf(_m('Direct message to group %s sent.'),
$group->nickname));

View File

@ -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 GroupMessageForm extends Form
{
var $group;
@ -58,7 +57,6 @@ class GroupMessageForm extends Form
*
* @todo add a drop-down list to post to any group
*/
function __construct($out, $group, $content=null)
{
parent::__construct($out);
@ -87,6 +85,7 @@ class GroupMessageForm extends Form
{
$this->out->element('legend',
null,
// TRANS: Form legend for sending private message to group %s.
sprintf(_m('Message to %s'), $this->group->nickname));
}
@ -97,7 +96,6 @@ class GroupMessageForm extends Form
*
* @return
*/
function id()
{
return 'form_notice-group-message';
@ -110,7 +108,6 @@ class GroupMessageForm extends Form
*
* @return
*/
function formClass()
{
return 'form_notice';
@ -123,11 +120,11 @@ class GroupMessageForm extends Form
*
* @return
*/
function formData()
{
$this->out->element('label', array('for' => 'notice_data-text',
'id' => 'notice_data-text-label'),
// TRANS: Field label for private group message to group %s.
sprintf(_m('Direct message to %s'), $this->group->nickname));
$this->out->element('textarea', array('id' => 'notice_data-text',
@ -140,6 +137,7 @@ class GroupMessageForm extends Form
if ($contentLimit > 0) {
$this->out->elementStart('dl', 'form_note');
// TRANS: Indicator for number of chatacters still available for notice.
$this->out->element('dt', null, _m('Available characters'));
$this->out->element('dd', array('class' => 'count'),
$contentLimit);
@ -154,13 +152,13 @@ class GroupMessageForm extends Form
*
* @return
*/
function formActions()
{
$this->out->element('input', array('id' => 'notice_action-submit',
'class' => 'submit',
'name' => 'message_send',
'type' => 'submit',
// TRANS: Send button text for sending private group notice.
'value' => _m('Send button for sending notice', 'Send')));
}
}

View File

@ -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 NewgroupmessageAction extends Action
{
var $group;
@ -58,7 +57,6 @@ class NewgroupmessageAction extends Action
*
* @return boolean true
*/
function prepare($argarray)
{
parent::prepare($argarray);
@ -66,10 +64,12 @@ class NewgroupmessageAction extends Action
$this->user = common_current_user();
if (empty($this->user)) {
// TRANS: Client exception thrown when trying to send a private group message while not logged in.
throw new ClientException(_m('Must be logged in.'), 403);
}
if (!$this->user->hasRight(Right::NEWMESSAGE)) {
// TRANS: Exception thrown when user %s is not allowed to send a private group message.
throw new Exception(sprintf(_m('User %s is not allowed to send private messages.'),
$this->user->nickname));
}
@ -87,21 +87,21 @@ class NewgroupmessageAction extends Action
$localGroup = Local_group::staticGet('nickname', $nickname);
if (empty($localGroup)) {
// TRANS: Client exception thrown when trying to send a private group message to a non-existing group.
throw new ClientException(_m('No such group.'), 404);
}
$this->group = User_group::staticGet('id', $localGroup->group_id);
if (empty($this->group)) {
// TRANS: Client exception thrown when trying to send a private group message to a non-existing group.
throw new ClientException(_m('No such group.'), 404);
}
// This throws an exception on error
Group_privacy_settings::ensurePost($this->user, $this->group);
// If we're posted to, check session token and get text
if ($this->isPost()) {
$this->checkSessionToken();
$this->text = $this->trimmed('content');
@ -117,7 +117,6 @@ class NewgroupmessageAction extends Action
*
* @return void
*/
function handle($argarray=null)
{
if ($this->isPost()) {
@ -140,11 +139,13 @@ class NewgroupmessageAction extends Action
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
// TRANS: Title after sending a private group message.
$this->element('title', null, _m('Message sent'));
$this->elementEnd('head');
$this->elementStart('body');
$this->element('p',
array('id' => 'command_result'),
// TRANS: Succes text after sending a direct message to group %s.
sprintf(_m('Direct message to %s sent.'),
$this->group->nickname));
$this->elementEnd('body');
@ -156,6 +157,7 @@ class NewgroupmessageAction extends Action
function title()
{
// TRANS: Title of form for new private group message.
return sprintf(_m('New message to group %s'), $this->group->nickname);
}
}

View File

@ -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 ShowgroupmessageAction extends Action
{
var $gm;
@ -59,7 +58,6 @@ class ShowgroupmessageAction extends Action
*
* @return boolean true
*/
function prepare($argarray)
{
parent::prepare($argarray);
@ -67,6 +65,7 @@ class ShowgroupmessageAction extends Action
$this->user = common_current_user();
if (empty($this->user)) {
// TRANS: Client exception thrown when trying to view group private messages without being logged in.
throw new ClientException(_m('Only logged-in users can view private messages.'),
403);
}
@ -76,22 +75,26 @@ class ShowgroupmessageAction extends Action
$this->gm = Group_message::staticGet('id', $id);
if (empty($this->gm)) {
// TRANS: Client exception thrown when trying to view a non-existing group private message.
throw new ClientException(_m('No such message.'), 404);
}
$this->group = User_group::staticGet('id', $this->gm->to_group);
if (empty($this->group)) {
// TRANS: Server exception thrown when trying to view group private messages for a non-exsting group.
throw new ServerException(_m('Group not found.'));
}
if (!$this->user->isMember($this->group)) {
// TRANS: Client exception thrown when trying to view a group private message without being a group member.
throw new ClientException(_m('Cannot read message.'), 403);
}
$this->sender = Profile::staticGet('id', $this->gm->from_profile);
if (empty($this->sender)) {
// TRANS: Server exception thrown when trying to view a group private message without a sender.
throw new ServerException(_m('No sender found.'));
}
@ -105,7 +108,6 @@ class ShowgroupmessageAction extends Action
*
* @return void
*/
function handle($argarray=null)
{
$this->showPage();
@ -114,9 +116,10 @@ class ShowgroupmessageAction extends Action
/**
* Title of the page
*/
function title()
{
// TRANS: Title for private group message.
// TRANS: %1$s is the sender name, %2$s is the group name, %3$s is a timestamp.
return sprintf(_m('Message from %1$s to group %2$s on %3$s'),
$this->sender->nickname,
$this->group->nickname,
@ -126,7 +129,6 @@ class ShowgroupmessageAction extends Action
/**
* Show the content area.
*/
function showContent()
{
$this->elementStart('ul', 'notices messages');
@ -144,7 +146,6 @@ class ShowgroupmessageAction extends Action
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;