Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

Conflicts:
	lib/util.php
This commit is contained in:
Evan Prodromou 2009-11-10 14:26:49 -05:00
commit 7ae10c27b0
68 changed files with 242 additions and 179 deletions

View File

@ -191,6 +191,12 @@ StartPersonalGroupNav: beginning of personal group nav menu
EndPersonalGroupNav: end of personal group nav menu (good place to add a menu item)
- $action: action object being shown
StartGroupGroupNav: Showing the group nav menu
- $action: the current action
EndGroupGroupNav: At the end of the group nav menu
- $action: the current action
StartEndHTML: just before the </html> tag
- $action: action object being shown
@ -489,6 +495,10 @@ ChangePassword: Handle a password change request
- $newpassword: the desired new password
- &$errormsg: set this to an error message if the password could not be changed. If the password was changed, leave this as false
CanUserChangeField: Determines if a user is allowed to change a specific profile field
- $nickname: nickname of the user who would like to know which of their profile fields are mutable
- $field: name of the field the user wants to change (nickname, fullname, password, avatar, etc)
UserDeleteRelated: Specify additional tables to delete entries from when deleting users
- $user: User object
- &$related: array of DB_DataObject class names to delete entries on matching user_id.

View File

@ -56,7 +56,7 @@ class AllrssAction extends Rss10Action
*
* @param array $args Web and URL arguments
*
* @return boolean false if user does not exist
* @return boolean false if user doesn't exist
*/
function prepare($args)
{

View File

@ -36,7 +36,7 @@ if (!defined('STATUSNET')) {
require_once INSTALLDIR . '/lib/apibareauth.php';
/**
* We do not have a rate limit, but some clients check this method.
* We don't have a rate limit, but some clients check this method.
* It always returns the same thing: 150 hits left.
*
* @category API

View File

@ -113,7 +113,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
return;
}
// Do not allow unsubscribing from yourself!
// Don't allow unsubscribing from yourself!
if ($this->user->id == $this->other->id) {
$this->clientError(

View File

@ -146,7 +146,7 @@ class AttachmentAction extends Action
}
/**
* Do not show local navigation
* Don't show local navigation
*
* @return void
*/
@ -170,7 +170,7 @@ class AttachmentAction extends Action
}
/**
* Do not show page notice
* Don't show page notice
*
* @return void
*/

View File

@ -49,7 +49,7 @@ class AvatarbynicknameAction extends Action
*
* @param array $args query arguments
*
* @return boolean false if nickname or user is not found
* @return boolean false if nickname or user isn't found
*/
function handle($args)
{

View File

@ -146,8 +146,8 @@ class BlockAction extends Action
$this->hidden($k, $v);
}
}
$this->submit('form_action-no', _('No'), 'submit form_action-primary', 'no', _("Do not block this user from this group"));
$this->submit('form_action-yes', _('Yes'), 'submit form_action-secondary', 'yes', _('Block this user from this group'));
$this->submit('form_action-no', _('No'), 'submit form_action-primary', 'no', _("Do not block this user"));
$this->submit('form_action-yes', _('Yes'), 'submit form_action-secondary', 'yes', _('Block this user'));
$this->elementEnd('fieldset');
$this->elementEnd('form');
}

View File

@ -95,7 +95,7 @@ class GroupblockAction extends Action
$this->clientError(_('User is already blocked from group.'));
return false;
}
// XXX: could have proactive blocks, but we do not have UI for it.
// XXX: could have proactive blocks, but we don't have UI for it.
if (!$this->profile->isMember($this->group)) {
$this->clientError(_('User is not a member of group.'));
return false;
@ -151,17 +151,19 @@ class GroupblockAction extends Action
function areYouSureForm()
{
$id = $this->profile->id;
$this->elementStart('form', array('id' => 'block-' . $id,
'method' => 'post',
'class' => 'form_settings form_entity_block',
'action' => common_local_url('groupblock')));
$this->elementStart('fieldset');
$this->hidden('token', common_session_token());
$this->element('legend', _('Block user'));
$this->element('p', null,
sprintf(_('Are you sure you want to block user "%s" from the group "%s"? '.
'They will be removed from the group, unable to post, and '.
'unable to subscribe to the group in the future.'),
$this->profile->getBestName(),
$this->group->getBestName()));
$this->elementStart('form', array('id' => 'block-' . $id,
'method' => 'post',
'class' => 'block',
'action' => common_local_url('groupblock')));
$this->hidden('token', common_session_token());
$this->hidden('blockto-' . $this->profile->id,
$this->profile->id,
'blockto');
@ -173,8 +175,9 @@ class GroupblockAction extends Action
$this->hidden($k, $v);
}
}
$this->submit('no', _('No'));
$this->submit('yes', _('Yes'));
$this->submit('form_action-no', _('No'), 'submit form_action-primary', 'no', _("Do not block this user from this group"));
$this->submit('form_action-yes', _('Yes'), 'submit form_action-secondary', 'yes', _('Block this user from this group'));
$this->elementEnd('fieldset');
$this->elementEnd('form');
}

View File

