From 51ac34e80c5a99008b1a945b2c00b6dbfdde1529 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 26 Jul 2009 13:06:38 -0600 Subject: [PATCH 01/39] first version of deleting users --- classes/Profile.php | 75 +++++++++++++++++++++++++++++++++++++++++++++ classes/User.php | 43 ++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) diff --git a/classes/Profile.php b/classes/Profile.php index f926b2cef2..0ee6fa657f 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -461,4 +461,79 @@ class Profile extends Memcached_DataObject $c->delete(common_cache_key('profile:notice_count:'.$this->id)); } } + + function delete() + { + $this->_deleteNotices(); + $this->_deleteSubscriptions(); + $this->_deleteMessages(); + $this->_deleteTags(); + $this->_deleteBlocks(); + + $related = array('Avatar', + 'Reply', + 'Group_member', + ); + + foreach ($related as $cls) { + $inst = new $cls(); + $inst->profile_id = $this->id; + $inst->delete(); + } + + parent::delete(); + } + + function _deleteNotices() + { + $notice = new Notice(); + $notice->profile_id = $this->id; + + if ($notice->find()) { + while ($notice->fetch()) { + $other = clone($notice); + $other->delete(); + } + } + } + + function _deleteSubscriptions() + { + $sub = new Subscription(); + $sub->subscriber = $this->id; + $sub->delete(); + + $subd = new Subscription(); + $subd->subscribed = $this->id; + $subd->delete(); + } + + function _deleteMessages() + { + $msg = new Message(); + $msg->from_profile = $this->id; + $msg->delete(); + + $msg = new Message(); + $msg->to_profile = $this->id; + $msg->delete(); + } + + function _deleteTags() + { + $tag = new Profile_tag(); + $tag->tagged = $this->id; + $msg->delete(); + } + + function _deleteBlocks() + { + $block = new Profile_block(); + $block->blocked = $this->id; + $block->delete(); + + $block = new Group_block(); + $block->blocked = $this->id; + $block->delete(); + } } diff --git a/classes/User.php b/classes/User.php index bea47a3b05..991e9c18fb 100644 --- a/classes/User.php +++ b/classes/User.php @@ -685,4 +685,47 @@ class User extends Memcached_DataObject { return Design::staticGet('id', $this->design_id); } + + function delete() + { + $profile = $this->getProfile(); + $profile->delete(); + + $related = array('Fave', + 'User_openid', + 'Confirm_address', + 'Remember_me', + 'Foreign_link', + 'Invitation', + ); + + if (common_config('inboxes', 'enabled')) { + $related[] = 'Notice_inbox'; + } + + foreach ($related as $cls) { + $inst = new $cls(); + $inst->user_id = $this->id; + $inst->delete(); + } + + $this->_deleteTags(); + + parent::delete(); + } + + function _deleteTags() + { + $tag = new Profile_tag(); + $tag->tagger = $this->id; + $tag->delete(); + } + + function _deleteBlocks() + { + $block = new Profile_block(); + $block->blocker = $this->id; + $block->delete(); + // XXX delete group block? Reset blocker? + } } From 7d843b11228bb55750177ca7809d5f067d52dc20 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 11:31:34 +0000 Subject: [PATCH 02/39] jQuery.prepend takes a single param --- plugins/Realtime/realtimeupdate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index a31565177f..765710bfe2 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -27,7 +27,7 @@ RealtimeUpdate = { } var noticeItem = RealtimeUpdate.makeNoticeItem(data); - $("#notices_primary .notices").prepend(noticeItem, true); + $("#notices_primary .notices").prepend(noticeItem); $("#notices_primary .notice:first").css({display:"none"}); $("#notices_primary .notice:first").fadeIn(1000); NoticeReply(); From a51339a2195caed5a3833346f508b38953e4618b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 11:49:18 +0000 Subject: [PATCH 03/39] Don't really need the header container. Adjusted some CSS instead --- plugins/Realtime/RealtimePlugin.php | 3 --- plugins/Realtime/realtimeupdate.js | 10 +++++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index e30c411567..0f0d0f9f42 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -216,8 +216,6 @@ class RealtimePlugin extends Plugin 'class' => 'user_in') : array('id' => $action->trimmed('action'))); - $action->elementStart('div', array('id' => 'header')); - // XXX hack to deal with JS that tries to get the // root url from page output @@ -230,7 +228,6 @@ class RealtimePlugin extends Plugin if (common_logged_in()) { $action->showNoticeForm(); } - $action->elementEnd('div'); $action->showContentBlock(); $action->elementEnd('body'); diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 765710bfe2..a5f6052eab 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -114,7 +114,7 @@ RealtimeUpdate = { addPopup: function(url, timeline, iconurl) { $('#content').prepend(''); - + $('#realtime_timeline').css({ 'margin':'0 0 18px 0', 'background':'transparent url('+ iconurl + ') no-repeat 0% 30%', @@ -127,12 +127,12 @@ RealtimeUpdate = { 'font-weight':'bold', 'font-size':'1em' }); - + $('#realtime_timeline').click(function() { window.open(url, timeline, 'toolbar=no,resizable=yes,scrollbars=yes,status=yes'); - + return false; }); }, @@ -142,6 +142,10 @@ RealtimeUpdate = { window.resizeTo(575, 640); $('address').hide(); $('#content').css({'width':'92%'}); + + $('#form_notice').css({ + 'margin':'18px 0 29px 1.795%' + }); } } From 74d537c834cf897e989d9909393c879129d99ae7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 11:54:45 +0000 Subject: [PATCH 04/39] Using a relative value for the form_notice note location instead --- theme/base/css/display.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 1f37a7637b..7706fba484 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -484,7 +484,7 @@ height:16px; #form_notice .form_note { position:absolute; bottom:2px; -right:98px; +right:21.715%; z-index:9; } #form_notice .form_note dt { From 4d92d7d52ff20b22232c32c40fc88a8d03085ec9 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:15:37 +0000 Subject: [PATCH 05/39] Removed form_notice label and h1 from view --- plugins/Realtime/realtimeupdate.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index a5f6052eab..bcbf1ba287 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -144,8 +144,12 @@ RealtimeUpdate = { $('#content').css({'width':'92%'}); $('#form_notice').css({ - 'margin':'18px 0 29px 1.795%' + 'margin':'18px 0 29px 1.795%' }); + + $('#form_notice label, h1').css({'display': 'none'}); + + $('.notices li:first-child').css({'border-top':'none'}); } } From 7c335c28da886f48439ad648bd5ab4957152f140 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:21:49 +0000 Subject: [PATCH 06/39] Updated window resize --- plugins/Realtime/realtimeupdate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index bcbf1ba287..984c1bf55e 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -139,12 +139,12 @@ RealtimeUpdate = { initPopupWindow: function() { - window.resizeTo(575, 640); + window.resizeTo(500, 550); $('address').hide(); $('#content').css({'width':'92%'}); $('#form_notice').css({ - 'margin':'18px 0 29px 1.795%' + 'margin':'18px 0 29px 1.795%', }); $('#form_notice label, h1').css({'display': 'none'}); From 3bc55e7b8bff2fe331371333de9ff4f96c8584d2 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:22:56 +0000 Subject: [PATCH 07/39] Reduced form_notice margin bottom --- plugins/Realtime/realtimeupdate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 984c1bf55e..ad519158b0 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -144,7 +144,7 @@ RealtimeUpdate = { $('#content').css({'width':'92%'}); $('#form_notice').css({ - 'margin':'18px 0 29px 1.795%', + 'margin':'18px 0 18px 1.795%', }); $('#form_notice label, h1').css({'display': 'none'}); From c66a884ff5cec1e58a7ba40f310badd3f108d9a5 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:26:01 +0000 Subject: [PATCH 08/39] Increated content width --- plugins/Realtime/realtimeupdate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index ad519158b0..965fea9926 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -141,7 +141,7 @@ RealtimeUpdate = { { window.resizeTo(500, 550); $('address').hide(); - $('#content').css({'width':'92%'}); + $('#content').css({'width':'93.5%'}); $('#form_notice').css({ 'margin':'18px 0 18px 1.795%', From 8904f0f67dc8ab79b07d95452171a1d2b0af5efc Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:38:40 +0000 Subject: [PATCH 09/39] Removing only notie_data-text label from view --- plugins/Realtime/realtimeupdate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 965fea9926..fa0334881b 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -147,7 +147,7 @@ RealtimeUpdate = { 'margin':'18px 0 18px 1.795%', }); - $('#form_notice label, h1').css({'display': 'none'}); + $('#form_notice label[for=notice_data-text], h1').css({'display': 'none'}); $('.notices li:first-child').css({'border-top':'none'}); } From 3bba45102130e01032163f40e52005744623c686 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:40:35 +0000 Subject: [PATCH 10/39] Aligning notice_data-attach from top --- plugins/Realtime/realtimeupdate.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index fa0334881b..86fb01a5d9 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -150,6 +150,8 @@ RealtimeUpdate = { $('#form_notice label[for=notice_data-text], h1').css({'display': 'none'}); $('.notices li:first-child').css({'border-top':'none'}); + + $('#form_notice label[for="notice_data-attach"], #form_notice #notice_data-attach').css({'top':'0'}); } } From 7466887a2f6e9d8f5f45a8b2e92e2147c572864c Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:43:40 +0000 Subject: [PATCH 11/39] Adjusted form_notice width --- plugins/Realtime/realtimeupdate.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 86fb01a5d9..b791f4a2ab 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -145,6 +145,8 @@ RealtimeUpdate = { $('#form_notice').css({ 'margin':'18px 0 18px 1.795%', + 'width':'93%', + 'max-width':'451px' }); $('#form_notice label[for=notice_data-text], h1').css({'display': 'none'}); From 22332555cf5eb920d6f95eced76446cf189d6f54 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 12:59:01 +0000 Subject: [PATCH 12/39] Aligned notice_data-attach input --- plugins/Realtime/realtimeupdate.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index b791f4a2ab..015c004397 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -154,6 +154,11 @@ RealtimeUpdate = { $('.notices li:first-child').css({'border-top':'none'}); $('#form_notice label[for="notice_data-attach"], #form_notice #notice_data-attach').css({'top':'0'}); + + $('#form_notice #notice_data-attach').css({ + 'left':'auto', + 'right':'0' + }); } } From 60335fcbdf7b2ae4d27e7d413e7f5f46f61feda5 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 14:06:39 +0000 Subject: [PATCH 13/39] Draw a line to indicate new (unread) notice in a timeline since window blur. Inspired by Pidgin's Markerline plugin. --- plugins/Realtime/realtimeupdate.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 015c004397..b5f78e4163 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -14,6 +14,18 @@ RealtimeUpdate = { RealtimeUpdate._replyurl = replyurl; RealtimeUpdate._favorurl = favorurl; RealtimeUpdate._deleteurl = deleteurl; + + $(window).blur(function() { + $('#notices_primary .notice').css({ + 'border-top-color':$('#notices_primary .notice:last').css('border-top-color'), + 'border-top-style':'dotted' + }); + + $('#notices_primary .notice:first').css({ + 'border-top-color':'#AAAAAA', + 'border-top-style':'solid' + }); + }); }, receive: function(data) @@ -151,7 +163,7 @@ RealtimeUpdate = { $('#form_notice label[for=notice_data-text], h1').css({'display': 'none'}); - $('.notices li:first-child').css({'border-top':'none'}); + $('.notices li:first-child').css({'border-top-color':'transparent'}); $('#form_notice label[for="notice_data-attach"], #form_notice #notice_data-attach').css({'top':'0'}); From 3694058976fca36edf2d7f43a75ffc74f0a7c672 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 27 Sep 2009 14:24:31 +0000 Subject: [PATCH 14/39] Changed terminology for poping a window --- plugins/Realtime/realtimeupdate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index b5f78e4163..4cd68a816b 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -125,7 +125,7 @@ RealtimeUpdate = { addPopup: function(url, timeline, iconurl) { - $('#content').prepend(''); + $('#content').prepend(''); $('#realtime_timeline').css({ 'margin':'0 0 18px 0', From 6b7a007ef2e3ea64be547923b97f08670dc13d14 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Sun, 27 Sep 2009 20:21:16 -0700 Subject: [PATCH 15/39] Forgot to add home_timeline to the list of methods that only require bareauth. --- actions/api.php | 1 + 1 file changed, 1 insertion(+) diff --git a/actions/api.php b/actions/api.php index c236378bcb..3705d035c4 100644 --- a/actions/api.php +++ b/actions/api.php @@ -142,6 +142,7 @@ class ApiAction extends Action static $bareauth = array('statuses/user_timeline', 'statuses/friends_timeline', + 'statuses/home_timeline', 'statuses/friends', 'statuses/replies', 'statuses/mentions', From 155ba6c103b3672656937ad36bec02cb9c7834e5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 29 Sep 2009 09:12:44 -0400 Subject: [PATCH 16/39] stop overwriting created timestamp on group edit --- actions/editgroup.php | 1 - 1 file changed, 1 deletion(-) diff --git a/actions/editgroup.php b/actions/editgroup.php index e7ba836a01..b8dac31cb1 100644 --- a/actions/editgroup.php +++ b/actions/editgroup.php @@ -250,7 +250,6 @@ class EditgroupAction extends GroupDesignAction $this->group->homepage = $homepage; $this->group->description = $description; $this->group->location = $location; - $this->group->created = common_sql_now(); $result = $this->group->update($orig); From 5252c438040f071e0c61a9c93152dcf1aa382504 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 29 Sep 2009 17:43:45 -0400 Subject: [PATCH 17/39] move HTTP error code strings to class variables --- lib/clienterroraction.php | 43 +++++++++++++++++---------------------- lib/error.php | 6 ++++-- lib/servererroraction.php | 19 +++++++---------- 3 files changed, 30 insertions(+), 38 deletions(-) diff --git a/lib/clienterroraction.php b/lib/clienterroraction.php index 7d007a7567..1b98a10645 100644 --- a/lib/clienterroraction.php +++ b/lib/clienterroraction.php @@ -46,28 +46,28 @@ require_once INSTALLDIR.'/lib/error.php'; */ class ClientErrorAction extends ErrorAction { + static $status = array(400 => 'Bad Request', + 401 => 'Unauthorized', + 402 => 'Payment Required', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed'); + function __construct($message='Error', $code=400) { parent::__construct($message, $code); - - $this->status = array(400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Long', - 415 => 'Unsupported Media Type', - 416 => 'Requested Range Not Satisfiable', - 417 => 'Expectation Failed'); $this->default = 400; } @@ -91,9 +91,4 @@ class ClientErrorAction extends ErrorAction $this->showPage(); } - - function title() - { - return $this->status[$this->code]; - } } diff --git a/lib/error.php b/lib/error.php index 0c521db081..6a9b76be11 100644 --- a/lib/error.php +++ b/lib/error.php @@ -44,9 +44,10 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { */ class ErrorAction extends Action { + static $status = array(); + var $code = null; var $message = null; - var $status = null; var $default = null; function __construct($message, $code, $output='php://output', $indent=true) @@ -88,9 +89,10 @@ class ErrorAction extends Action * * @return page title */ + function title() { - return $this->message; + return self::$status[$this->code]; } function isReadOnly($args) diff --git a/lib/servererroraction.php b/lib/servererroraction.php index c6400605ea..0993a63bca 100644 --- a/lib/servererroraction.php +++ b/lib/servererroraction.php @@ -55,17 +55,17 @@ require_once INSTALLDIR.'/lib/error.php'; class ServerErrorAction extends ErrorAction { + static $status = array(500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported'); + function __construct($message='Error', $code=500) { parent::__construct($message, $code); - $this->status = array(500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported'); - $this->default = 500; // Server errors must be logged. @@ -93,9 +93,4 @@ class ServerErrorAction extends ErrorAction $this->showPage(); } - - function title() - { - return $this->status[$this->code]; - } } From 5309910b9b4dd2533ff5b2190f90bf415fd20113 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 29 Sep 2009 17:57:31 -0400 Subject: [PATCH 18/39] Twitter API returns server errors in preferred format --- actions/twitapistatuses.php | 2 +- lib/twitterapi.php | 56 ++++++++++++++++++++++--------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index 5e2867ea81..41887a68f4 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -297,7 +297,7 @@ class TwitapistatusesAction extends TwitterapiAction $source, 1, $reply_to); if (is_string($notice)) { - $this->serverError($notice); + $this->serverError($notice, 500, $apidata['content-type']); return; } diff --git a/lib/twitterapi.php b/lib/twitterapi.php index 638efba241..3bac400e2f 100644 --- a/lib/twitterapi.php +++ b/lib/twitterapi.php @@ -501,7 +501,7 @@ class TwitterapiAction extends Action $enclosure = $entry['enclosures'][0]; $this->element('enclosure', array('url'=>$enclosure['url'],'type'=>$enclosure['mimetype'],'length'=>$enclosure['size']), null); } - + if(array_key_exists('tags', $entry)){ foreach($entry['tags'] as $tag){ $this->element('category', null,$tag); @@ -939,35 +939,16 @@ class TwitterapiAction extends Action function clientError($msg, $code = 400, $content_type = 'json') { - - static $status = array(400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Long', - 415 => 'Unsupported Media Type', - 416 => 'Requested Range Not Satisfiable', - 417 => 'Expectation Failed'); - $action = $this->trimmed('action'); common_debug("User error '$code' on '$action': $msg", __FILE__); - if (!array_key_exists($code, $status)) { + if (!array_key_exists($code, ClientErrorAction::$status)) { $code = 400; } - $status_string = $status[$code]; + $status_string = ClientErrorAction::$status[$code]; + header('HTTP/1.1 '.$code.' '.$status_string); if ($content_type == 'xml') { @@ -986,6 +967,35 @@ class TwitterapiAction extends Action } + function serverError($msg, $code = 500, $content_type = 'json') + { + $action = $this->trimmed('action'); + + common_debug("Server error '$code' on '$action': $msg", __FILE__); + + if (!array_key_exists($code, ServerErrorAction::$status)) { + $code = 400; + } + + $status_string = ServerErrorAction::$status[$code]; + + header('HTTP/1.1 '.$code.' '.$status_string); + + if ($content_type == 'xml') { + $this->init_document('xml'); + $this->elementStart('hash'); + $this->element('error', null, $msg); + $this->element('request', null, $_SERVER['REQUEST_URI']); + $this->elementEnd('hash'); + $this->end_document('xml'); + } else { + $this->init_document('json'); + $error_array = array('error' => $msg, 'request' => $_SERVER['REQUEST_URI']); + print(json_encode($error_array)); + $this->end_document('json'); + } + } + function init_twitter_rss() { $this->startXML(); From eb85f16f773ff1df71d1af4fad85d40286d5f3a6 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 30 Sep 2009 10:37:46 +0000 Subject: [PATCH 19/39] Switched Doctype to XHTML 1.0 Strict (which best reflects the current grammar in use) --- lib/htmloutputter.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index aa01f6b1d9..9e3a5b305e 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -113,7 +113,9 @@ class HTMLOutputter extends XMLOutputter // Browsers don't like it when xw->startDocument('1.0', 'UTF-8'); } - $this->xw->writeDTD('html'); + $this->xw->writeDTD('html', + '-//W3C//DTD XHTML 1.0 Strict//EN', + 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); $language = $this->getLanguage(); From 353f58c23149159306131b0819de713da6b69464 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 30 Sep 2009 10:51:59 +0000 Subject: [PATCH 20/39] Outputting UTF-8 charset in document header irrespective of mimetype. --- lib/htmloutputter.php | 2 +- lib/util.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index 9e3a5b305e..99f956545b 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -106,7 +106,7 @@ class HTMLOutputter extends XMLOutputter } } - header('Content-Type: '.$type); + header('Content-Type: '.$type.'; charset=UTF-8'); $this->extraHeaders(); if( ! substr($type,0,strlen('text/html'))=='text/html' ){ diff --git a/lib/util.php b/lib/util.php index b831859e99..a069ccf7b3 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1148,7 +1148,7 @@ function common_negotiate_type($cprefs, $sprefs) } if ('text/html' === $besttype) { - return "text/html; charset=utf-8"; + return "text/html"; } return $besttype; } From 1e7df7fbab8a03468a1697240e92f67c82dadced Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 30 Sep 2009 10:53:04 +0000 Subject: [PATCH 21/39] Better check to see if the XML prolog should be outputted for XML documents i.e., if best mimetype is */*xml, then use the XML prolog. --- lib/htmloutputter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index 99f956545b..64be745beb 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -109,8 +109,8 @@ class HTMLOutputter extends XMLOutputter header('Content-Type: '.$type.'; charset=UTF-8'); $this->extraHeaders(); - if( ! substr($type,0,strlen('text/html'))=='text/html' ){ - // Browsers don't like it when xw->startDocument('1.0', 'UTF-8'); } $this->xw->writeDTD('html', From 94e3f6bb092486df99034064c0e7d553bcf7d180 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 2 Oct 2009 15:29:57 -0400 Subject: [PATCH 22/39] also delete blocks --- classes/User.php | 1 + 1 file changed, 1 insertion(+) diff --git a/classes/User.php b/classes/User.php index ef84342922..007662131c 100644 --- a/classes/User.php +++ b/classes/User.php @@ -714,6 +714,7 @@ class User extends Memcached_DataObject } $this->_deleteTags(); + $this->_deleteBlocks(); parent::delete(); } From be513db013b6079d3ff32fdb0bb332cdbace1798 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 2 Oct 2009 15:42:34 -0400 Subject: [PATCH 23/39] copy-and-paste typo in profile deletion --- classes/Profile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Profile.php b/classes/Profile.php index 463802b4ee..8385ebf889 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -523,7 +523,7 @@ class Profile extends Memcached_DataObject { $tag = new Profile_tag(); $tag->tagged = $this->id; - $msg->delete(); + $tag->delete(); } function _deleteBlocks() From 54b22c0c0bb1e7f5fbbcf9035219b5ed07e1b80c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 2 Oct 2009 15:42:58 -0400 Subject: [PATCH 24/39] script to permanently delete a user --- scripts/deleteuser.php | 68 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 scripts/deleteuser.php diff --git a/scripts/deleteuser.php b/scripts/deleteuser.php new file mode 100644 index 0000000000..67aea7921c --- /dev/null +++ b/scripts/deleteuser.php @@ -0,0 +1,68 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i::n::y'; +$longoptions = array('id::nickname::yes'); + +$helptext = <<nickname}' ({$user->id}). Are you sure? [y/N] "; + $response = fgets(STDIN); + if (strtolower($response) != 'y') { + print "Aborting.\n"; + exit(0); + } +} + +print "Deleting..."; +$user->delete(); +print "DONE.\n"; From 2d85d619074b69ff0d31249c45715af686b13986 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 2 Oct 2009 15:46:00 -0400 Subject: [PATCH 25/39] better handling of y response in deleteuser.php --- scripts/deleteuser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deleteuser.php b/scripts/deleteuser.php index 67aea7921c..52389123c5 100644 --- a/scripts/deleteuser.php +++ b/scripts/deleteuser.php @@ -57,7 +57,7 @@ if (have_option('i', 'id')) { if (!have_option('y', 'yes')) { print "About to PERMANENTLY delete user '{$user->nickname}' ({$user->id}). Are you sure? [y/N] "; $response = fgets(STDIN); - if (strtolower($response) != 'y') { + if (strtolower(trim($response)) != 'y') { print "Aborting.\n"; exit(0); } From 5528c0cd3d66c1acd7bf25b26833e8a107641f35 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 3 Oct 2009 22:06:51 +0000 Subject: [PATCH 26/39] Using CDATA for autofocus script --- lib/htmloutputter.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index 64be745beb..2ff9380cc1 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -427,16 +427,12 @@ class HTMLOutputter extends XMLOutputter function autofocus($id) { $this->elementStart('script', array('type' => 'text/javascript')); - $this->raw(' - - '); + $this->raw('/**/'); $this->elementEnd('script'); } } From aeca8807dbce951beccbc3fb0e5a4ae5600e5e5f Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Mon, 5 Oct 2009 12:55:55 -0400 Subject: [PATCH 27/39] Open tags should have closing tags --- scripts/allsites.php | 3 ++- scripts/createsim.php | 1 + scripts/decache.php | 1 + scripts/deleteuser.php | 1 + scripts/enjitqueuehandler.php | 1 + scripts/facebookqueuehandler.php | 1 + scripts/fixup_conversations.php | 1 + scripts/fixup_hashtags.php | 1 + scripts/fixup_inboxes.php | 1 + scripts/fixup_notices_rendered.php | 1 + scripts/fixup_replies.php | 1 + scripts/fixup_utf8.php | 1 + scripts/getpiddir.php | 1 + scripts/getvaliddaemons.php | 1 + scripts/inbox_users.php | 1 + scripts/jabberqueuehandler.php | 1 + scripts/maildaemon.php | 1 + scripts/ombqueuehandler.php | 1 + scripts/pingqueuehandler.php | 1 + scripts/publicqueuehandler.php | 1 + scripts/reportsnapshot.php | 1 + scripts/sessiongc.php | 1 + scripts/setpassword.php | 1 + scripts/showcache.php | 1 + scripts/smsqueuehandler.php | 1 + scripts/synctwitterfriends.php | 2 +- scripts/triminboxes.php | 1 + scripts/twitterqueuehandler.php | 1 + scripts/twitterstatusfetcher.php | 2 +- scripts/uncache_users.php | 1 + scripts/update_translations.php | 1 + scripts/xmppconfirmhandler.php | 2 +- scripts/xmppdaemon.php | 1 + 33 files changed, 34 insertions(+), 4 deletions(-) diff --git a/scripts/allsites.php b/scripts/allsites.php index cf1419e550..ff9d8bc804 100755 --- a/scripts/allsites.php +++ b/scripts/allsites.php @@ -37,4 +37,5 @@ if ($sn->find()) { while ($sn->fetch()) { print "$sn->nickname\n"; } -} \ No newline at end of file +} +?> diff --git a/scripts/createsim.php b/scripts/createsim.php index 71ed3bf722..93f904506a 100644 --- a/scripts/createsim.php +++ b/scripts/createsim.php @@ -140,3 +140,4 @@ $tagmax = (have_option('t', 'tags')) ? get_option_value('t', 'tags') : 10000 $userprefix = (have_option('x', 'prefix')) ? get_option_value('x', 'prefix') : 'testuser'; main($usercount, $noticeavg, $subsavg, $tagmax); +?> diff --git a/scripts/decache.php b/scripts/decache.php index 7cabd78ada..9b820bd832 100644 --- a/scripts/decache.php +++ b/scripts/decache.php @@ -48,3 +48,4 @@ if (!$object) { } $result = $object->decache(); +?> diff --git a/scripts/deleteuser.php b/scripts/deleteuser.php index 52389123c5..446f76878b 100644 --- a/scripts/deleteuser.php +++ b/scripts/deleteuser.php @@ -66,3 +66,4 @@ if (!have_option('y', 'yes')) { print "Deleting..."; $user->delete(); print "DONE.\n"; +?> diff --git a/scripts/enjitqueuehandler.php b/scripts/enjitqueuehandler.php index 08f733b07c..5eda062f5a 100755 --- a/scripts/enjitqueuehandler.php +++ b/scripts/enjitqueuehandler.php @@ -137,3 +137,4 @@ if ($handler->start()) { } $handler->finish(); +?> diff --git a/scripts/facebookqueuehandler.php b/scripts/facebookqueuehandler.php index e13ac4e850..dc17cb15a0 100755 --- a/scripts/facebookqueuehandler.php +++ b/scripts/facebookqueuehandler.php @@ -72,3 +72,4 @@ if (have_option('i')) { $handler = new FacebookQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/fixup_conversations.php b/scripts/fixup_conversations.php index 8a9f7bb577..f79288f7b3 100755 --- a/scripts/fixup_conversations.php +++ b/scripts/fixup_conversations.php @@ -68,3 +68,4 @@ while ($nid->fetch()) { print ".\n"; } +?> diff --git a/scripts/fixup_hashtags.php b/scripts/fixup_hashtags.php index 5cfebd8ee8..bae0947b2d 100755 --- a/scripts/fixup_hashtags.php +++ b/scripts/fixup_hashtags.php @@ -45,3 +45,4 @@ while ($notice->fetch()) { common_log_db_error($notice, 'UPDATE', __FILE__); } } +?> diff --git a/scripts/fixup_inboxes.php b/scripts/fixup_inboxes.php index d55a538853..9619f3226b 100755 --- a/scripts/fixup_inboxes.php +++ b/scripts/fixup_inboxes.php @@ -79,3 +79,4 @@ while ($user->fetch()) { $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id)); } } +?> diff --git a/scripts/fixup_notices_rendered.php b/scripts/fixup_notices_rendered.php index 359cd6cce4..4b928ecd22 100755 --- a/scripts/fixup_notices_rendered.php +++ b/scripts/fixup_notices_rendered.php @@ -49,3 +49,4 @@ while ($notice->fetch()) { common_log_db_error($notice, 'UPDATE', __FILE__); } } +?> diff --git a/scripts/fixup_replies.php b/scripts/fixup_replies.php index 7328635d3c..302c239151 100755 --- a/scripts/fixup_replies.php +++ b/scripts/fixup_replies.php @@ -39,3 +39,4 @@ while ($notice->fetch()) { common_log(LOG_INFO, 'Getting replies for notice #' . $notice->id); common_save_replies($notice); } +?> diff --git a/scripts/fixup_utf8.php b/scripts/fixup_utf8.php index 5a9fba7c3f..24d301dab8 100755 --- a/scripts/fixup_utf8.php +++ b/scripts/fixup_utf8.php @@ -363,3 +363,4 @@ $fixer = new UTF8FixerUpper(array('max_date' => $max_date, $fixer->fixup(); +?> diff --git a/scripts/getpiddir.php b/scripts/getpiddir.php index 8274c37c0f..5860655fd3 100755 --- a/scripts/getpiddir.php +++ b/scripts/getpiddir.php @@ -28,3 +28,4 @@ ENDOFHELP; require_once INSTALLDIR.'/scripts/commandline.inc'; echo common_config('daemon', 'piddir'); +?> diff --git a/scripts/getvaliddaemons.php b/scripts/getvaliddaemons.php index 8f48e8e6f0..7fffac783b 100755 --- a/scripts/getvaliddaemons.php +++ b/scripts/getvaliddaemons.php @@ -52,3 +52,4 @@ echo "pingqueuehandler.php "; if (common_config('sms', 'enabled')) { echo "smsqueuehandler.php "; } +?> diff --git a/scripts/inbox_users.php b/scripts/inbox_users.php index 32adcea213..718dd856be 100755 --- a/scripts/inbox_users.php +++ b/scripts/inbox_users.php @@ -105,3 +105,4 @@ foreach ($ids as $id) { $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id . ';last')); } } +?> diff --git a/scripts/jabberqueuehandler.php b/scripts/jabberqueuehandler.php index 8f3a56944d..b029ea1f1e 100755 --- a/scripts/jabberqueuehandler.php +++ b/scripts/jabberqueuehandler.php @@ -76,3 +76,4 @@ if (have_option('i')) { $handler = new JabberQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/maildaemon.php b/scripts/maildaemon.php index 11911dcbdc..19c77e077a 100755 --- a/scripts/maildaemon.php +++ b/scripts/maildaemon.php @@ -389,3 +389,4 @@ if (common_config('emailpost', 'enabled')) { $md = new MailerDaemon(); $md->handle_message('php://stdin'); } +?> diff --git a/scripts/ombqueuehandler.php b/scripts/ombqueuehandler.php index 8e685f1c8e..a24185da35 100755 --- a/scripts/ombqueuehandler.php +++ b/scripts/ombqueuehandler.php @@ -85,3 +85,4 @@ if (have_option('i')) { $handler = new OmbQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/pingqueuehandler.php b/scripts/pingqueuehandler.php index c92337e36c..768c06c776 100644 --- a/scripts/pingqueuehandler.php +++ b/scripts/pingqueuehandler.php @@ -67,3 +67,4 @@ if (have_option('i')) { $handler = new PingQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/publicqueuehandler.php b/scripts/publicqueuehandler.php index 50a11bcba0..ffb5acdb64 100755 --- a/scripts/publicqueuehandler.php +++ b/scripts/publicqueuehandler.php @@ -74,3 +74,4 @@ if (have_option('i')) { $handler = new PublicQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/reportsnapshot.php b/scripts/reportsnapshot.php index 71f1019ee6..b8f8d2a7cf 100644 --- a/scripts/reportsnapshot.php +++ b/scripts/reportsnapshot.php @@ -28,3 +28,4 @@ END_OF_SNAPSHOT_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; Snapshot::check(); +?> diff --git a/scripts/sessiongc.php b/scripts/sessiongc.php index af55ddf3f0..b5fdcbf341 100644 --- a/scripts/sessiongc.php +++ b/scripts/sessiongc.php @@ -34,3 +34,4 @@ $maxlifetime = ini_get('session.gc_maxlifetime'); print "Deleting sessions older than $maxlifetime seconds.\n"; Session::gc($maxlifetime); +?> diff --git a/scripts/setpassword.php b/scripts/setpassword.php index 50d49d7dbf..f951dccf78 100755 --- a/scripts/setpassword.php +++ b/scripts/setpassword.php @@ -59,3 +59,4 @@ if (!$user->update($original)) { print "Password for user '$nickname' updated.\n"; exit(0); } +?> diff --git a/scripts/showcache.php b/scripts/showcache.php index f179795728..fb0ccb5e03 100644 --- a/scripts/showcache.php +++ b/scripts/showcache.php @@ -69,3 +69,4 @@ if (empty($obj)) { var_dump($obj); print "\n"; } +?> diff --git a/scripts/smsqueuehandler.php b/scripts/smsqueuehandler.php index 6583a77da8..9e8de7a117 100755 --- a/scripts/smsqueuehandler.php +++ b/scripts/smsqueuehandler.php @@ -71,3 +71,4 @@ if (have_option('i')) { $handler = new SmsQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/synctwitterfriends.php b/scripts/synctwitterfriends.php index b30e700a1c..f582231e39 100755 --- a/scripts/synctwitterfriends.php +++ b/scripts/synctwitterfriends.php @@ -283,4 +283,4 @@ if (have_option('d') || have_option('debug')) { $syncer = new SyncTwitterFriendsDaemon($id, 60, 2, $debug); $syncer->runOnce(); - +?> diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php index da09817e5b..5153d17065 100644 --- a/scripts/triminboxes.php +++ b/scripts/triminboxes.php @@ -54,3 +54,4 @@ $cnt = $user->find(); while ($user->fetch()) { Notice_inbox::gc($user->id); } +?> diff --git a/scripts/twitterqueuehandler.php b/scripts/twitterqueuehandler.php index ce4d824d0d..820baeb0a1 100755 --- a/scripts/twitterqueuehandler.php +++ b/scripts/twitterqueuehandler.php @@ -72,3 +72,4 @@ if (have_option('i')) { $handler = new TwitterQueueHandler($id); $handler->runOnce(); +?> diff --git a/scripts/twitterstatusfetcher.php b/scripts/twitterstatusfetcher.php index 3cdf1867a1..726d2e2375 100755 --- a/scripts/twitterstatusfetcher.php +++ b/scripts/twitterstatusfetcher.php @@ -562,4 +562,4 @@ if (have_option('d') || have_option('debug')) { $fetcher = new TwitterStatusFetcher($id, 60, 2, $debug); $fetcher->runOnce(); - +?> diff --git a/scripts/uncache_users.php b/scripts/uncache_users.php index 5a1d330307..ee030f778f 100644 --- a/scripts/uncache_users.php +++ b/scripts/uncache_users.php @@ -50,3 +50,4 @@ foreach ($ids as $id) { $memc->delete(common_cache_key('user:notices_with_friends:'. $user->id)); $memc->delete(common_cache_key('user:notices_with_friends:'. $user->id . ';last')); } +?> diff --git a/scripts/update_translations.php b/scripts/update_translations.php index f145c1f0b6..f036657c54 100755 --- a/scripts/update_translations.php +++ b/scripts/update_translations.php @@ -96,3 +96,4 @@ function curl_get_file($url) return FALSE; } +?> diff --git a/scripts/xmppconfirmhandler.php b/scripts/xmppconfirmhandler.php index c7ed15e495..05c5f86ce7 100755 --- a/scripts/xmppconfirmhandler.php +++ b/scripts/xmppconfirmhandler.php @@ -160,4 +160,4 @@ if (have_option('i')) { $handler = new XmppConfirmHandler($id); $handler->runOnce(); - +?> diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index 9e621e725a..eaebd59488 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -412,3 +412,4 @@ $foreground = have_option('f', 'foreground'); $daemon = new XMPPDaemon($id, !$foreground); $daemon->runOnce(); +?> From 87f5c53dd0ff03600275077e7185291b62358ef2 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 7 Oct 2009 16:18:05 +0800 Subject: [PATCH 28/39] Fixed E_NOTICE - GroupList expects an owner object in the constructor, not an array of search terms --- actions/groupsearch.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/groupsearch.php b/actions/groupsearch.php index be15efc47c..517f127895 100644 --- a/actions/groupsearch.php +++ b/actions/groupsearch.php @@ -106,7 +106,7 @@ class GroupSearchResults extends GroupList function __construct($user_group, $terms, $action) { - parent::__construct($user_group, $terms, $action); + parent::__construct($user_group, null, $action); $this->terms = array_map('preg_quote', array_map('htmlspecialchars', $terms)); $this->pattern = '/('.implode('|',$terms).')/i'; From 9449a1e39c8470072aa30ccde1ac5d2b55d65bad Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 7 Oct 2009 16:57:38 +0800 Subject: [PATCH 29/39] Fixed E_NOTICE when the "lite" parameter isn't included in the request --- actions/twitapistatuses.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index 41887a68f4..360dff27cb 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -454,7 +454,7 @@ class TwitapistatusesAction extends TwitterapiAction function friends($args, $apidata) { parent::handle($args); - $includeStatuses=! (boolean) $args['lite']; + $includeStatuses= !(array_key_exists('lite', $args) and $args['lite']); return $this->subscriptions($apidata, 'subscribed', 'subscriber', false, $includeStatuses); } @@ -467,7 +467,7 @@ class TwitapistatusesAction extends TwitterapiAction function followers($args, $apidata) { parent::handle($args); - $includeStatuses=! (boolean) $args['lite']; + $includeStatuses= !(array_key_exists('lite', $args) and $args['lite']); return $this->subscriptions($apidata, 'subscriber', 'subscribed', false, $includeStatuses); } From 838c13063a8371b858a249b3bc511b2b77ce1c5f Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 7 Oct 2009 17:09:00 +0800 Subject: [PATCH 30/39] Fixed E_NOTICE when returnto isn't set --- lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/util.php b/lib/util.php index a069ccf7b3..9b299cb14f 100644 --- a/lib/util.php +++ b/lib/util.php @@ -981,7 +981,7 @@ function common_set_returnto($url) function common_get_returnto() { common_ensure_session(); - return $_SESSION['returnto']; + return (array_key_exists('returnto', $_SESSION)) ? $_SESSION['returnto'] : null; } function common_timestamp() From daaa1d47908eba0d7b579222bd82994cb4fa01fb Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Thu, 8 Oct 2009 12:49:30 +0800 Subject: [PATCH 31/39] Don't show search suggestions for private sites --- lib/searchaction.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/searchaction.php b/lib/searchaction.php index 0d9f85a8f1..130b28ff52 100644 --- a/lib/searchaction.php +++ b/lib/searchaction.php @@ -135,16 +135,21 @@ class SearchAction extends Action } function searchSuggestions($q) { - $qe = urlencode($q); - $message = sprintf(_(<<elementStart('dl', array('id' => 'help_search', 'class' => 'help')); $this->element('dt', null, _('Search help')); $this->elementStart('dd', 'instructions'); From a6d4adc398d9d2d131df97007452c5c54072ddec Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 8 Oct 2009 11:41:39 -0400 Subject: [PATCH 32/39] Revert "Open tags should have closing tags" This reverts commit aeca8807dbce951beccbc3fb0e5a4ae5600e5e5f. We specifically DON'T have closing tags so we don't get errors with whitespace after the closing tag. I realize this is less of an issue with scripts, but we should still not use closing tags. --- scripts/allsites.php | 3 +-- scripts/createsim.php | 1 - scripts/decache.php | 1 - scripts/deleteuser.php | 1 - scripts/enjitqueuehandler.php | 1 - scripts/facebookqueuehandler.php | 1 - scripts/fixup_conversations.php | 1 - scripts/fixup_hashtags.php | 1 - scripts/fixup_inboxes.php | 1 - scripts/fixup_notices_rendered.php | 1 - scripts/fixup_replies.php | 1 - scripts/fixup_utf8.php | 1 - scripts/getpiddir.php | 1 - scripts/getvaliddaemons.php | 1 - scripts/inbox_users.php | 1 - scripts/jabberqueuehandler.php | 1 - scripts/maildaemon.php | 1 - scripts/ombqueuehandler.php | 1 - scripts/pingqueuehandler.php | 1 - scripts/publicqueuehandler.php | 1 - scripts/reportsnapshot.php | 1 - scripts/sessiongc.php | 1 - scripts/setpassword.php | 1 - scripts/showcache.php | 1 - scripts/smsqueuehandler.php | 1 - scripts/synctwitterfriends.php | 2 +- scripts/triminboxes.php | 1 - scripts/twitterqueuehandler.php | 1 - scripts/twitterstatusfetcher.php | 2 +- scripts/uncache_users.php | 1 - scripts/update_translations.php | 1 - scripts/xmppconfirmhandler.php | 2 +- scripts/xmppdaemon.php | 1 - 33 files changed, 4 insertions(+), 34 deletions(-) diff --git a/scripts/allsites.php b/scripts/allsites.php index ff9d8bc804..cf1419e550 100755 --- a/scripts/allsites.php +++ b/scripts/allsites.php @@ -37,5 +37,4 @@ if ($sn->find()) { while ($sn->fetch()) { print "$sn->nickname\n"; } -} -?> +} \ No newline at end of file diff --git a/scripts/createsim.php b/scripts/createsim.php index 93f904506a..71ed3bf722 100644 --- a/scripts/createsim.php +++ b/scripts/createsim.php @@ -140,4 +140,3 @@ $tagmax = (have_option('t', 'tags')) ? get_option_value('t', 'tags') : 10000 $userprefix = (have_option('x', 'prefix')) ? get_option_value('x', 'prefix') : 'testuser'; main($usercount, $noticeavg, $subsavg, $tagmax); -?> diff --git a/scripts/decache.php b/scripts/decache.php index 9b820bd832..7cabd78ada 100644 --- a/scripts/decache.php +++ b/scripts/decache.php @@ -48,4 +48,3 @@ if (!$object) { } $result = $object->decache(); -?> diff --git a/scripts/deleteuser.php b/scripts/deleteuser.php index 446f76878b..52389123c5 100644 --- a/scripts/deleteuser.php +++ b/scripts/deleteuser.php @@ -66,4 +66,3 @@ if (!have_option('y', 'yes')) { print "Deleting..."; $user->delete(); print "DONE.\n"; -?> diff --git a/scripts/enjitqueuehandler.php b/scripts/enjitqueuehandler.php index 5eda062f5a..08f733b07c 100755 --- a/scripts/enjitqueuehandler.php +++ b/scripts/enjitqueuehandler.php @@ -137,4 +137,3 @@ if ($handler->start()) { } $handler->finish(); -?> diff --git a/scripts/facebookqueuehandler.php b/scripts/facebookqueuehandler.php index dc17cb15a0..e13ac4e850 100755 --- a/scripts/facebookqueuehandler.php +++ b/scripts/facebookqueuehandler.php @@ -72,4 +72,3 @@ if (have_option('i')) { $handler = new FacebookQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/fixup_conversations.php b/scripts/fixup_conversations.php index f79288f7b3..8a9f7bb577 100755 --- a/scripts/fixup_conversations.php +++ b/scripts/fixup_conversations.php @@ -68,4 +68,3 @@ while ($nid->fetch()) { print ".\n"; } -?> diff --git a/scripts/fixup_hashtags.php b/scripts/fixup_hashtags.php index bae0947b2d..5cfebd8ee8 100755 --- a/scripts/fixup_hashtags.php +++ b/scripts/fixup_hashtags.php @@ -45,4 +45,3 @@ while ($notice->fetch()) { common_log_db_error($notice, 'UPDATE', __FILE__); } } -?> diff --git a/scripts/fixup_inboxes.php b/scripts/fixup_inboxes.php index 9619f3226b..d55a538853 100755 --- a/scripts/fixup_inboxes.php +++ b/scripts/fixup_inboxes.php @@ -79,4 +79,3 @@ while ($user->fetch()) { $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id)); } } -?> diff --git a/scripts/fixup_notices_rendered.php b/scripts/fixup_notices_rendered.php index 4b928ecd22..359cd6cce4 100755 --- a/scripts/fixup_notices_rendered.php +++ b/scripts/fixup_notices_rendered.php @@ -49,4 +49,3 @@ while ($notice->fetch()) { common_log_db_error($notice, 'UPDATE', __FILE__); } } -?> diff --git a/scripts/fixup_replies.php b/scripts/fixup_replies.php index 302c239151..7328635d3c 100755 --- a/scripts/fixup_replies.php +++ b/scripts/fixup_replies.php @@ -39,4 +39,3 @@ while ($notice->fetch()) { common_log(LOG_INFO, 'Getting replies for notice #' . $notice->id); common_save_replies($notice); } -?> diff --git a/scripts/fixup_utf8.php b/scripts/fixup_utf8.php index 24d301dab8..5a9fba7c3f 100755 --- a/scripts/fixup_utf8.php +++ b/scripts/fixup_utf8.php @@ -363,4 +363,3 @@ $fixer = new UTF8FixerUpper(array('max_date' => $max_date, $fixer->fixup(); -?> diff --git a/scripts/getpiddir.php b/scripts/getpiddir.php index 5860655fd3..8274c37c0f 100755 --- a/scripts/getpiddir.php +++ b/scripts/getpiddir.php @@ -28,4 +28,3 @@ ENDOFHELP; require_once INSTALLDIR.'/scripts/commandline.inc'; echo common_config('daemon', 'piddir'); -?> diff --git a/scripts/getvaliddaemons.php b/scripts/getvaliddaemons.php index 7fffac783b..8f48e8e6f0 100755 --- a/scripts/getvaliddaemons.php +++ b/scripts/getvaliddaemons.php @@ -52,4 +52,3 @@ echo "pingqueuehandler.php "; if (common_config('sms', 'enabled')) { echo "smsqueuehandler.php "; } -?> diff --git a/scripts/inbox_users.php b/scripts/inbox_users.php index 718dd856be..32adcea213 100755 --- a/scripts/inbox_users.php +++ b/scripts/inbox_users.php @@ -105,4 +105,3 @@ foreach ($ids as $id) { $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id . ';last')); } } -?> diff --git a/scripts/jabberqueuehandler.php b/scripts/jabberqueuehandler.php index b029ea1f1e..8f3a56944d 100755 --- a/scripts/jabberqueuehandler.php +++ b/scripts/jabberqueuehandler.php @@ -76,4 +76,3 @@ if (have_option('i')) { $handler = new JabberQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/maildaemon.php b/scripts/maildaemon.php index 19c77e077a..11911dcbdc 100755 --- a/scripts/maildaemon.php +++ b/scripts/maildaemon.php @@ -389,4 +389,3 @@ if (common_config('emailpost', 'enabled')) { $md = new MailerDaemon(); $md->handle_message('php://stdin'); } -?> diff --git a/scripts/ombqueuehandler.php b/scripts/ombqueuehandler.php index a24185da35..8e685f1c8e 100755 --- a/scripts/ombqueuehandler.php +++ b/scripts/ombqueuehandler.php @@ -85,4 +85,3 @@ if (have_option('i')) { $handler = new OmbQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/pingqueuehandler.php b/scripts/pingqueuehandler.php index 768c06c776..c92337e36c 100644 --- a/scripts/pingqueuehandler.php +++ b/scripts/pingqueuehandler.php @@ -67,4 +67,3 @@ if (have_option('i')) { $handler = new PingQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/publicqueuehandler.php b/scripts/publicqueuehandler.php index ffb5acdb64..50a11bcba0 100755 --- a/scripts/publicqueuehandler.php +++ b/scripts/publicqueuehandler.php @@ -74,4 +74,3 @@ if (have_option('i')) { $handler = new PublicQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/reportsnapshot.php b/scripts/reportsnapshot.php index b8f8d2a7cf..71f1019ee6 100644 --- a/scripts/reportsnapshot.php +++ b/scripts/reportsnapshot.php @@ -28,4 +28,3 @@ END_OF_SNAPSHOT_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; Snapshot::check(); -?> diff --git a/scripts/sessiongc.php b/scripts/sessiongc.php index b5fdcbf341..af55ddf3f0 100644 --- a/scripts/sessiongc.php +++ b/scripts/sessiongc.php @@ -34,4 +34,3 @@ $maxlifetime = ini_get('session.gc_maxlifetime'); print "Deleting sessions older than $maxlifetime seconds.\n"; Session::gc($maxlifetime); -?> diff --git a/scripts/setpassword.php b/scripts/setpassword.php index f951dccf78..50d49d7dbf 100755 --- a/scripts/setpassword.php +++ b/scripts/setpassword.php @@ -59,4 +59,3 @@ if (!$user->update($original)) { print "Password for user '$nickname' updated.\n"; exit(0); } -?> diff --git a/scripts/showcache.php b/scripts/showcache.php index fb0ccb5e03..f179795728 100644 --- a/scripts/showcache.php +++ b/scripts/showcache.php @@ -69,4 +69,3 @@ if (empty($obj)) { var_dump($obj); print "\n"; } -?> diff --git a/scripts/smsqueuehandler.php b/scripts/smsqueuehandler.php index 9e8de7a117..6583a77da8 100755 --- a/scripts/smsqueuehandler.php +++ b/scripts/smsqueuehandler.php @@ -71,4 +71,3 @@ if (have_option('i')) { $handler = new SmsQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/synctwitterfriends.php b/scripts/synctwitterfriends.php index f582231e39..b30e700a1c 100755 --- a/scripts/synctwitterfriends.php +++ b/scripts/synctwitterfriends.php @@ -283,4 +283,4 @@ if (have_option('d') || have_option('debug')) { $syncer = new SyncTwitterFriendsDaemon($id, 60, 2, $debug); $syncer->runOnce(); -?> + diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php index 5153d17065..da09817e5b 100644 --- a/scripts/triminboxes.php +++ b/scripts/triminboxes.php @@ -54,4 +54,3 @@ $cnt = $user->find(); while ($user->fetch()) { Notice_inbox::gc($user->id); } -?> diff --git a/scripts/twitterqueuehandler.php b/scripts/twitterqueuehandler.php index 820baeb0a1..ce4d824d0d 100755 --- a/scripts/twitterqueuehandler.php +++ b/scripts/twitterqueuehandler.php @@ -72,4 +72,3 @@ if (have_option('i')) { $handler = new TwitterQueueHandler($id); $handler->runOnce(); -?> diff --git a/scripts/twitterstatusfetcher.php b/scripts/twitterstatusfetcher.php index 726d2e2375..3cdf1867a1 100755 --- a/scripts/twitterstatusfetcher.php +++ b/scripts/twitterstatusfetcher.php @@ -562,4 +562,4 @@ if (have_option('d') || have_option('debug')) { $fetcher = new TwitterStatusFetcher($id, 60, 2, $debug); $fetcher->runOnce(); -?> + diff --git a/scripts/uncache_users.php b/scripts/uncache_users.php index ee030f778f..5a1d330307 100644 --- a/scripts/uncache_users.php +++ b/scripts/uncache_users.php @@ -50,4 +50,3 @@ foreach ($ids as $id) { $memc->delete(common_cache_key('user:notices_with_friends:'. $user->id)); $memc->delete(common_cache_key('user:notices_with_friends:'. $user->id . ';last')); } -?> diff --git a/scripts/update_translations.php b/scripts/update_translations.php index f036657c54..f145c1f0b6 100755 --- a/scripts/update_translations.php +++ b/scripts/update_translations.php @@ -96,4 +96,3 @@ function curl_get_file($url) return FALSE; } -?> diff --git a/scripts/xmppconfirmhandler.php b/scripts/xmppconfirmhandler.php index 05c5f86ce7..c7ed15e495 100755 --- a/scripts/xmppconfirmhandler.php +++ b/scripts/xmppconfirmhandler.php @@ -160,4 +160,4 @@ if (have_option('i')) { $handler = new XmppConfirmHandler($id); $handler->runOnce(); -?> + diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index eaebd59488..9e621e725a 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -412,4 +412,3 @@ $foreground = have_option('f', 'foreground'); $daemon = new XMPPDaemon($id, !$foreground); $daemon->runOnce(); -?> From 2dc66035ba84368ad2b6fa5147ec23c5b147f18f Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 9 Oct 2009 11:16:04 +0800 Subject: [PATCH 33/39] Fixed twitter defaulting to disabled --- lib/common.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/common.php b/lib/common.php index 88d77732f4..0b4e031845 100644 --- a/lib/common.php +++ b/lib/common.php @@ -196,15 +196,14 @@ $config = array('enabled' => true), 'sms' => array('enabled' => true), - 'twitter' => - array('enabled' => true), 'twitterbridge' => array('enabled' => false), 'integration' => array('source' => 'StatusNet', # source attribute for Twitter 'taguri' => $_server.',2009'), # base for tag URIs 'twitter' => - array('consumer_key' => null, + array('enabled' => true, + 'consumer_key' => null, 'consumer_secret' => null), 'memcached' => array('enabled' => false, From 11e36b18cc18890a2360e4cba14f5f2895f6eb3b Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 9 Oct 2009 11:25:31 +0800 Subject: [PATCH 34/39] Fixed facebook connect nav to obey sms/twitter disabled --- plugins/FBConnect/FBCSettingsNav.php | 42 +++++++++++++++------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/plugins/FBConnect/FBCSettingsNav.php b/plugins/FBConnect/FBCSettingsNav.php index 29724d6bdf..ed02371e25 100644 --- a/plugins/FBConnect/FBCSettingsNav.php +++ b/plugins/FBConnect/FBCSettingsNav.php @@ -77,32 +77,34 @@ class FBCSettingsNav extends Widget $this->action->elementStart('dd'); # action => array('prompt', 'title') - $menu = - array('imsettings' => - array(_('IM'), - _('Updates by instant messenger (IM)')), - 'smssettings' => - array(_('SMS'), - _('Updates by SMS')), - 'twittersettings' => - array(_('Twitter'), - _('Twitter integration options')), - 'FBConnectSettings' => - array(_('Facebook'), - _('Facebook Connect settings'))); + $menu = array(); + if (common_config('xmpp', 'enabled')) { + $menu['imsettings'] = + array(_('IM'), + _('Updates by instant messenger (IM)')); + } + if (common_config('sms', 'enabled')) { + $menu['smssettings'] = + array(_('SMS'), + _('Updates by SMS')); + } + if (common_config('twitter', 'enabled')) { + $menu['twittersettings'] = + array(_('Twitter'), + _('Twitter integration options')); + } + $menu['FBConnectSettings'] = + array(_('Facebook'), + _('Facebook Connect settings')); $action_name = $this->action->trimmed('action'); $this->action->elementStart('ul', array('class' => 'nav')); foreach ($menu as $menuaction => $menudesc) { - if ($menuaction == 'imsettings' && - !common_config('xmpp', 'enabled')) { - continue; - } $this->action->menuItem(common_local_url($menuaction), - $menudesc[0], - $menudesc[1], - $action_name === $menuaction); + $menudesc[0], + $menudesc[1], + $action_name === $menuaction); } $this->action->elementEnd('ul'); From b8f8c41c18ae166a88c4a87f90602ad8e1ed2ede Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 9 Oct 2009 11:31:55 +0800 Subject: [PATCH 35/39] Fixed facebook connect login nav to obey openid settings --- plugins/FBConnect/FBCLoginGroupNav.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/FBConnect/FBCLoginGroupNav.php b/plugins/FBConnect/FBCLoginGroupNav.php index 6e12c20403..81b2520a4c 100644 --- a/plugins/FBConnect/FBCLoginGroupNav.php +++ b/plugins/FBConnect/FBCLoginGroupNav.php @@ -78,16 +78,20 @@ class FBCLoginGroupNav extends Widget // action => array('prompt', 'title') $menu = array(); - $menu['login'] = array(_('Login'), - _('Login with a username and password')); + if (!common_config('site','openidonly')) { + $menu['login'] = array(_('Login'), + _('Login with a username and password')); - if (!(common_config('site','closed') || common_config('site','inviteonly'))) { - $menu['register'] = array(_('Register'), - _('Sign up for a new account')); + if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + $menu['register'] = array(_('Register'), + _('Sign up for a new account')); + } } - $menu['openidlogin'] = array(_('OpenID'), - _('Login or register with OpenID')); + if (common_config('openid', 'enabled')) { + $menu['openidlogin'] = array(_('OpenID'), + _('Login or register with OpenID')); + } $menu['FBConnectLogin'] = array(_('Facebook'), _('Login or register using Facebook')); From d13b0c385dbf6326ecec1c9a9abf9cac0f6ed4b2 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 9 Oct 2009 11:50:04 +0800 Subject: [PATCH 36/39] Fixed facebook connect primary nav to obey sms/twitter/openid settings --- plugins/FBConnect/FBConnectPlugin.php | 32 +++++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/plugins/FBConnect/FBConnectPlugin.php b/plugins/FBConnect/FBConnectPlugin.php index 593b49b4ed..702aee3496 100644 --- a/plugins/FBConnect/FBConnectPlugin.php +++ b/plugins/FBConnect/FBConnectPlugin.php @@ -232,6 +232,14 @@ class FBConnectPlugin extends Plugin { $user = common_current_user(); + $connect = 'FBConnectSettings'; + if (common_config('xmpp', 'enabled')) { + $connect = 'imsettings'; + } else if (common_config('sms', 'enabled')) { + $connect = 'smssettings'; + } else if (common_config('twitter', 'enabled')) { + $connect = 'twittersettings'; + } if (!empty($user)) { @@ -266,13 +274,8 @@ class FBConnectPlugin extends Plugin _('Home'), _('Personal profile and friends timeline'), false, 'nav_home'); $action->menuItem(common_local_url('profilesettings'), _('Account'), _('Change your email, avatar, password, profile'), false, 'nav_account'); - if (common_config('xmpp', 'enabled')) { - $action->menuItem(common_local_url('imsettings'), - _('Connect'), _('Connect to IM, SMS, Twitter'), false, 'nav_connect'); - } else { - $action->menuItem(common_local_url('smssettings'), - _('Connect'), _('Connect to SMS, Twitter'), false, 'nav_connect'); - } + $action->menuItem(common_local_url($connect), + _('Connect'), _('Connect to services'), false, 'nav_connect'); if (common_config('invite', 'enabled')) { $action->menuItem(common_local_url('invite'), _('Invite'), @@ -300,12 +303,17 @@ class FBConnectPlugin extends Plugin } } else { - if (!common_config('site', 'closed')) { - $action->menuItem(common_local_url('register'), - _('Register'), _('Create an account'), false, 'nav_register'); + if (!common_config('site', 'openidonly')) { + if (!common_config('site', 'closed')) { + $action->menuItem(common_local_url('register'), + _('Register'), _('Create an account'), false, 'nav_register'); + } + $action->menuItem(common_local_url('login'), + _('Login'), _('Login to the site'), false, 'nav_login'); + } else { + $this->menuItem(common_local_url('openidlogin'), + _('OpenID'), _('Login with OpenID'), false, 'nav_openid'); } - $action->menuItem(common_local_url('login'), - _('Login'), _('Login to the site'), false, 'nav_login'); } $action->menuItem(common_local_url('doc', array('title' => 'help')), From c597aba342c2d4bd7ee53dc471d6b7deafb62a5e Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 9 Oct 2009 11:52:03 +0800 Subject: [PATCH 37/39] Fixed facebook connect primary nav to hide search option when site is private and user is not logged in --- plugins/FBConnect/FBConnectPlugin.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/FBConnect/FBConnectPlugin.php b/plugins/FBConnect/FBConnectPlugin.php index 702aee3496..950718a33c 100644 --- a/plugins/FBConnect/FBConnectPlugin.php +++ b/plugins/FBConnect/FBConnectPlugin.php @@ -318,8 +318,10 @@ class FBConnectPlugin extends Plugin $action->menuItem(common_local_url('doc', array('title' => 'help')), _('Help'), _('Help me!'), false, 'nav_help'); - $action->menuItem(common_local_url('peoplesearch'), - _('Search'), _('Search for people or text'), false, 'nav_search'); + if ($user || !common_config('site', 'private')) { + $action->menuItem(common_local_url('peoplesearch'), + _('Search'), _('Search for people or text'), false, 'nav_search'); + } return false; } From 88e7092d2326403ab5cb0c7261b665154491e75c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 9 Oct 2009 10:39:56 -0400 Subject: [PATCH 38/39] don't write session if it's unchanged --- classes/Session.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/classes/Session.php b/classes/Session.php index d641edbbe4..79a69a96ea 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -85,9 +85,18 @@ class Session extends Memcached_DataObject return $session->insert(); } else { - $session->session_data = $session_data; + if (strcmp($session->session_data, $session_data) == 0) { + self::logdeb("Not writing session '$id'; unchanged"); + return true; + } else { + self::logdeb("Session '$id' data changed; updating"); - return $session->update(); + $orig = clone($session); + + $session->session_data = $session_data; + + return $session->update($orig); + } } } From e9d7f18f0c2ad05c0203bc347a74c0f69e497566 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 9 Oct 2009 14:06:08 -0400 Subject: [PATCH 39/39] fix FBConnect so it doesn't muffle EndPrimaryNav --- plugins/FBConnect/FBConnectPlugin.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/FBConnect/FBConnectPlugin.php b/plugins/FBConnect/FBConnectPlugin.php index 593b49b4ed..cb19b05461 100644 --- a/plugins/FBConnect/FBConnectPlugin.php +++ b/plugins/FBConnect/FBConnectPlugin.php @@ -313,6 +313,11 @@ class FBConnectPlugin extends Plugin $action->menuItem(common_local_url('peoplesearch'), _('Search'), _('Search for people or text'), false, 'nav_search'); + // We are replacing the primary nav entirely; give other + // plugins a chance to handle it here. + + Event::handle('EndPrimaryNav', array($action)); + return false; }