'class' => 'notice-tally'
)
);
- $out->raw(sprintf(_m("favored %d times"), $tally->count));
+ // 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->elementEnd('div');
}
}
$id = $profile->insert();
if (!$id) {
+ // TRANS: Server exception.
throw new ServerException(_m("Couldn't create anonymous user session."));
}
$result = $profile->update($orig);
if (!$result) {
+ // TRANS: Server exception.
throw new ServerException(_m("Couldn't create anonymous user session."));
}
'author' => 'Zach Copley',
'homepage' => $url,
'rawdescription' =>
+ // TRANS: Plugin description.
_m('Allow anonymous users to favorite notices.'));
return true;
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://status.net/
*/
-
class Fave_tally extends Memcached_DataObject
{
###START_AUTOCODE
*
* @return array list of key field names
*/
-
function keys()
{
return array_keys($this->keyTypes());
* '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('notice_id' => 'K');
*
* @return array magic three-false array that stops auto-incrementing.
*/
-
-
function sequenceKey()
{
return array(false, false, false);
*
* @return User_flag_profile found object or null
*/
-
function pkeyGet($kv)
{
return Memcached_DataObject::pkeyGet('Fave_tally', $kv);
*
* @return Fave_tally $tally the tally data object
*/
-
static function increment($noticeID)
{
$tally = Fave_tally::ensureTally($noticeID);
if (!$result) {
$msg = sprintf(
+ // TRANS: Server exception.
+ // TRANS: %d is the notice ID (number).
_m("Couldn't update favorite tally for notice ID %d."),
$noticeID
);
*
* @return Fave_tally $tally the tally data object
*/
-
static function decrement($noticeID)
{
$tally = Fave_tally::ensureTally($noticeID);
if (!$result) {
$msg = sprintf(
+ // TRANS: Server exception.
+ // TRANS: %d is the notice ID (number).
_m("Couldn't update favorite tally for notice ID %d."),
$noticeID
);
*
* @return Fave_tally the tally data object
*/
-
static function ensureTally($noticeID)
{
$tally = Fave_tally::staticGet('notice_id', $noticeID);
$result = $tally->insert();
if (!$result) {
$msg = sprintf(
+ // TRANS: Server exception.
+ // TRANS: %d is the notice ID (number).
_m("Couldn't create favorite tally for notice ID %d."),
$noticeID
);
*
* @return integer $total total number of time the notice has been favored
*/
-
static function countExistingFaves($noticeID)
{
$fave = new Fave();
<?php
-
/**
* Anonymous disfavor action
*
if (empty($profile) || $_SERVER['REQUEST_METHOD'] != 'POST') {
$this->clientError(
+ // TRANS: Client error.
_m('Could not disfavor notice! Please make sure your browser has cookies enabled.')
);
return;
$token = $this->trimmed('token-' . $notice->id);
if (!$token || $token != common_session_token()) {
+ // TRANS: Client error.
$this->clientError(_m('There was a problem with your session token. Try again, please.'));
return;
}
$fave->notice_id = $notice->id;
if (!$fave->find(true)) {
+ // TRANS: Client error.
$this->clientError(_m('This notice is not a favorite!'));
return;
}
if (!$result) {
common_log_db_error($fave, 'DELETE', __FILE__);
+ // TRANS: Server error.
$this->serverError(_m('Could not delete favorite.'));
return;
}
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
+ // TRANS: Title.
$this->element('title', null, _m('Add to favorites'));
$this->elementEnd('head');
$this->elementStart('body');
}
}
}
-
*
* @see DisFavorForm
*/
-
class AnonDisfavorForm extends DisFavorForm
{
-
/**
* Constructor
*
* @param HTMLOutputter $out output channel
* @param Notice $notice notice to disfavor
*/
-
function __construct($out=null, $notice=null)
{
parent::__construct($out, $notice);
*
* @return string URL of the action
*/
-
function action()
{
return common_local_url('AnonDisFavor');
}
-
}
<?php
-
/**
* Anonyous favor action
*
$profile = AnonymousFavePlugin::getAnonProfile();
if (empty($profile) || $_SERVER['REQUEST_METHOD'] != 'POST') {
- $this->clientError(
- _m('Could not favor notice! Please make sure your browser has cookies enabled.')
+ // TRANS: Client error.
+ $this->clientError( _m('Could not favor notice! Please make sure your browser has cookies enabled.')
);
return;
}
$token = $this->trimmed('token-' . $notice->id);
if (empty($token) || $token != common_session_token()) {
+ // TRANS: Client error.
$this->clientError(_m('There was a problem with your session token. Try again, please.'));
return;
}
if ($profile->hasFave($notice)) {
+ // TRANS: Client error.
$this->clientError(_m('This notice is already a favorite!'));
return;
}
$fave = Fave::addNew($profile, $notice);
if (!$fave) {
+ // TRANS: Server error.
$this->serverError(_m('Could not create favorite.'));
return;
}
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
+ // TRANS: Title.
$this->element('title', null, _m('Disfavor favorite'));
$this->elementEnd('head');
$this->elementStart('body');
*
* @see AnonDisfavorForm
*/
-
class AnonFavorForm extends FavorForm
{
* @param HTMLOutputter $out output channel
* @param Notice $notice notice to favor
*/
-
function __construct($out=null, $notice=null)
{
parent::__construct($out, $notice);
*
* @return string URL of the action
*/
-
function action()
{
return common_local_url('AnonFavor');