@ -159,7 +159,7 @@ class LoginAction extends Action
$url = common_get_returnto();
if ($url) {
// We do not have to return to it again
// We don't have to return to it again
common_set_returnto(null);
} else {
$url = common_local_url('all',

View File

@ -81,7 +81,7 @@ class LogoutAction extends Action
{
common_set_user(null);
common_real_login(false); // not logged in
common_forgetme(); // do not log back in!
common_forgetme(); // don't log back in!
}
}

View File

@ -61,7 +61,7 @@ class NewmessageAction extends Action
/**
* Title of the page
*
* Note that this usually does not get called unless something went wrong
* Note that this usually doesn't get called unless something went wrong
*
* @return string page title
*/

View File

@ -59,7 +59,7 @@ class NewnoticeAction extends Action
/**
* Title of the page
*
* Note that this usually does not get called unless something went wrong
* Note that this usually doesn't get called unless something went wrong
*
* @return string page title
*/

View File

@ -52,7 +52,7 @@ class OpensearchAction extends Action
*
* @param array $args query arguments
*
* @return boolean false if user does not exist
* @return boolean false if user doesn't exist
*/
function handle($args)
{

View File

@ -58,6 +58,19 @@ class PasswordsettingsAction extends AccountSettingsAction
return _('Change password');
}
function prepare($args){
parent::prepare($args);
$user = common_current_user();
Event::handle('CanUserChangeField', array($user->nickname, 'password'));
if(! $fields['password']){
//user is not allowed to change his password
$this->clientError(_('You are not allowed to change your password'));
}
}
/**
* Instructions for use
*
@ -86,6 +99,7 @@ class PasswordsettingsAction extends AccountSettingsAction
function showContent()
{
$user = common_current_user();
$this->elementStart('form', array('method' => 'POST',
'id' => 'form_password',
'class' => 'form_settings',
@ -97,7 +111,7 @@ class PasswordsettingsAction extends AccountSettingsAction
$this->elementStart('ul', 'form_data');
// Users who logged in with OpenID will not have a pwd
// Users who logged in with OpenID won't have a pwd
if ($user->password) {
$this->elementStart('li');
$this->password('oldpassword', _('Old password'));

View File

@ -174,7 +174,7 @@ class RegisterAction extends Action
$bio = $this->trimmed('bio');
$location = $this->trimmed('location');
// We do not trim these... whitespace is OK in a password!
// We don't trim these... whitespace is OK in a password!
$password = $this->arg('password');
$confirm = $this->arg('confirm');

View File

@ -418,7 +418,7 @@ class ShowgroupAction extends GroupDesignAction
// XXX: WORM cache this
$members = $this->group->getMembers();
$members_count = 0;
/** $member->count() does not work. */
/** $member->count() doesn't work. */
while ($members->fetch()) {
$members_count++;
}

View File

@ -137,7 +137,7 @@ class ShowmessageAction extends MailboxAction
}
/**
* Do not show local navigation
* Don't show local navigation
*
* @return void
*/
@ -147,7 +147,7 @@ class ShowmessageAction extends MailboxAction
}
/**
* Do not show page notice
* Don't show page notice
*
* @return void
*/
@ -157,7 +157,7 @@ class ShowmessageAction extends MailboxAction
}
/**
* Do not show aside
* Don't show aside
*
* @return void
*/
@ -167,7 +167,7 @@ class ShowmessageAction extends MailboxAction
}
/**
* Do not show any instructions
* Don't show any instructions
*
* @return string
*/

View File

@ -208,7 +208,7 @@ class ShownoticeAction extends OwnerDesignAction
}
/**
* Do not show local navigation
* Don't show local navigation
*
* @return void
*/
@ -234,7 +234,7 @@ class ShownoticeAction extends OwnerDesignAction
}
/**
* Do not show page notice
* Don't show page notice
*
* @return void
*/
@ -244,7 +244,7 @@ class ShownoticeAction extends OwnerDesignAction
}
/**
* Do not show aside
* Don't show aside
*
* @return void
*/

View File

