Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
This commit is contained in:
commit
8e58f24173
|
@ -56,7 +56,7 @@ class AllrssAction extends Rss10Action
|
||||||
*
|
*
|
||||||
* @param array $args Web and URL arguments
|
* @param array $args Web and URL arguments
|
||||||
*
|
*
|
||||||
* @return boolean false if user doesn't exist
|
* @return boolean false if user does not exist
|
||||||
*/
|
*/
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,7 +36,7 @@ if (!defined('STATUSNET')) {
|
||||||
require_once INSTALLDIR . '/lib/apibareauth.php';
|
require_once INSTALLDIR . '/lib/apibareauth.php';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We don't have a rate limit, but some clients check this method.
|
* We do not have a rate limit, but some clients check this method.
|
||||||
* It always returns the same thing: 150 hits left.
|
* It always returns the same thing: 150 hits left.
|
||||||
*
|
*
|
||||||
* @category API
|
* @category API
|
||||||
|
|
|
@ -102,7 +102,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ class ApiBlockCreateAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user) || empty($this->other)) {
|
if (empty($this->user) || empty($this->other)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ class ApiBlockDestroyAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user) || empty($this->other)) {
|
if (empty($this->user) || empty($this->other)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ class ApiDirectMessageAction extends ApiAuthAction
|
||||||
$this->user = $this->auth_user;
|
$this->user = $this->auth_user;
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
|
||||||
$this->user = $this->auth_user;
|
$this->user = $this->auth_user;
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't allow unsubscribing from yourself!
|
// Do not allow unsubscribing from yourself!
|
||||||
|
|
||||||
if ($this->user->id == $this->other->id) {
|
if ($this->user->id == $this->other->id) {
|
||||||
$this->clientError(
|
$this->clientError(
|
||||||
|
|
|
@ -109,7 +109,7 @@ class ApiGroupCreateAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ class ApiGroupJoinAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ class ApiGroupLeaveAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ class ApiGroupListAction extends ApiBareAuthAction
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
|
||||||
$this->user = $this->getTargetUser($this->arg('id'));
|
$this->user = $this->getTargetUser($this->arg('id'));
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
|
||||||
$this->user = $this->getTargetUser($this->arg('id'));
|
$this->user = $this->getTargetUser($this->arg('id'));
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
|
||||||
$this->user = $this->getTargetUser($this->arg('id'));
|
$this->user = $this->getTargetUser($this->arg('id'));
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
|
||||||
$this->user = $this->getTargetUser($this->arg('id'));
|
$this->user = $this->getTargetUser($this->arg('id'));
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
|
||||||
$this->user = $this->getTargetUser($this->arg('id'));
|
$this->user = $this->getTargetUser($this->arg('id'));
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ class AttachmentAction extends Action
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show local navigation
|
* Do not show local navigation
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -170,7 +170,7 @@ class AttachmentAction extends Action
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show page notice
|
* Do not show page notice
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -49,7 +49,7 @@ class AvatarbynicknameAction extends Action
|
||||||
*
|
*
|
||||||
* @param array $args query arguments
|
* @param array $args query arguments
|
||||||
*
|
*
|
||||||
* @return boolean false if nickname or user isn't found
|
* @return boolean false if nickname or user is not found
|
||||||
*/
|
*/
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,7 +67,7 @@ class DeletenoticeAction extends Action
|
||||||
common_user_error(_('Not logged in.'));
|
common_user_error(_('Not logged in.'));
|
||||||
exit;
|
exit;
|
||||||
} else if ($this->notice->profile_id != $this->user_profile->id &&
|
} else if ($this->notice->profile_id != $this->user_profile->id &&
|
||||||
!$this->user->hasRight(Right::deleteOthersNotice)) {
|
!$this->user->hasRight(Right::DELETEOTHERSNOTICE)) {
|
||||||
common_user_error(_('Can\'t delete this notice.'));
|
common_user_error(_('Can\'t delete this notice.'));
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,7 @@ class GroupblockAction extends Action
|
||||||
$this->clientError(_('User is already blocked from group.'));
|
$this->clientError(_('User is already blocked from group.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// XXX: could have proactive blocks, but we don't have UI for it.
|
// XXX: could have proactive blocks, but we do not have UI for it.
|
||||||
if (!$this->profile->isMember($this->group)) {
|
if (!$this->profile->isMember($this->group)) {
|
||||||
$this->clientError(_('User is not a member of group.'));
|
$this->clientError(_('User is not a member of group.'));
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -159,7 +159,7 @@ class LoginAction extends Action
|
||||||
$url = common_get_returnto();
|
$url = common_get_returnto();
|
||||||
|
|
||||||
if ($url) {
|
if ($url) {
|
||||||
// We don't have to return to it again
|
// We do not have to return to it again
|
||||||
common_set_returnto(null);
|
common_set_returnto(null);
|
||||||
} else {
|
} else {
|
||||||
$url = common_local_url('all',
|
$url = common_local_url('all',
|
||||||
|
|
|
@ -81,7 +81,7 @@ class LogoutAction extends Action
|
||||||
{
|
{
|
||||||
common_set_user(null);
|
common_set_user(null);
|
||||||
common_real_login(false); // not logged in
|
common_real_login(false); // not logged in
|
||||||
common_forgetme(); // don't log back in!
|
common_forgetme(); // do not log back in!
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ class MicrosummaryAction extends Action
|
||||||
$user = User::staticGet('nickname', $nickname);
|
$user = User::staticGet('nickname', $nickname);
|
||||||
|
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
$this->clientError(_('No such user'), 404);
|
$this->clientError(_('No such user.'), 404);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ class NewmessageAction extends Action
|
||||||
/**
|
/**
|
||||||
* Title of the page
|
* Title of the page
|
||||||
*
|
*
|
||||||
* Note that this usually doesn't get called unless something went wrong
|
* Note that this usually does not get called unless something went wrong
|
||||||
*
|
*
|
||||||
* @return string page title
|
* @return string page title
|
||||||
*/
|
*/
|
||||||
|
@ -113,7 +113,7 @@ class NewmessageAction extends Action
|
||||||
$this->other = User::staticGet('id', $this->to);
|
$this->other = User::staticGet('id', $this->to);
|
||||||
|
|
||||||
if (!$this->other) {
|
if (!$this->other) {
|
||||||
$this->clientError(_('No such user'), 404);
|
$this->clientError(_('No such user.'), 404);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ class NewnoticeAction extends Action
|
||||||
/**
|
/**
|
||||||
* Title of the page
|
* Title of the page
|
||||||
*
|
*
|
||||||
* Note that this usually doesn't get called unless something went wrong
|
* Note that this usually does not get called unless something went wrong
|
||||||
*
|
*
|
||||||
* @return string page title
|
* @return string page title
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -52,7 +52,7 @@ class OpensearchAction extends Action
|
||||||
*
|
*
|
||||||
* @param array $args query arguments
|
* @param array $args query arguments
|
||||||
*
|
*
|
||||||
* @return boolean false if user doesn't exist
|
* @return boolean false if user does not exist
|
||||||
*/
|
*/
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ class OpensearchAction extends Action
|
||||||
$this->element('Url', array('type' => 'text/html', 'method' => 'get',
|
$this->element('Url', array('type' => 'text/html', 'method' => 'get',
|
||||||
'template' => str_replace('---', '{searchTerms}', common_local_url($type, array('q' => '---')))));
|
'template' => str_replace('---', '{searchTerms}', common_local_url($type, array('q' => '---')))));
|
||||||
$this->element('Image', array('height' => 16, 'width' => 16, 'type' => 'image/vnd.microsoft.icon'), common_path('favicon.ico'));
|
$this->element('Image', array('height' => 16, 'width' => 16, 'type' => 'image/vnd.microsoft.icon'), common_path('favicon.ico'));
|
||||||
$this->element('Image', array('height' => 50, 'width' => 50, 'type' => 'image/png'), theme_path('logo.png'));
|
$this->element('Image', array('height' => 50, 'width' => 50, 'type' => 'image/png'), Theme::path('logo.png'));
|
||||||
$this->element('AdultContent', null, 'false');
|
$this->element('AdultContent', null, 'false');
|
||||||
$this->element('Language', null, common_language());
|
$this->element('Language', null, common_language());
|
||||||
$this->element('OutputEncoding', null, 'UTF-8');
|
$this->element('OutputEncoding', null, 'UTF-8');
|
||||||
|
|
|
@ -97,7 +97,7 @@ class PasswordsettingsAction extends AccountSettingsAction
|
||||||
|
|
||||||
|
|
||||||
$this->elementStart('ul', 'form_data');
|
$this->elementStart('ul', 'form_data');
|
||||||
// Users who logged in with OpenID won't have a pwd
|
// Users who logged in with OpenID will not have a pwd
|
||||||
if ($user->password) {
|
if ($user->password) {
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$this->password('oldpassword', _('Old password'));
|
$this->password('oldpassword', _('Old password'));
|
||||||
|
|
|
@ -149,13 +149,13 @@ class RecoverpasswordAction extends Action
|
||||||
$this->elementStart('div', 'instructions');
|
$this->elementStart('div', 'instructions');
|
||||||
if ($this->mode == 'recover') {
|
if ($this->mode == 'recover') {
|
||||||
$this->element('p', null,
|
$this->element('p', null,
|
||||||
_('If you\'ve forgotten or lost your' .
|
_('If you have forgotten or lost your' .
|
||||||
' password, you can get a new one sent to' .
|
' password, you can get a new one sent to' .
|
||||||
' the email address you have stored' .
|
' the email address you have stored' .
|
||||||
' in your account.'));
|
' in your account.'));
|
||||||
} else if ($this->mode == 'reset') {
|
} else if ($this->mode == 'reset') {
|
||||||
$this->element('p', null,
|
$this->element('p', null,
|
||||||
_('You\'ve been identified. Enter a' .
|
_('You have been identified. Enter a' .
|
||||||
' new password below. '));
|
' new password below. '));
|
||||||
}
|
}
|
||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
|
@ -185,10 +185,10 @@ class RecoverpasswordAction extends Action
|
||||||
'class' => 'form_settings',
|
'class' => 'form_settings',
|
||||||
'action' => common_local_url('recoverpassword')));
|
'action' => common_local_url('recoverpassword')));
|
||||||
$this->elementStart('fieldset');
|
$this->elementStart('fieldset');
|
||||||
$this->element('legend', null, _('Password recover'));
|
$this->element('legend', null, _('Password recovery'));
|
||||||
$this->elementStart('ul', 'form_data');
|
$this->elementStart('ul', 'form_data');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$this->input('nicknameoremail', _('Nickname or email'),
|
$this->input('nicknameoremail', _('Nickname or email address'),
|
||||||
$this->trimmed('nicknameoremail'),
|
$this->trimmed('nicknameoremail'),
|
||||||
_('Your nickname on this server, ' .
|
_('Your nickname on this server, ' .
|
||||||
'or your registered email address.'));
|
'or your registered email address.'));
|
||||||
|
|
|
@ -174,7 +174,7 @@ class RegisterAction extends Action
|
||||||
$bio = $this->trimmed('bio');
|
$bio = $this->trimmed('bio');
|
||||||
$location = $this->trimmed('location');
|
$location = $this->trimmed('location');
|
||||||
|
|
||||||
// We don't trim these... whitespace is OK in a password!
|
// We do not trim these... whitespace is OK in a password!
|
||||||
$password = $this->arg('password');
|
$password = $this->arg('password');
|
||||||
$confirm = $this->arg('confirm');
|
$confirm = $this->arg('confirm');
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ class RemotesubscribeAction extends Action
|
||||||
$this->profile_url = $this->trimmed('profile_url');
|
$this->profile_url = $this->trimmed('profile_url');
|
||||||
|
|
||||||
if (!$this->profile_url) {
|
if (!$this->profile_url) {
|
||||||
$this->showForm(_('No such user'));
|
$this->showForm(_('No such user.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -418,7 +418,7 @@ class ShowgroupAction extends GroupDesignAction
|
||||||
// XXX: WORM cache this
|
// XXX: WORM cache this
|
||||||
$members = $this->group->getMembers();
|
$members = $this->group->getMembers();
|
||||||
$members_count = 0;
|
$members_count = 0;
|
||||||
/** $member->count() doesn't work. */
|
/** $member->count() does not work. */
|
||||||
while ($members->fetch()) {
|
while ($members->fetch()) {
|
||||||
$members_count++;
|
$members_count++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ class ShowmessageAction extends MailboxAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show local navigation
|
* Do not show local navigation
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -147,7 +147,7 @@ class ShowmessageAction extends MailboxAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show page notice
|
* Do not show page notice
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -157,7 +157,7 @@ class ShowmessageAction extends MailboxAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show aside
|
* Do not show aside
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -167,7 +167,7 @@ class ShowmessageAction extends MailboxAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show any instructions
|
* Do not show any instructions
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -208,7 +208,7 @@ class ShownoticeAction extends OwnerDesignAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show local navigation
|
* Do not show local navigation
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -234,7 +234,7 @@ class ShownoticeAction extends OwnerDesignAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show page notice
|
* Do not show page notice
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -244,7 +244,7 @@ class ShownoticeAction extends OwnerDesignAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show aside
|
* Do not show aside
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -253,7 +253,7 @@ class ShowstreamAction extends ProfileAction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We don't show the author for a profile, since we already know who it is!
|
// We do not show the author for a profile, since we already know who it is!
|
||||||
|
|
||||||
class ProfileNoticeList extends NoticeList
|
class ProfileNoticeList extends NoticeList
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,7 +61,7 @@ class SupAction extends Action
|
||||||
$notice = new Notice();
|
$notice = new Notice();
|
||||||
|
|
||||||
# XXX: cache this. Depends on how big this protocol becomes;
|
# XXX: cache this. Depends on how big this protocol becomes;
|
||||||
# Re-doing this query every 15 seconds isn't the end of the world.
|
# Re-doing this query every 15 seconds is not the end of the world.
|
||||||
|
|
||||||
$divider = common_sql_date(time() - $seconds);
|
$divider = common_sql_date(time() - $seconds);
|
||||||
|
|
||||||
|
|
|
@ -250,7 +250,7 @@ class TwitapisearchatomAction extends ApiAction
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: this alternate link is not quite right because our
|
// FIXME: this alternate link is not quite right because our
|
||||||
// web-based notice search doesn't support a rpp (responses per
|
// web-based notice search does not support a rpp (responses per
|
||||||
// page) param yet
|
// page) param yet
|
||||||
|
|
||||||
$this->element('link', array('type' => 'text/html',
|
$this->element('link', array('type' => 'text/html',
|
||||||
|
|
|
@ -55,7 +55,7 @@ class TwitapitrendsAction extends ApiAction
|
||||||
*
|
*
|
||||||
* @param array $args Web and URL arguments
|
* @param array $args Web and URL arguments
|
||||||
*
|
*
|
||||||
* @return boolean false if user doesn't exist
|
* @return boolean false if user does not exist
|
||||||
*/
|
*/
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
|
|
|
@ -102,6 +102,6 @@ class Avatar extends Memcached_DataObject
|
||||||
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
|
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
|
||||||
AVATAR_STREAM_SIZE => 'stream',
|
AVATAR_STREAM_SIZE => 'stream',
|
||||||
AVATAR_MINI_SIZE => 'mini');
|
AVATAR_MINI_SIZE => 'mini');
|
||||||
return theme_path('default-avatar-'.$sizenames[$size].'.png');
|
return Theme::path('default-avatar-'.$sizenames[$size].'.png');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ class File_redirection extends Memcached_DataObject
|
||||||
'connect_timeout' => 10, // # seconds to wait
|
'connect_timeout' => 10, // # seconds to wait
|
||||||
'max_redirs' => $redirs, // # max number of http redirections to follow
|
'max_redirs' => $redirs, // # max number of http redirections to follow
|
||||||
'follow_redirects' => true, // Follow redirects
|
'follow_redirects' => true, // Follow redirects
|
||||||
'store_body' => false, // We won't need body content here.
|
'store_body' => false, // We will not need body content here.
|
||||||
));
|
));
|
||||||
return $request;
|
return $request;
|
||||||
}
|
}
|
||||||
|
@ -81,12 +81,12 @@ class File_redirection extends Memcached_DataObject
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$request = self::_commonHttp($short_url, $redirs);
|
$request = self::_commonHttp($short_url, $redirs);
|
||||||
// Don't include body in output
|
// Do not include body in output
|
||||||
$request->setMethod(HTTP_Request2::METHOD_HEAD);
|
$request->setMethod(HTTP_Request2::METHOD_HEAD);
|
||||||
$response = $request->send();
|
$response = $request->send();
|
||||||
|
|
||||||
if (405 == $response->getStatus()) {
|
if (405 == $response->getStatus()) {
|
||||||
// Server doesn't support HEAD method? Can this really happen?
|
// Server does not support HEAD method? Can this really happen?
|
||||||
// We'll try again as a GET and ignore the response data.
|
// We'll try again as a GET and ignore the response data.
|
||||||
$request = self::_commonHttp($short_url, $redirs);
|
$request = self::_commonHttp($short_url, $redirs);
|
||||||
$response = $request->send();
|
$response = $request->send();
|
||||||
|
@ -178,7 +178,7 @@ class File_redirection extends Memcached_DataObject
|
||||||
case 'aim':
|
case 'aim':
|
||||||
case 'jabber':
|
case 'jabber':
|
||||||
case 'xmpp':
|
case 'xmpp':
|
||||||
// don't touch anything
|
// do not touch anything
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -146,7 +146,7 @@ class Notice extends Memcached_DataObject
|
||||||
|
|
||||||
/* Add them to the database */
|
/* Add them to the database */
|
||||||
foreach(array_unique($hashtags) as $hashtag) {
|
foreach(array_unique($hashtags) as $hashtag) {
|
||||||
/* elide characters we don't want in the tag */
|
/* elide characters we do not want in the tag */
|
||||||
$this->saveTag($hashtag);
|
$this->saveTag($hashtag);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -1105,7 +1105,7 @@ class Notice extends Memcached_DataObject
|
||||||
if (empty($recipient)) {
|
if (empty($recipient)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Don't save replies from blocked profile to local user
|
// Do not save replies from blocked profile to local user
|
||||||
$recipient_user = User::staticGet('id', $recipient->id);
|
$recipient_user = User::staticGet('id', $recipient->id);
|
||||||
if (!empty($recipient_user) && $recipient_user->hasBlocked($sender)) {
|
if (!empty($recipient_user) && $recipient_user->hasBlocked($sender)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1131,7 +1131,7 @@ class Notice extends Memcached_DataObject
|
||||||
$tagged = Profile_tag::getTagged($sender->id, $tag);
|
$tagged = Profile_tag::getTagged($sender->id, $tag);
|
||||||
foreach ($tagged as $t) {
|
foreach ($tagged as $t) {
|
||||||
if (!$replied[$t->id]) {
|
if (!$replied[$t->id]) {
|
||||||
// Don't save replies from blocked profile to local user
|
// Do not save replies from blocked profile to local user
|
||||||
$t_user = User::staticGet('id', $t->id);
|
$t_user = User::staticGet('id', $t->id);
|
||||||
if ($t_user && $t_user->hasBlocked($sender)) {
|
if ($t_user && $t_user->hasBlocked($sender)) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -101,7 +101,7 @@ class Profile extends Memcached_DataObject
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
|
foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
|
||||||
# We don't do a scaled one if original is our scaled size
|
# We do not do a scaled one if original is our scaled size
|
||||||
if (!($avatar->width == $size && $avatar->height == $size)) {
|
if (!($avatar->width == $size && $avatar->height == $size)) {
|
||||||
|
|
||||||
$scaled_filename = $imagefile->resize($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)
|
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 isn't.
|
// XXX: I'm not sure this is going to be any faster. It probably is not.
|
||||||
$ids = Notice::stream(array($this, '_streamDirect'),
|
$ids = Notice::stream(array($this, '_streamDirect'),
|
||||||
array(),
|
array(),
|
||||||
'profile:notice_ids:' . $this->id,
|
'profile:notice_ids:' . $this->id,
|
||||||
|
|
|
@ -87,7 +87,7 @@ class User extends Memcached_DataObject
|
||||||
return (is_null($sub)) ? false : true;
|
return (is_null($sub)) ? false : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 'update' won't write key columns, so we have to do it ourselves.
|
// 'update' will not write key columns, so we have to do it ourselves.
|
||||||
|
|
||||||
function updateKeys(&$orig)
|
function updateKeys(&$orig)
|
||||||
{
|
{
|
||||||
|
@ -384,7 +384,7 @@ class User extends Memcached_DataObject
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, cache doesn't have all faves;
|
// Otherwise, cache does not have all faves;
|
||||||
// fall through to the default
|
// fall through to the default
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -463,7 +463,7 @@ class User extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
$cache = common_memcache();
|
$cache = common_memcache();
|
||||||
if ($cache) {
|
if ($cache) {
|
||||||
// Faves don't happen chronologically, so we need to blow
|
// Faves do not happen chronologically, so we need to blow
|
||||||
// ;last cache, too
|
// ;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));
|
||||||
$cache->delete(common_cache_key('fave:ids_by_user:'.$this->id.';last'));
|
$cache->delete(common_cache_key('fave:ids_by_user:'.$this->id.';last'));
|
||||||
|
@ -705,9 +705,11 @@ class User extends Memcached_DataObject
|
||||||
if (Event::handle('UserRightsCheck', array($this, $right, &$result))) {
|
if (Event::handle('UserRightsCheck', array($this, $right, &$result))) {
|
||||||
switch ($right)
|
switch ($right)
|
||||||
{
|
{
|
||||||
case Right::deleteOthersNotice:
|
case Right::DELETEOTHERSNOTICE:
|
||||||
$result = $this->hasRole('moderator');
|
$result = $this->hasRole(User_role::MODERATOR);
|
||||||
break;
|
break;
|
||||||
|
case Right::CONFIGURESITE:
|
||||||
|
$result = $this->hasRole(User_role::ADMINISTRATOR);
|
||||||
default:
|
default:
|
||||||
$result = false;
|
$result = false;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -34,7 +34,7 @@ class User_group extends Memcached_DataObject
|
||||||
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
|
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
|
||||||
AVATAR_STREAM_SIZE => 'stream',
|
AVATAR_STREAM_SIZE => 'stream',
|
||||||
AVATAR_MINI_SIZE => 'mini');
|
AVATAR_MINI_SIZE => 'mini');
|
||||||
return theme_path('default-avatar-'.$sizenames[$size].'.png');
|
return Theme::path('default-avatar-'.$sizenames[$size].'.png');
|
||||||
}
|
}
|
||||||
|
|
||||||
function homeUrl()
|
function homeUrl()
|
||||||
|
|
|
@ -45,4 +45,7 @@ class User_role extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
return Memcached_DataObject::pkeyGet('User_role', $kv);
|
return Memcached_DataObject::pkeyGet('User_role', $kv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const MODERATOR = 'moderator';
|
||||||
|
const ADMINISTRATOR = 'administrator';
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,7 +168,7 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
{
|
{
|
||||||
if (is_readable(INSTALLDIR . '/theme/' . common_config('site', 'theme') . '/favicon.ico')) {
|
if (is_readable(INSTALLDIR . '/theme/' . common_config('site', 'theme') . '/favicon.ico')) {
|
||||||
$this->element('link', array('rel' => 'shortcut icon',
|
$this->element('link', array('rel' => 'shortcut icon',
|
||||||
'href' => theme_path('favicon.ico')));
|
'href' => Theme::path('favicon.ico')));
|
||||||
} else {
|
} else {
|
||||||
$this->element('link', array('rel' => 'shortcut icon',
|
$this->element('link', array('rel' => 'shortcut icon',
|
||||||
'href' => common_path('favicon.ico')));
|
'href' => common_path('favicon.ico')));
|
||||||
|
@ -177,7 +177,7 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
if (common_config('site', 'mobile')) {
|
if (common_config('site', 'mobile')) {
|
||||||
if (is_readable(INSTALLDIR . '/theme/' . common_config('site', 'theme') . '/apple-touch-icon.png')) {
|
if (is_readable(INSTALLDIR . '/theme/' . common_config('site', 'theme') . '/apple-touch-icon.png')) {
|
||||||
$this->element('link', array('rel' => 'apple-touch-icon',
|
$this->element('link', array('rel' => 'apple-touch-icon',
|
||||||
'href' => theme_path('apple-touch-icon.png')));
|
'href' => Theme::path('apple-touch-icon.png')));
|
||||||
} else {
|
} else {
|
||||||
$this->element('link', array('rel' => 'apple-touch-icon',
|
$this->element('link', array('rel' => 'apple-touch-icon',
|
||||||
'href' => common_path('apple-touch-icon.png')));
|
'href' => common_path('apple-touch-icon.png')));
|
||||||
|
@ -210,16 +210,16 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
|
|
||||||
if (Event::handle('StartShowUAStyles', array($this))) {
|
if (Event::handle('StartShowUAStyles', array($this))) {
|
||||||
$this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
|
$this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
|
||||||
'href="'.theme_path('css/ie.css', 'base').'?version='.STATUSNET_VERSION.'" /><![endif]');
|
'href="'.Theme::path('css/ie.css', 'base').'?version='.STATUSNET_VERSION.'" /><![endif]');
|
||||||
foreach (array(6,7) as $ver) {
|
foreach (array(6,7) as $ver) {
|
||||||
if (file_exists(theme_file('css/ie'.$ver.'.css', 'base'))) {
|
if (file_exists(Theme::file('css/ie'.$ver.'.css', 'base'))) {
|
||||||
// Yes, IE people should be put in jail.
|
// Yes, IE people should be put in jail.
|
||||||
$this->comment('[if lte IE '.$ver.']><link rel="stylesheet" type="text/css" '.
|
$this->comment('[if lte IE '.$ver.']><link rel="stylesheet" type="text/css" '.
|
||||||
'href="'.theme_path('css/ie'.$ver.'.css', 'base').'?version='.STATUSNET_VERSION.'" /><![endif]');
|
'href="'.Theme::path('css/ie'.$ver.'.css', 'base').'?version='.STATUSNET_VERSION.'" /><![endif]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
|
$this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
|
||||||
'href="'.theme_path('css/ie.css', null).'?version='.STATUSNET_VERSION.'" /><![endif]');
|
'href="'.Theme::path('css/ie.css', null).'?version='.STATUSNET_VERSION.'" /><![endif]');
|
||||||
Event::handle('EndShowUAStyles', array($this));
|
Event::handle('EndShowUAStyles', array($this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,9 +391,9 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
if (Event::handle('StartAddressData', array($this))) {
|
if (Event::handle('StartAddressData', array($this))) {
|
||||||
$this->elementStart('a', array('class' => 'url home bookmark',
|
$this->elementStart('a', array('class' => 'url home bookmark',
|
||||||
'href' => common_local_url('public')));
|
'href' => common_local_url('public')));
|
||||||
if (common_config('site', 'logo') || file_exists(theme_file('logo.png'))) {
|
if (common_config('site', 'logo') || file_exists(Theme::file('logo.png'))) {
|
||||||
$this->element('img', array('class' => 'logo photo',
|
$this->element('img', array('class' => 'logo photo',
|
||||||
'src' => (common_config('site', 'logo')) ? common_config('site', 'logo') : theme_path('logo.png'),
|
'src' => (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png'),
|
||||||
'alt' => common_config('site', 'name')));
|
'alt' => common_config('site', 'name')));
|
||||||
}
|
}
|
||||||
$this->element('span', array('class' => 'fn org'), common_config('site', 'name'));
|
$this->element('span', array('class' => 'fn org'), common_config('site', 'name'));
|
||||||
|
@ -1101,4 +1101,22 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
{
|
{
|
||||||
return Design::siteDesign();
|
return Design::siteDesign();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check the session token.
|
||||||
|
*
|
||||||
|
* Checks that the current form has the correct session token,
|
||||||
|
* and throw an exception if it does not.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function checkSessionToken()
|
||||||
|
{
|
||||||
|
// CSRF protection
|
||||||
|
$token = $this->trimmed('token');
|
||||||
|
if (empty($token) || $token != common_session_token()) {
|
||||||
|
$this->clientError(_('There was a problem with your session token.'));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
14
lib/api.php
14
lib/api.php
|
@ -66,7 +66,7 @@ class ApiAction extends Action
|
||||||
*
|
*
|
||||||
* @param array $args Web and URL arguments
|
* @param array $args Web and URL arguments
|
||||||
*
|
*
|
||||||
* @return boolean false if user doesn't exist
|
* @return boolean false if user does not exist
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
|
@ -138,7 +138,7 @@ class ApiAction extends Action
|
||||||
$design = null;
|
$design = null;
|
||||||
$user = $profile->getUser();
|
$user = $profile->getUser();
|
||||||
|
|
||||||
// Note: some profiles don't have an associated user
|
// Note: some profiles do not have an associated user
|
||||||
|
|
||||||
if (!empty($user)) {
|
if (!empty($user)) {
|
||||||
$design = $user->getDesign();
|
$design = $user->getDesign();
|
||||||
|
@ -203,7 +203,7 @@ class ApiAction extends Action
|
||||||
if ($get_notice) {
|
if ($get_notice) {
|
||||||
$notice = $profile->getCurrentNotice();
|
$notice = $profile->getCurrentNotice();
|
||||||
if ($notice) {
|
if ($notice) {
|
||||||
# don't get user!
|
# do not get user!
|
||||||
$twitter_user['status'] = $this->twitterStatusArray($notice, false);
|
$twitter_user['status'] = $this->twitterStatusArray($notice, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -263,7 +263,7 @@ class ApiAction extends Action
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($include_user) {
|
if ($include_user) {
|
||||||
# Don't get notice (recursive!)
|
# Do not get notice (recursive!)
|
||||||
$twitter_user = $this->twitterUserArray($profile, false);
|
$twitter_user = $this->twitterUserArray($profile, false);
|
||||||
$twitter_status['user'] = $twitter_user;
|
$twitter_status['user'] = $twitter_user;
|
||||||
}
|
}
|
||||||
|
@ -1074,7 +1074,7 @@ class ApiAction extends Action
|
||||||
function initTwitterAtom()
|
function initTwitterAtom()
|
||||||
{
|
{
|
||||||
$this->startXML();
|
$this->startXML();
|
||||||
// FIXME: don't hardcode the language here!
|
// FIXME: do not hardcode the language here!
|
||||||
$this->elementStart('feed', array('xmlns' => 'http://www.w3.org/2005/Atom',
|
$this->elementStart('feed', array('xmlns' => 'http://www.w3.org/2005/Atom',
|
||||||
'xml:lang' => 'en-US',
|
'xml:lang' => 'en-US',
|
||||||
'xmlns:thr' => 'http://purl.org/syndication/thread/1.0'));
|
'xmlns:thr' => 'http://purl.org/syndication/thread/1.0'));
|
||||||
|
@ -1116,7 +1116,7 @@ class ApiAction extends Action
|
||||||
return User::staticGet('nickname', $nickname);
|
return User::staticGet('nickname', $nickname);
|
||||||
} else if ($this->arg('user_id')) {
|
} else if ($this->arg('user_id')) {
|
||||||
// This is to ensure that a non-numeric user_id still
|
// This is to ensure that a non-numeric user_id still
|
||||||
// overrides screen_name even if it doesn't get used
|
// overrides screen_name even if it does not get used
|
||||||
if (is_numeric($this->arg('user_id'))) {
|
if (is_numeric($this->arg('user_id'))) {
|
||||||
return User::staticGet('id', $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);
|
return User_group::staticGet('nickname', $nickname);
|
||||||
} else if ($this->arg('group_id')) {
|
} else if ($this->arg('group_id')) {
|
||||||
// This is to ensure that a non-numeric user_id still
|
// This is to ensure that a non-numeric user_id still
|
||||||
// overrides screen_name even if it doesn't get used
|
// overrides screen_name even if it does not get used
|
||||||
if (is_numeric($this->arg('group_id'))) {
|
if (is_numeric($this->arg('group_id'))) {
|
||||||
return User_group::staticGet('id', $this->arg('group_id'));
|
return User_group::staticGet('id', $this->arg('group_id'));
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ class ApiAuthAction extends ApiAction
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check for a user specified via HTTP basic auth. If there isn't
|
* Check for a user specified via HTTP basic auth. If there is not
|
||||||
* one, try to get one by outputting the basic auth header.
|
* one, try to get one by outputting the basic auth header.
|
||||||
*
|
*
|
||||||
* @return boolean true or false
|
* @return boolean true or false
|
||||||
|
|
|
@ -227,7 +227,6 @@ require_once 'markdown.php';
|
||||||
|
|
||||||
require_once INSTALLDIR.'/lib/util.php';
|
require_once INSTALLDIR.'/lib/util.php';
|
||||||
require_once INSTALLDIR.'/lib/action.php';
|
require_once INSTALLDIR.'/lib/action.php';
|
||||||
require_once INSTALLDIR.'/lib/theme.php';
|
|
||||||
require_once INSTALLDIR.'/lib/mail.php';
|
require_once INSTALLDIR.'/lib/mail.php';
|
||||||
require_once INSTALLDIR.'/lib/subs.php';
|
require_once INSTALLDIR.'/lib/subs.php';
|
||||||
require_once INSTALLDIR.'/lib/Shorturl_api.php';
|
require_once INSTALLDIR.'/lib/Shorturl_api.php';
|
||||||
|
|
|
@ -39,7 +39,7 @@ require_once INSTALLDIR.'/lib/servererroraction.php';
|
||||||
*
|
*
|
||||||
* This only occurs if there's been a DB_DataObject_Error that's
|
* 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
|
* reported through PEAR, so we try to avoid doing anything that connects
|
||||||
* to the DB, so we don't trigger it again.
|
* to the DB, so we do not trigger it again.
|
||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
@ -62,12 +62,12 @@ class DBErrorAction extends ServerErrorAction
|
||||||
|
|
||||||
function getLanguage()
|
function getLanguage()
|
||||||
{
|
{
|
||||||
// Don't try to figure out user's language; just show the page
|
// Do not try to figure out user's language; just show the page
|
||||||
return common_config('site', 'language');
|
return common_config('site', 'language');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showPrimaryNav()
|
function showPrimaryNav()
|
||||||
{
|
{
|
||||||
// don't show primary nav
|
// do not show primary nav
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,11 +104,11 @@ class ErrorAction extends Action
|
||||||
{
|
{
|
||||||
parent::showPage();
|
parent::showPage();
|
||||||
|
|
||||||
// We don't want to have any more output after this
|
// We do not want to have any more output after this
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Overload a bunch of stuff so the page isn't too bloated
|
// Overload a bunch of stuff so the page is not too bloated
|
||||||
|
|
||||||
function showBody()
|
function showBody()
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,7 +76,7 @@ class HTMLOutputter extends XMLOutputter
|
||||||
/**
|
/**
|
||||||
* Start an HTML document
|
* Start an HTML document
|
||||||
*
|
*
|
||||||
* If $type isn't specified, will attempt to do content negotiation.
|
* If $type is not specified, will attempt to do content negotiation.
|
||||||
*
|
*
|
||||||
* Attempts to do content negotiation for language, also.
|
* Attempts to do content negotiation for language, also.
|
||||||
*
|
*
|
||||||
|
@ -375,8 +375,8 @@ class HTMLOutputter extends XMLOutputter
|
||||||
$url = parse_url($src);
|
$url = parse_url($src);
|
||||||
if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
|
if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
|
||||||
{
|
{
|
||||||
if(file_exists(theme_file($src,$theme))){
|
if(file_exists(Theme::file($src,$theme))){
|
||||||
$src = theme_path($src, $theme) . '?version=' . STATUSNET_VERSION;
|
$src = Theme::path($src, $theme) . '?version=' . STATUSNET_VERSION;
|
||||||
}else{
|
}else{
|
||||||
$src = common_path($src);
|
$src = common_path($src);
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ class ImageFile
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't crop/scale if it isn't necessary
|
// Do not crop/scale if it is not necessary
|
||||||
if ($size === $this->width
|
if ($size === $this->width
|
||||||
&& $size === $this->height
|
&& $size === $this->height
|
||||||
&& $x === 0
|
&& $x === 0
|
||||||
|
|
|
@ -437,7 +437,7 @@ function jabber_public_notice($notice)
|
||||||
|
|
||||||
$public = common_config('xmpp', 'public');
|
$public = common_config('xmpp', 'public');
|
||||||
|
|
||||||
// FIXME PRIV don't send out private messages here
|
// FIXME PRIV do not send out private messages here
|
||||||
// XXX: should we send out non-local messages if public,localonly
|
// XXX: should we send out non-local messages if public,localonly
|
||||||
// = false? I think not
|
// = false? I think not
|
||||||
|
|
||||||
|
|
|
@ -467,7 +467,7 @@ function mail_notify_nudge($from, $to)
|
||||||
"these days and is inviting you to post some news.\n\n".
|
"these days and is inviting you to post some news.\n\n".
|
||||||
"So let's hear from you :)\n\n".
|
"So let's hear from you :)\n\n".
|
||||||
"%3\$s\n\n".
|
"%3\$s\n\n".
|
||||||
"Don't reply to this email; it won't get to them.\n\n".
|
"Do not reply to this email. It will not get to them.\n\n".
|
||||||
"With kind regards,\n".
|
"With kind regards,\n".
|
||||||
"%4\$s\n"),
|
"%4\$s\n"),
|
||||||
$from_profile->getBestName(),
|
$from_profile->getBestName(),
|
||||||
|
@ -516,7 +516,7 @@ function mail_notify_message($message, $from=null, $to=null)
|
||||||
"------------------------------------------------------\n\n".
|
"------------------------------------------------------\n\n".
|
||||||
"You can reply to their message here:\n\n".
|
"You can reply to their message here:\n\n".
|
||||||
"%4\$s\n\n".
|
"%4\$s\n\n".
|
||||||
"Don't reply to this email; it won't get to them.\n\n".
|
"Do not reply to this email. It will not get to them.\n\n".
|
||||||
"With kind regards,\n".
|
"With kind regards,\n".
|
||||||
"%5\$s\n"),
|
"%5\$s\n"),
|
||||||
$from_profile->getBestName(),
|
$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'
|
* notify a user that one of their notices has been chosen as a 'fave'
|
||||||
*
|
*
|
||||||
* Doesn't check that the user has an email address nor if they
|
* Does not check that the user has an email address nor if they
|
||||||
* want to receive notification of faves. Maybe this happens higher
|
* want to receive notification of faves. Maybe this happens higher
|
||||||
* up the stack...?
|
* up the stack...?
|
||||||
*
|
*
|
||||||
|
|
|
@ -347,7 +347,7 @@ class NoticeListItem extends Widget
|
||||||
* show the link to the main page for the notice
|
* show the link to the main page for the notice
|
||||||
*
|
*
|
||||||
* Displays a link to the page for a notice, with "relative" time. Tries to
|
* Displays a link to the page for a notice, with "relative" time. Tries to
|
||||||
* get remote notice URLs correct, but doesn't always succeed.
|
* get remote notice URLs correct, but does not always succeed.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -483,7 +483,7 @@ class NoticeListItem extends Widget
|
||||||
* show a link to reply to the current notice
|
* show a link to reply to the current notice
|
||||||
*
|
*
|
||||||
* Should either do the reply in the current notice form (if available), or
|
* Should either do the reply in the current notice form (if available), or
|
||||||
* link out to the notice-posting form. A little flakey, doesn't always work.
|
* link out to the notice-posting form. A little flakey, does not always work.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -513,7 +513,7 @@ class NoticeListItem extends Widget
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
|
|
||||||
if (!empty($user) &&
|
if (!empty($user) &&
|
||||||
($this->notice->profile_id == $user->id || $user->hasRight(Right::deleteOthersNotice))) {
|
($this->notice->profile_id == $user->id || $user->hasRight(Right::DELETEOTHERSNOTICE))) {
|
||||||
|
|
||||||
$deleteurl = common_local_url('deletenotice',
|
$deleteurl = common_local_url('deletenotice',
|
||||||
array('notice' => $this->notice->id));
|
array('notice' => $this->notice->id));
|
||||||
|
|
|
@ -114,7 +114,7 @@ class NoticeSection extends Section
|
||||||
$att_class = 'attachments';
|
$att_class = 'attachments';
|
||||||
}
|
}
|
||||||
|
|
||||||
$clip = theme_path('images/icons/clip.png', 'base');
|
$clip = Theme::path('images/icons/clip.png', 'base');
|
||||||
$this->out->elementStart('a', array('class' => $att_class, 'style' => "font-style: italic;", 'href' => $href, 'title' => "# of attachments: $count"));
|
$this->out->elementStart('a', array('class' => $att_class, 'style' => "font-style: italic;", 'href' => $href, 'title' => "# of attachments: $count"));
|
||||||
$this->out->raw(" ($count ");
|
$this->out->raw(" ($count ");
|
||||||
$this->out->element('img', array('style' => 'display: inline', 'align' => 'top', 'width' => 20, 'height' => 20, 'src' => $clip, 'alt' => 'alt'));
|
$this->out->element('img', array('style' => 'display: inline', 'align' => 'top', 'width' => 20, 'height' => 20, 'src' => $clip, 'alt' => 'alt'));
|
||||||
|
|
|
@ -351,7 +351,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore
|
||||||
$author = User::staticGet('uri', $author_uri);
|
$author = User::staticGet('uri', $author_uri);
|
||||||
}
|
}
|
||||||
if (!$author) {
|
if (!$author) {
|
||||||
throw new Exception('No such user');
|
throw new Exception('No such user.');
|
||||||
}
|
}
|
||||||
|
|
||||||
common_log(LOG_DEBUG, print_r($author, true), __FILE__);
|
common_log(LOG_DEBUG, print_r($author, true), __FILE__);
|
||||||
|
@ -407,7 +407,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore
|
||||||
$user = User::staticGet('uri', $uri);
|
$user = User::staticGet('uri', $uri);
|
||||||
}
|
}
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
throw new Exception('No such user');
|
throw new Exception('No such user.');
|
||||||
}
|
}
|
||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,8 +96,8 @@ class QueueHandler extends Daemon
|
||||||
* Initialization, run when the queue handler starts.
|
* Initialization, run when the queue handler starts.
|
||||||
* If this function indicates failure, the handler run will be aborted.
|
* If this function indicates failure, the handler run will be aborted.
|
||||||
*
|
*
|
||||||
* @fixme run() will abort if this doesn't return true,
|
* @fixme run() will abort if this does not return true,
|
||||||
* but some subclasses don't bother.
|
* but some subclasses do not bother.
|
||||||
* @return boolean true on success, false on failure
|
* @return boolean true on success, false on failure
|
||||||
*/
|
*/
|
||||||
function start()
|
function start()
|
||||||
|
@ -108,8 +108,8 @@ class QueueHandler extends Daemon
|
||||||
* Cleanup, run when the queue handler ends.
|
* Cleanup, run when the queue handler ends.
|
||||||
* If this function indicates failure, a warning will be logged.
|
* If this function indicates failure, a warning will be logged.
|
||||||
*
|
*
|
||||||
* @fixme run() will throw warnings if this doesn't return true,
|
* @fixme run() will throw warnings if this does not return true,
|
||||||
* but many subclasses don't bother.
|
* but many subclasses do not bother.
|
||||||
* @return boolean true on success, false on failure
|
* @return boolean true on success, false on failure
|
||||||
*/
|
*/
|
||||||
function finish()
|
function finish()
|
||||||
|
@ -137,7 +137,7 @@ class QueueHandler extends Daemon
|
||||||
* method, which passes control back to our handle_notice() method for
|
* method, which passes control back to our handle_notice() method for
|
||||||
* each notice that comes in on the queue.
|
* each notice that comes in on the queue.
|
||||||
*
|
*
|
||||||
* Most of the time this won't need to be overridden in a subclass.
|
* Most of the time this will not need to be overridden in a subclass.
|
||||||
*
|
*
|
||||||
* @return boolean true on success, false on failure
|
* @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.
|
* Called by QueueHandler after each handled item or empty polling cycle.
|
||||||
* This is a good time to e.g. service your XMPP connection.
|
* This is a good time to e.g. service your XMPP connection.
|
||||||
*
|
*
|
||||||
* Doesn't need to be overridden if there's no maintenance to do.
|
* Does not need to be overridden if there's no maintenance to do.
|
||||||
*
|
*
|
||||||
* @param int $timeout seconds to sleep if there's nothing to do
|
* @param int $timeout seconds to sleep if there's nothing to do
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -45,6 +45,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||||
|
|
||||||
class Right
|
class Right
|
||||||
{
|
{
|
||||||
const deleteOthersNotice = 'deleteothersnotice';
|
const DELETEOTHERSNOTICE = 'deleteothersnotice';
|
||||||
|
const CONFIGURESITE = 'configuresite';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -386,7 +386,7 @@ class Rss10Action extends Action
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: doesn't handle modified profiles, avatars, deleted notices
|
// FIXME: does not handle modified profiles, avatars, deleted notices
|
||||||
|
|
||||||
return strtotime($this->notices[0]->created);
|
return strtotime($this->notices[0]->created);
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ class MySQLSearch extends SearchEngine
|
||||||
return true;
|
return true;
|
||||||
} else if ('identica_notices' === $this->table) {
|
} else if ('identica_notices' === $this->table) {
|
||||||
|
|
||||||
// Don't show imported notices
|
// Do not show imported notices
|
||||||
$this->target->whereAdd('notice.is_local != ' . Notice::GATEWAY);
|
$this->target->whereAdd('notice.is_local != ' . Notice::GATEWAY);
|
||||||
|
|
||||||
if (strtolower($q) != $q) {
|
if (strtolower($q) != $q) {
|
||||||
|
|
|
@ -45,7 +45,7 @@ function subs_subscribe_user($user, $other_nickname)
|
||||||
function subs_subscribe_to($user, $other)
|
function subs_subscribe_to($user, $other)
|
||||||
{
|
{
|
||||||
if ($user->isSubscribed($other)) {
|
if ($user->isSubscribed($other)) {
|
||||||
return _('Already subscribed!.');
|
return _('Already subscribed!');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($other->hasBlocked($user)) {
|
if ($other->hasBlocked($user)) {
|
||||||
|
|
130
lib/theme.php
130
lib/theme.php
|
@ -23,7 +23,7 @@
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @author Sarven Capadisli <csarven@status.net>
|
* @author Sarven Capadisli <csarven@status.net>
|
||||||
* @copyright 2008 StatusNet, Inc.
|
* @copyright 2008-2009 StatusNet, Inc.
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
@ -33,41 +33,67 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the full path of a file in a theme dir based on its relative name
|
* Class for querying and manipulating a theme
|
||||||
*
|
*
|
||||||
* @param string $relative relative path within the theme directory
|
* Themes are directories with some expected sub-directories and files
|
||||||
* @param string $theme name of the theme; defaults to current theme
|
* in them. They're found in either local/theme (for locally-installed themes)
|
||||||
|
* or theme/ subdir of installation dir.
|
||||||
*
|
*
|
||||||
* @return string File path to the theme file
|
* This used to be a couple of functions, but for various reasons it's nice
|
||||||
|
* to have a class instead.
|
||||||
|
*
|
||||||
|
* @category Output
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Evan Prodromou <evan@status.net>
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function theme_file($relative, $theme=null)
|
class Theme
|
||||||
{
|
{
|
||||||
if (empty($theme)) {
|
var $dir = null;
|
||||||
$theme = common_config('site', 'theme');
|
var $path = null;
|
||||||
}
|
|
||||||
$dir = common_config('theme', 'dir');
|
|
||||||
if (empty($dir)) {
|
|
||||||
$dir = INSTALLDIR.'/theme';
|
|
||||||
}
|
|
||||||
return $dir.'/'.$theme.'/'.$relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the full URL of a file in a theme dir based on its relative name
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param string $relative relative path within the theme directory
|
* Determines the proper directory and path for this theme.
|
||||||
* @param string $theme name of the theme; defaults to current theme
|
|
||||||
*
|
*
|
||||||
* @return string URL of the file
|
* @param string $name Name of the theme; defaults to config value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function theme_path($relative, $theme=null)
|
function __construct($name=null)
|
||||||
{
|
{
|
||||||
if (empty($theme)) {
|
if (empty($name)) {
|
||||||
$theme = common_config('site', 'theme');
|
$name = common_config('site', 'theme');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check to see if it's in the local dir
|
||||||
|
|
||||||
|
$localroot = INSTALLDIR.'/local/theme';
|
||||||
|
|
||||||
|
$fulldir = $localroot.'/'.$name;
|
||||||
|
|
||||||
|
if (file_exists($fulldir) && is_dir($fulldir)) {
|
||||||
|
$this->dir = $fulldir;
|
||||||
|
$this->path = common_path('local/theme/'.$name.'/');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check to see if it's in the distribution dir
|
||||||
|
|
||||||
|
$instroot = common_config('theme', 'dir');
|
||||||
|
|
||||||
|
if (empty($instroot)) {
|
||||||
|
$instroot = INSTALLDIR.'/theme';
|
||||||
|
}
|
||||||
|
|
||||||
|
$fulldir = $instroot.'/'.$name;
|
||||||
|
|
||||||
|
if (file_exists($fulldir) && is_dir($fulldir)) {
|
||||||
|
|
||||||
|
$this->dir = $fulldir;
|
||||||
|
|
||||||
$path = common_config('theme', 'path');
|
$path = common_config('theme', 'path');
|
||||||
|
|
||||||
if (empty($path)) {
|
if (empty($path)) {
|
||||||
|
@ -90,5 +116,63 @@ function theme_path($relative, $theme=null)
|
||||||
|
|
||||||
// XXX: protocol
|
// XXX: protocol
|
||||||
|
|
||||||
return 'http://'.$server.$path.$theme.'/'.$relative;
|
$this->path = 'http://'.$server.$path.$name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the full local filename of a file in this theme.
|
||||||
|
*
|
||||||
|
* @param string $relative relative name, like 'logo.png'
|
||||||
|
*
|
||||||
|
* @return string full pathname, like /var/www/mublog/theme/default/logo.png
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getFile($relative)
|
||||||
|
{
|
||||||
|
return $this->dir.'/'.$relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the full HTTP url of a file in this theme
|
||||||
|
*
|
||||||
|
* @param string $relative relative name, like 'logo.png'
|
||||||
|
*
|
||||||
|
* @return string full URL, like 'http://example.com/theme/default/logo.png'
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getPath($relative)
|
||||||
|
{
|
||||||
|
return $this->path.'/'.$relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the full path of a file in a theme dir based on its relative name
|
||||||
|
*
|
||||||
|
* @param string $relative relative path within the theme directory
|
||||||
|
* @param string $name name of the theme; defaults to current theme
|
||||||
|
*
|
||||||
|
* @return string File path to the theme file
|
||||||
|
*/
|
||||||
|
|
||||||
|
static function file($relative, $name=null)
|
||||||
|
{
|
||||||
|
$theme = new Theme($name);
|
||||||
|
return $theme->getFile($relative);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the full URL of a file in a theme dir based on its relative name
|
||||||
|
*
|
||||||
|
* @param string $relative relative path within the theme directory
|
||||||
|
* @param string $name name of the theme; defaults to current theme
|
||||||
|
*
|
||||||
|
* @return string URL of the file
|
||||||
|
*/
|
||||||
|
|
||||||
|
static function path($relative, $name=null)
|
||||||
|
{
|
||||||
|
$theme = new Theme($name);
|
||||||
|
return $theme->getPath($relative);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
12
lib/util.php
12
lib/util.php
|
@ -62,7 +62,7 @@ function common_init_language()
|
||||||
$locale_set = common_init_locale($language);
|
$locale_set = common_init_locale($language);
|
||||||
setlocale(LC_CTYPE, 'C');
|
setlocale(LC_CTYPE, 'C');
|
||||||
|
|
||||||
// So we don't have to make people install the gettext locales
|
// So we do not have to make people install the gettext locales
|
||||||
$path = common_config('site','locale_path');
|
$path = common_config('site','locale_path');
|
||||||
bindtextdomain("statusnet", $path);
|
bindtextdomain("statusnet", $path);
|
||||||
bind_textdomain_codeset("statusnet", "UTF-8");
|
bind_textdomain_codeset("statusnet", "UTF-8");
|
||||||
|
@ -139,7 +139,7 @@ function common_check_user($nickname, $password)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
//no handler indicated the credentials were valid, and we know their not valid because the user isn't in the database
|
//no handler indicated the credentials were valid, and we know their not valid because the user is not in the database
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -396,7 +396,7 @@ function common_current_user()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logins that are 'remembered' aren't 'real' -- they're subject to
|
// Logins that are 'remembered' aren't 'real' -- they're subject to
|
||||||
// cookie-stealing. So, we don't let them do certain things. New reg,
|
// cookie-stealing. So, we do not let them do certain things. New reg,
|
||||||
// OpenID, and password logins _are_ real.
|
// OpenID, and password logins _are_ real.
|
||||||
|
|
||||||
function common_real_login($real=true)
|
function common_real_login($real=true)
|
||||||
|
@ -1147,7 +1147,7 @@ function common_accept_to_prefs($accept, $def = '*/*')
|
||||||
$parts = explode(',', $accept);
|
$parts = explode(',', $accept);
|
||||||
|
|
||||||
foreach($parts as $part) {
|
foreach($parts as $part) {
|
||||||
// FIXME: doesn't deal with params like 'text/html; level=1'
|
// FIXME: does not deal with params like 'text/html; level=1'
|
||||||
@list($value, $qpart) = explode(';', trim($part));
|
@list($value, $qpart) = explode(';', trim($part));
|
||||||
$match = array();
|
$match = array();
|
||||||
if(!isset($qpart)) {
|
if(!isset($qpart)) {
|
||||||
|
@ -1346,7 +1346,7 @@ function common_error_handler($errno, $errstr, $errfile, $errline, $errcontext)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: show error page if we're on the Web
|
// FIXME: show error page if we're on the Web
|
||||||
/* Don't execute PHP internal error handler */
|
/* Do not execute PHP internal error handler */
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1448,7 +1448,7 @@ function common_shorten_url($long_url)
|
||||||
}
|
}
|
||||||
global $_shorteners;
|
global $_shorteners;
|
||||||
if (!isset($_shorteners[$svc])) {
|
if (!isset($_shorteners[$svc])) {
|
||||||
//the user selected service doesn't exist, so default to ur1.ca
|
//the user selected service does not exist, so default to ur1.ca
|
||||||
$svc = 'ur1.ca';
|
$svc = 'ur1.ca';
|
||||||
}
|
}
|
||||||
if (!isset($_shorteners[$svc])) {
|
if (!isset($_shorteners[$svc])) {
|
||||||
|
|
|
@ -112,7 +112,7 @@ class XMLOutputter
|
||||||
*
|
*
|
||||||
* Utility for outputting an XML element. A convenient wrapper
|
* Utility for outputting an XML element. A convenient wrapper
|
||||||
* for a bunch of longer XMLWriter calls. This is best for
|
* for a bunch of longer XMLWriter calls. This is best for
|
||||||
* when an element doesn't have any sub-elements; if that's the
|
* when an element does not have any sub-elements; if that's the
|
||||||
* case, use elementStart() and elementEnd() instead.
|
* case, use elementStart() and elementEnd() instead.
|
||||||
*
|
*
|
||||||
* The $content element will be escaped for XML. If you need
|
* The $content element will be escaped for XML. If you need
|
||||||
|
|
|
@ -37,7 +37,7 @@ class XmppQueueHandler extends QueueHandler
|
||||||
|
|
||||||
function start()
|
function start()
|
||||||
{
|
{
|
||||||
# Low priority; we don't want to receive messages
|
# Low priority; we do not want to receive messages
|
||||||
|
|
||||||
$this->log(LOG_INFO, "INITIALIZE");
|
$this->log(LOG_INFO, "INITIALIZE");
|
||||||
$this->conn = jabber_connect($this->_id.$this->transport());
|
$this->conn = jabber_connect($this->_id.$this->transport());
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user