@ -253,7 +253,7 @@ class ShowstreamAction extends ProfileAction
}
}
// We do not show the author for a profile, since we already know who it is!
// We don't show the author for a profile, since we already know who it is!
class ProfileNoticeList extends NoticeList
{

View File

@ -61,7 +61,7 @@ class SupAction extends Action
$notice = new Notice();
# XXX: cache this. Depends on how big this protocol becomes;
# Re-doing this query every 15 seconds is not the end of the world.
# Re-doing this query every 15 seconds isn't the end of the world.
$divider = common_sql_date(time() - $seconds);

View File

@ -250,7 +250,7 @@ class TwitapisearchatomAction extends ApiAction
}
// FIXME: this alternate link is not quite right because our
// web-based notice search does not support a rpp (responses per
// web-based notice search doesn't support a rpp (responses per
// page) param yet
$this->element('link', array('type' => 'text/html',

View File

@ -55,7 +55,7 @@ class TwitapitrendsAction extends ApiAction
*
* @param array $args Web and URL arguments
*
* @return boolean false if user does not exist
* @return boolean false if user doesn't exist
*/
function prepare($args)
{

View File

@ -53,7 +53,7 @@ class File_redirection extends Memcached_DataObject
'connect_timeout' => 10, // # seconds to wait
'max_redirs' => $redirs, // # max number of http redirections to follow
'follow_redirects' => true, // Follow redirects
'store_body' => false, // We will not need body content here.
'store_body' => false, // We won't need body content here.
));
return $request;
}
@ -81,12 +81,12 @@ class File_redirection extends Memcached_DataObject
}
try {
$request = self::_commonHttp($short_url, $redirs);
// Do not include body in output
// Don't include body in output
$request->setMethod(HTTP_Request2::METHOD_HEAD);
$response = $request->send();
if (405 == $response->getStatus()) {
// Server does not support HEAD method? Can this really happen?
// Server doesn't support HEAD method? Can this really happen?
// We'll try again as a GET and ignore the response data.
$request = self::_commonHttp($short_url, $redirs);
$response = $request->send();
@ -178,7 +178,7 @@ class File_redirection extends Memcached_DataObject
case 'aim':
case 'jabber':
case 'xmpp':
// do not touch anything
// don't touch anything
break;
default:

View File

@ -146,7 +146,7 @@ class Notice extends Memcached_DataObject
/* Add them to the database */
foreach(array_unique($hashtags) as $hashtag) {
/* elide characters we do not want in the tag */
/* elide characters we don't want in the tag */
$this->saveTag($hashtag);
}
return true;
@ -1105,7 +1105,7 @@ class Notice extends Memcached_DataObject
if (empty($recipient)) {
continue;
}
// Do not save replies from blocked profile to local user
// Don't save replies from blocked profile to local user
$recipient_user = User::staticGet('id', $recipient->id);
if (!empty($recipient_user) && $recipient_user->hasBlocked($sender)) {
continue;
@ -1131,7 +1131,7 @@ class Notice extends Memcached_DataObject
$tagged = Profile_tag::getTagged($sender->id, $tag);
foreach ($tagged as $t) {
if (!$replied[$t->id]) {
// Do not save replies from blocked profile to local user
// Don't save replies from blocked profile to local user
$t_user = User::staticGet('id', $t->id);
if ($t_user && $t_user->hasBlocked($sender)) {
continue;

View File

@ -101,7 +101,7 @@ class Profile extends Memcached_DataObject
}
foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
# We do not do a scaled one if original is our scaled size
# We don't do a scaled one if original is our scaled size
if (!($avatar->width == $size && $avatar->height == $size)) {
$scaled_filename = $imagefile->resize($size);
@ -174,7 +174,7 @@ class Profile extends Memcached_DataObject
function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $max_id=0, $since=null)
{
// XXX: I'm not sure this is going to be any faster. It probably is not.
// XXX: I'm not sure this is going to be any faster. It probably isn't.
$ids = Notice::stream(array($this, '_streamDirect'),
array(),
'profile:notice_ids:' . $this->id,

View File

@ -87,7 +87,7 @@ class User extends Memcached_DataObject
return (is_null($sub)) ? false : true;
}
// 'update' will not write key columns, so we have to do it ourselves.
// 'update' won't write key columns, so we have to do it ourselves.
function updateKeys(&$orig)
{
@ -384,7 +384,7 @@ class User extends Memcached_DataObject
return false;
}
// Otherwise, cache does not have all faves;
// Otherwise, cache doesn't have all faves;
// fall through to the default
}
@ -463,7 +463,7 @@ class User extends Memcached_DataObject
{
$cache = common_memcache();
if ($cache) {
// Faves do not happen chronologically, so we need to blow
// Faves don't happen chronologically, so we need to blow
// ;last cache, too
$cache->delete(common_cache_key('fave:ids_by_user:'.$this->id));
$cache->delete(common_cache_key('fave:ids_by_user:'.$this->id.';last'));

View File

@ -42,3 +42,12 @@ create table login_token (
constraint primary key (user_id)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
alter table fave
drop index fave_user_id_idx,
add index fave_user_id_idx (user_id,modified);
alter table subscription
drop index subscription_subscriber_idx,
add index subscription_subscriber_idx (subscriber,created),
drop index subscription_subscribed_idx,
add index subscription_subscribed_idx (subscribed,created);

View File

@ -48,3 +48,12 @@ create table login_token (
constraint primary key (user_id)
);
alter table fave
drop index fave_user_id_idx,
add index fave_user_id_idx using btree(user_id,modified);
alter table subscription
drop index subscription_subscriber_idx,
add index subscription_subscriber_idx using btree(subscriber,created),
drop index subscription_subscribed_idx,
add index subscription_subscribed_idx using btree(subscribed,created);

View File

@ -107,8 +107,8 @@ create table subscription (
modified timestamp comment 'date this record was modified',
constraint primary key (subscriber, subscribed),
index subscription_subscriber_idx (subscriber),
index subscription_subscribed_idx (subscribed),
index subscription_subscriber_idx (subscriber, created),
index subscription_subscribed_idx (subscribed, created),
index subscription_token_idx (token)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
@ -165,7 +165,7 @@ create table fave (
constraint primary key (notice_id, user_id),
index fave_notice_id_idx (notice_id),
index fave_user_id_idx (user_id),
index fave_user_id_idx (user_id,modified),
index fave_modified_idx (modified)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;

View File

@ -115,8 +115,8 @@ create table subscription (
primary key (subscriber, subscribed)
);
create index subscription_subscriber_idx on subscription using btree(subscriber);
create index subscription_subscribed_idx on subscription using btree(subscribed);
create index subscription_subscriber_idx on subscription using btree(subscriber,created);
create index subscription_subscribed_idx on subscription using btree(subscribed,created);
create sequence notice_seq;
create table notice (
@ -171,7 +171,7 @@ create table fave (
);
create index fave_notice_id_idx on fave using btree(notice_id);
create index fave_user_id_idx on fave using btree(user_id);
create index fave_user_id_idx on fave using btree(user_id,modified);
create index fave_modified_idx on fave using btree(modified);
/* tables for OAuth */

View File

@ -102,26 +102,31 @@ class AccountSettingsNav extends Widget
$this->action->elementStart('ul', array('class' => 'nav'));
if (Event::handle('StartAccountSettingsNav', array(&$this->action))) {
$user = common_current_user();
$menu =
array('profilesettings' =>
$menu = array();
$menu['profilesettings'] =
array(_('Profile'),
_('Change your profile settings')),
'avatarsettings' =>
_('Change your profile settings'));
if(Event::handle('CanUserChangeField', array($user->nickname, 'avatar'))){
$menu['avatarsettings'] =
array(_('Avatar'),
_('Upload an avatar')),
'passwordsettings' =>
_('Upload an avatar'));
}
if(Event::handle('CanUserChangeField', array($user->nickname, 'password'))){
$menu['passwordsettings'] =
array(_('Password'),
_('Change your password')),
'emailsettings' =>
_('Change your password'));
}
$menu['emailsettings'] =
array(_('Email'),
_('Change email handling')),
'userdesignsettings' =>
_('Change email handling'));
$menu['userdesignsettings'] =
array(_('Design'),
_('Design your profile')),
'othersettings' =>
_('Design your profile'));
$menu['othersettings'] =
array(_('Other'),
_('Other options')));
_('Other options'));
foreach ($menu as $menuaction => $menudesc) {
$this->action->menuItem(common_local_url($menuaction),

View File

@ -66,7 +66,7 @@ class ApiAction extends Action
*
* @param array $args Web and URL arguments
*
* @return boolean false if user does not exist
* @return boolean false if user doesn't exist
*/
function prepare($args)
@ -138,7 +138,7 @@ class ApiAction extends Action
$design = null;
$user = $profile->getUser();
// Note: some profiles do not have an associated user
// Note: some profiles don't have an associated user
if (!empty($user)) {
$design = $user->getDesign();
@ -203,7 +203,7 @@ class ApiAction extends Action
if ($get_notice) {
$notice = $profile->getCurrentNotice();
if ($notice) {
# do not get user!
# don't get user!
$twitter_user['status'] = $this->twitterStatusArray($notice, false);
}
}
@ -263,7 +263,7 @@ class ApiAction extends Action
}
if ($include_user) {
# Do not get notice (recursive!)
# Don't get notice (recursive!)
$twitter_user = $this->twitterUserArray($profile, false);
$twitter_status['user'] = $twitter_user;
}
@ -1074,7 +1074,7 @@ class ApiAction extends Action
function initTwitterAtom()
{
$this->startXML();
// FIXME: do not hardcode the language here!
// FIXME: don't hardcode the language here!
$this->elementStart('feed', array('xmlns' => 'http://www.w3.org/2005/Atom',
'xml:lang' => 'en-US',
'xmlns:thr' => 'http://purl.org/syndication/thread/1.0'));
@ -1116,7 +1116,7 @@ class ApiAction extends Action
return User::staticGet('nickname', $nickname);
} else if ($this->arg('user_id')) {
// This is to ensure that a non-numeric user_id still
// overrides screen_name even if it does not get used
// overrides screen_name even if it doesn't get used
if (is_numeric($this->arg('user_id'))) {
return User::staticGet('id', $this->arg('user_id'));
}
@ -1146,7 +1146,7 @@ class ApiAction extends Action
return User_group::staticGet('nickname', $nickname);
} else if ($this->arg('group_id')) {
// This is to ensure that a non-numeric user_id still
// overrides screen_name even if it does not get used
// overrides screen_name even if it doesn't get used
if (is_numeric($this->arg('group_id'))) {
return User_group::staticGet('id', $this->arg('group_id'));
}

View File

@ -87,7 +87,7 @@ class ApiAuthAction extends ApiAction
}
/**
* Check for a user specified via HTTP basic auth. If there is not
* Check for a user specified via HTTP basic auth. If there isn't
* one, try to get one by outputting the basic auth header.
*
* @return boolean true or false

View File

@ -39,7 +39,7 @@ require_once INSTALLDIR.'/lib/servererroraction.php';
*
* This only occurs if there's been a DB_DataObject_Error that's
* reported through PEAR, so we try to avoid doing anything that connects
* to the DB, so we do not trigger it again.
* to the DB, so we don't trigger it again.
*
* @category Action
* @package StatusNet
@ -62,12 +62,12 @@ class DBErrorAction extends ServerErrorAction
function getLanguage()
{
// Do not try to figure out user's language; just show the page
// Don't try to figure out user's language; just show the page
return common_config('site', 'language');
}
function showPrimaryNav()
{
// do not show primary nav
// don't show primary nav
}
}

View File

@ -104,11 +104,11 @@ class ErrorAction extends Action
{
parent::showPage();
// We do not want to have any more output after this
// We don't want to have any more output after this
exit();
}
// Overload a bunch of stuff so the page is not too bloated
// Overload a bunch of stuff so the page isn't too bloated
function showBody()
{

View File

@ -79,6 +79,7 @@ class GroupNav extends Widget
$nickname = $this->group->nickname;
$this->out->elementStart('ul', array('class' => 'nav'));
if (Event::handle('StartGroupGroupNav', array($this))) {
$this->out->menuItem(common_local_url('showgroup', array('nickname' =>
$nickname)),
_('Group'),
@ -120,6 +121,8 @@ class GroupNav extends Widget
$action_name == 'groupdesignsettings',
'nav_group_design');
}
Event::handle('EndGroupGroupNav', array($this));
}
$this->out->elementEnd('ul');
}
}

View File

@ -76,7 +76,7 @@ class HTMLOutputter extends XMLOutputter
/**
* Start an HTML document
*
* If $type is not specified, will attempt to do content negotiation.
* If $type isn't specified, will attempt to do content negotiation.
*
* Attempts to do content negotiation for language, also.
*

View File

@ -119,7 +119,7 @@ class ImageFile
return;
}
// Do not crop/scale if it is not necessary
// Don't crop/scale if it isn't necessary
if ($size === $this->width
&& $size === $this->height
&& $x === 0

View File

@ -437,7 +437,7 @@ function jabber_public_notice($notice)
$public = common_config('xmpp', 'public');
// FIXME PRIV do not send out private messages here
// FIXME PRIV don't send out private messages here
// XXX: should we send out non-local messages if public,localonly
// = false? I think not

View File

@ -467,7 +467,7 @@ function mail_notify_nudge($from, $to)
"these days and is inviting you to post some news.\n\n".
"So let's hear from you :)\n\n".
"%3\$s\n\n".
"Do not reply to this email. It will not get to them.\n\n".
"Don't reply to this email; it won't get to them.\n\n".
"With kind regards,\n".
"%4\$s\n"),
$from_profile->getBestName(),
@ -516,7 +516,7 @@ function mail_notify_message($message, $from=null, $to=null)
"------------------------------------------------------\n\n".
"You can reply to their message here:\n\n".
"%4\$s\n\n".
"Do not reply to this email. It will not get to them.\n\n".
"Don't reply to this email; it won't get to them.\n\n".
"With kind regards,\n".
"%5\$s\n"),
$from_profile->getBestName(),
@ -532,7 +532,7 @@ function mail_notify_message($message, $from=null, $to=null)
/**
* notify a user that one of their notices has been chosen as a 'fave'
*
* Does not check that the user has an email address nor if they
* Doesn't check that the user has an email address nor if they
* want to receive notification of faves. Maybe this happens higher
* up the stack...?
*

View File

@ -347,7 +347,7 @@ class NoticeListItem extends Widget
* show the link to the main page for the notice
*
* Displays a link to the page for a notice, with "relative" time. Tries to
* get remote notice URLs correct, but does not always succeed.
* get remote notice URLs correct, but doesn't always succeed.
*
* @return void
*/
@ -483,7 +483,7 @@ class NoticeListItem extends Widget
* show a link to reply to the current notice
*
* Should either do the reply in the current notice form (if available), or
* link out to the notice-posting form. A little flakey, does not always work.
* link out to the notice-posting form. A little flakey, doesn't always work.
*
* @return void
*/

View File

@ -96,8 +96,8 @@ class QueueHandler extends Daemon
* Initialization, run when the queue handler starts.
* If this function indicates failure, the handler run will be aborted.
*
* @fixme run() will abort if this does not return true,
* but some subclasses do not bother.
* @fixme run() will abort if this doesn't return true,
* but some subclasses don't bother.
* @return boolean true on success, false on failure
*/
function start()
@ -108,8 +108,8 @@ class QueueHandler extends Daemon
* Cleanup, run when the queue handler ends.
* If this function indicates failure, a warning will be logged.
*
* @fixme run() will throw warnings if this does not return true,
* but many subclasses do not bother.
* @fixme run() will throw warnings if this doesn't return true,
* but many subclasses don't bother.
* @return boolean true on success, false on failure
*/
function finish()
@ -137,7 +137,7 @@ class QueueHandler extends Daemon
* method, which passes control back to our handle_notice() method for
* each notice that comes in on the queue.
*
* Most of the time this will not need to be overridden in a subclass.
* Most of the time this won't need to be overridden in a subclass.
*
* @return boolean true on success, false on failure
*/
@ -173,7 +173,7 @@ class QueueHandler extends Daemon
* Called by QueueHandler after each handled item or empty polling cycle.
* This is a good time to e.g. service your XMPP connection.
*
* Does not need to be overridden if there's no maintenance to do.
* Doesn't need to be overridden if there's no maintenance to do.
*
* @param int $timeout seconds to sleep if there's nothing to do
*/

View File

@ -386,7 +386,7 @@ class Rss10Action extends Action
return null;
}
// FIXME: does not handle modified profiles, avatars, deleted notices
// FIXME: doesn't handle modified profiles, avatars, deleted notices
return strtotime($this->notices[0]->created);
}

View File

@ -119,7 +119,7 @@ class MySQLSearch extends SearchEngine
return true;
} else if ('identica_notices' === $this->table) {
// Do not show imported notices
// Don't show imported notices
$this->target->whereAdd('notice.is_local != ' . Notice::GATEWAY);
if (strtolower($q) != $q) {

View File

@ -61,7 +61,6 @@ function common_init_language()
$language = common_language();
$locale_set = common_init_locale($language);
setlocale(LC_CTYPE, 'C');
// So we do not have to make people install the gettext locales
$path = common_config('site','locale_path');
bindtextdomain("statusnet", $path);
@ -139,7 +138,7 @@ function common_check_user($nickname, $password)
}
}
}else{
//no handler indicated the credentials were valid, and we know their not valid because the user is not in the database
//no handler indicated the credentials were valid, and we know their not valid because the user isn't in the database
return false;
}
} else {
@ -396,7 +395,7 @@ function common_current_user()
}
// Logins that are 'remembered' aren't 'real' -- they're subject to
// cookie-stealing. So, we do not let them do certain things. New reg,
// cookie-stealing. So, we don't let them do certain things. New reg,
// OpenID, and password logins _are_ real.
function common_real_login($real=true)
@ -1151,7 +1150,7 @@ function common_accept_to_prefs($accept, $def = '*/*')
$parts = explode(',', $accept);
foreach($parts as $part) {
// FIXME: does not deal with params like 'text/html; level=1'
// FIXME: doesn't deal with params like 'text/html; level=1'
@list($value, $qpart) = explode(';', trim($part));
$match = array();
if(!isset($qpart)) {
@ -1350,7 +1349,7 @@ function common_error_handler($errno, $errstr, $errfile, $errline, $errcontext)
}
// FIXME: show error page if we're on the Web
/* Do not execute PHP internal error handler */
/* Don't execute PHP internal error handler */
return true;
}
@ -1452,7 +1451,7 @@ function common_shorten_url($long_url)
}
global $_shorteners;
if (!isset($_shorteners[$svc])) {
//the user selected service does not exist, so default to ur1.ca
//the user selected service doesn't exist, so default to ur1.ca
$svc = 'ur1.ca';
}
if (!isset($_shorteners[$svc])) {

View File

@ -112,7 +112,7 @@ class XMLOutputter
*
* Utility for outputting an XML element. A convenient wrapper
* for a bunch of longer XMLWriter calls. This is best for
* when an element does not have any sub-elements; if that's the
* when an element doesn't have any sub-elements; if that's the
* case, use elementStart() and elementEnd() instead.
*
* The $content element will be escaped for XML. If you need

View File

@ -37,7 +37,7 @@ class XmppQueueHandler extends QueueHandler
function start()
{
# Low priority; we do not want to receive messages
# Low priority; we don't want to receive messages
$this->log(LOG_INFO, "INITIALIZE");
$this->conn = jabber_connect($this->_id.$this->transport());

View File

@ -79,7 +79,7 @@ class AutocompleteAction extends Action
function etag()
{
return '"' . implode(':', array($this->arg('action'),
crc32($this->arg('q')), //the actual string can have funny characters in we do not want showing up in the etag
crc32($this->arg('q')), //the actual string can have funny characters in we don't want showing up in the etag
$this->arg('limit'),
$this->lastModified())) . '"';
}

View File

@ -85,7 +85,7 @@ class BlogspamNetPlugin extends Plugin
} else if (preg_match('/^SPAM(:(.*))?$/', $response, $match)) {
throw new ClientException(sprintf(_("Spam checker results: %s"), $match[2]), 400);
} else if (preg_match('/^OK$/', $response)) {
// do not do anything
// don't do anything
} else {
throw new ServerException(sprintf(_("Unexpected response from %s: %s"), $this->baseUrl, $response), 500);
}

View File

@ -71,7 +71,7 @@ class FBConnectauthAction extends Action
'There is already a local user (' . $flink->user_id .
') linked with this Facebook (' . $this->fbuid . ').');
// We do not want these cookies
// We don't want these cookies
getFacebook()->clear_cookie_state();
$this->clientError(_('There is already a local user linked with this Facebook.'));
@ -364,7 +364,7 @@ class FBConnectauthAction extends Action
{
$url = common_get_returnto();
if ($url) {
// We do not have to return to it again
// We don't have to return to it again
common_set_returnto(null);
} else {
$url = common_local_url('all',

View File

@ -182,7 +182,7 @@ class FacebookPlugin extends Plugin
$login_url = common_local_url('FBConnectAuth');
$logout_url = common_local_url('logout');
// XXX: Facebook says we do not need this FB_RequireFeatures(),
// XXX: Facebook says we don't need this FB_RequireFeatures(),
// but we actually do, for IE and Safari. Gar.
$js = '<script type="text/javascript">';
@ -201,7 +201,7 @@ class FacebookPlugin extends Plugin
// The below function alters the logout link so that it logs the user out
// of Facebook Connect as well as the site. However, for some pages
// (FB Connect Settings) we need to output the FB Connect scripts (to
// show an existing FB connection even if the user is not authenticated
// show an existing FB connection even if the user isn't authenticated
// with Facebook connect) but NOT alter the logout link. And the only
// way to reliably do that is with the FB Connect .js libs. Crazy.

View File

@ -57,7 +57,7 @@ class Facebook {
* @param api_key your Developer API key
* @param secret your Developer API secret
* @param generate_session_secret whether to automatically generate a session
* if the user does not have one, but
* if the user doesn't have one, but
* there is an auth token present in the url,
*/
public function __construct($api_key, $secret, $generate_session_secret=false) {
@ -192,7 +192,7 @@ class Facebook {
}
return $session_secret;
} catch (FacebookRestClientException $e) {
// API_EC_PARAM means we do not have a logged in user, otherwise who
// API_EC_PARAM means we don't have a logged in user, otherwise who
// knows what it means, so just throw it.
if ($e->getCode() != FacebookAPIErrorCodes::API_EC_PARAM) {
throw $e;
@ -204,7 +204,7 @@ class Facebook {
try {
return $this->api_client->auth_getSession($auth_token, $this->generate_session_secret);
} catch (FacebookRestClientException $e) {
// API_EC_PARAM means we do not have a logged in user, otherwise who
// API_EC_PARAM means we don't have a logged in user, otherwise who
// knows what it means, so just throw it.
if ($e->getCode() != FacebookAPIErrorCodes::API_EC_PARAM) {
throw $e;
@ -265,7 +265,7 @@ class Facebook {
if ($this->in_fb_canvas()) {
echo '<fb:redirect url="' . $url . '"/>';
} else if (preg_match('/^https?:\/\/([^\/]*\.)?facebook\.com(:\d+)?/i', $url)) {
// make sure facebook.com url's load in the full frame so that we do not
// make sure facebook.com url's load in the full frame so that we don't
// get a frame within a frame.
echo "<script type=\"text/javascript\">\ntop.location.href = \"$url\";\n</script>";
} else {

View File

@ -93,7 +93,7 @@ class FacebookDesktop extends Facebook {
}
public function verify_signature($fb_params, $expected_sig) {
// we do not want to verify the signature until we have a valid
// we don't want to verify the signature until we have a valid
// session secret
if ($this->verify_sig) {
return parent::verify_signature($fb_params, $expected_sig);

View File

@ -46,7 +46,7 @@ class FacebookRestClient {
// on canvas pages
public $added;
public $is_user;
// we do not pass friends list to iframes, but we want to make
// we don't pass friends list to iframes, but we want to make
// friends_get really simple in the canvas_user (non-logged in) case.
// So we use the canvas_user as default arg to friends_get
public $canvas_user;
@ -657,7 +657,7 @@ function toggleDisplay(id, type) {
* deleted.
*
* IMPORTANT: If your application has registered public tags
* that other applications may be using, do not delete those tags!
* that other applications may be using, don't delete those tags!
* Doing so can break the FBML ofapplications that are using them.
*
* @param array $tag_names the names of the tags to delete (optinal)
@ -820,7 +820,7 @@ function toggleDisplay(id, type) {
if (is_array($target_ids)) {
$target_ids = json_encode($target_ids);
$target_ids = trim($target_ids, "[]"); // we do not want square brackets
$target_ids = trim($target_ids, "[]"); // we don't want square brackets
}
return $this->call_method('facebook.feed.publishUserAction',

View File

@ -1,5 +1,5 @@
<?php
# In PHP 5.2 or higher we do not need to bring this in
# In PHP 5.2 or higher we don't need to bring this in
if (!function_exists('json_encode')) {
require_once 'jsonwrapper_inner.php';
}

View File

@ -95,7 +95,7 @@ class FacebookAction extends Action
/**
* Start an Facebook ready HTML document
*
* For Facebook we do not want to actually output any headers,
* For Facebook we don't want to actually output any headers,
* DTD info, etc. Just Stylesheet and JavaScript links.
*
* @param string $type MIME type to use; default is to do negotation.
@ -129,7 +129,7 @@ class FacebookAction extends Action
*/
function showNoticeForm()
{
// do not do it for most of the Facebook pages
// don't do it for most of the Facebook pages
}
function showBody()
@ -581,7 +581,7 @@ class FacebookNoticeListItem extends NoticeListItem
/**
* recipe function for displaying a single notice in the Facebook App.
*
* Overridden to strip out some of the controls that we do not
* Overridden to strip out some of the controls that we don't
* want to be available.
*
* @return void

View File

@ -87,12 +87,12 @@ class GeonamesPlugin extends Plugin
$location->location_id = $n->geonameId;
$location->location_ns = self::NAMESPACE;
// handled, do not continue processing!
// handled, don't continue processing!
return false;
}
}
// Continue processing; we do not have the answer
// Continue processing; we don't have the answer
return true;
}
@ -217,7 +217,7 @@ class GeonamesPlugin extends Plugin
}
}
// For some reason we do not know, so pass.
// For some reason we don't know, so pass.
return true;
}
@ -299,7 +299,7 @@ class GeonamesPlugin extends Plugin
$url = 'http://www.geonames.org/' . $location->location_id;
// it's been filled, so do not process further.
// it's been filled, so don't process further.
return false;
}
}

View File

@ -102,4 +102,15 @@ class LdapPlugin extends Plugin
//return false, indicating that the event has been handled
return false;
}
function onCanUserChangeField($nickname, $field)
{
switch($field)
{
case 'password':
case 'nickname':
case 'email':
return false;
}
}
}

View File

@ -341,7 +341,7 @@ class FinishopenidloginAction extends Action
{
$url = common_get_returnto();
if ($url) {
# We do not have to return to it again
# We don't have to return to it again
common_set_returnto(null);
} else {
$url = common_local_url('all',
@ -421,7 +421,7 @@ class FinishopenidloginAction extends Action
$parts = parse_url($openid);
# If any of these parts exist, this will not work
# If any of these parts exist, this won't work
foreach ($bad as $badpart) {
if (array_key_exists($badpart, $parts)) {

View File

@ -187,7 +187,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
$form_html = $auth_request->formMarkup($trust_root, $process_url,
$immediate, array('id' => $form_id));
# XXX: This is cheap, but things choke if we do not escape ampersands
# XXX: This is cheap, but things choke if we don't escape ampersands
# in the HTML attributes
$form_html = preg_replace('/&/', '&amp;', $form_html);

View File

@ -44,7 +44,7 @@ if (!defined('STATUSNET')) {
* 'piwikId' => 'id'));
*
* Replace 'example.com/piwik/' with the URL to your Piwik installation and
* make sure you do not forget the final /.
* make sure you don't forget the final /.
* Replace 'id' with the ID your statusnet installation has in your Piwik
* analytics setup - for example '8'.
*

View File

@ -240,7 +240,7 @@ class RealtimePlugin extends Plugin
// FIXME: this code should be abstracted to a neutral third
// party, like Notice::asJson(). I'm not sure of the ethics
// of refactoring from within a plugin, so I'm just abusing
// the ApiAction method. Do not do this unless you're me!
// the ApiAction method. Don't do this unless you're me!
require_once(INSTALLDIR.'/lib/api.php');

View File

@ -115,7 +115,7 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon
// Each child ps needs its own DB connection
// Note: DataObject::getDatabaseConnection() creates
// a new connection if there is not one already
// a new connection if there isn't one already
$conn = &$flink->getDatabaseConnection();

View File

@ -136,7 +136,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
// Each child ps needs its own DB connection
// Note: DataObject::getDatabaseConnection() creates
// a new connection if there is not one already
// a new connection if there isn't one already
$conn = &$flink->getDatabaseConnection();
@ -499,7 +499,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
$avatar->height = 73;
}
$avatar->original = 0; // we do not have the original
$avatar->original = 0; // we don't have the original
$avatar->mediatype = $mediatype;
$avatar->filename = $filename;
$avatar->url = Avatar::url($filename);

View File

@ -33,7 +33,7 @@ function updateTwitter_user($twitter_id, $screen_name)
$fuser->query('BEGIN');
// Dropping down to SQL because regular DB_DataObject udpate stuff does not seem
// Dropping down to SQL because regular DB_DataObject udpate stuff doesn't seem
// to work so good with tables that have multiple column primary keys
// Any time we update the uri for a forein user we have to make sure there

View File

@ -60,9 +60,9 @@ function read_input_line($prompt)
}
/**
* On Unix-like systems where PHP readline extension is not present,
* On Unix-like systems where PHP readline extension isn't present,
* -cough- Mac OS X -cough- we can shell out to bash to do it for us.
* This lets us at least handle things like arrow keys, but we do not
* This lets us at least handle things like arrow keys, but we don't
* get any entry history. :(
*
* Shamelessly ripped from when I wrote the same code for MediaWiki. :)

View File

@ -231,7 +231,7 @@ class MailerDaemon
foreach ($parsed->parts as $part) {
$this->extract_part($part,$msg,$attachments);
}
//we do not want any attachments that are a result of this parsing
//we don't want any attachments that are a result of this parsing
return $msg;
}

View File

@ -69,7 +69,7 @@ class XmppConfirmHandler extends XmppQueueHandler
continue;
} else {
$this->log(LOG_INFO, 'Confirmation sent for ' . $confirm->address);
# Mark confirmation sent; need a dupe so we do not have the WHERE clause
# Mark confirmation sent; need a dupe so we don't have the WHERE clause
$dupe = Confirm_address::staticGet('code', $confirm->code);
if (!$dupe) {
common_log(LOG_WARNING, 'Could not refetch confirm', __FILE__);