summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/groupsearch.php2
-rw-r--r--actions/twitapistatuses.php4
-rw-r--r--classes/Session.php13
-rw-r--r--lib/default.php7
-rw-r--r--lib/searchaction.php12
-rw-r--r--lib/util.php2
-rw-r--r--plugins/FBConnect/FBCLoginGroupNav.php20
-rw-r--r--plugins/FBConnect/FBCSettingsNav.php42
-rw-r--r--plugins/FBConnect/FBConnectPlugin.php43
9 files changed, 90 insertions, 55 deletions
diff --git a/actions/groupsearch.php b/actions/groupsearch.php
index f0cca7156..55f4cee62 100644
--- a/actions/groupsearch.php
+++ b/actions/groupsearch.php
@@ -105,7 +105,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';
diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php
index 87043b182..c589bd9b1 100644
--- a/actions/twitapistatuses.php
+++ b/actions/twitapistatuses.php
@@ -456,7 +456,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);
}
@@ -469,7 +469,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);
}
diff --git a/classes/Session.php b/classes/Session.php
index d641edbbe..79a69a96e 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");
+
+ $orig = clone($session);
+
+ $session->session_data = $session_data;
- return $session->update();
+ return $session->update($orig);
+ }
}
}
diff --git a/lib/default.php b/lib/default.php
index f9670cb7f..329b041e9 100644
--- a/lib/default.php
+++ b/lib/default.php
@@ -140,16 +140,15 @@ $default =
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,
- 'consumer_secret' => null),
+ array('enabled' => true,
+ 'consumer_key' => null,
+ 'consumer_secret' => null),
'memcached' =>
array('enabled' => false,
'server' => 'localhost',
diff --git a/lib/searchaction.php b/lib/searchaction.php
index 0d9f85a8f..130b28ff5 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(_(<<<E_O_T
+ $message = _(<<<E_O_T
* Make sure all words are spelled correctly.
* Try different keywords.
* Try more general keywords.
* Try fewer keywords.
+E_O_T
+);
+ if (!common_config('site', 'private')) {
+ $qe = urlencode($q);
+ $message .= sprintf(_(<<<E_O_T
+
You can also try your search on other engines:
-* [Twingly](http://www.twingly.com/search?q=%s&content=microblog&site=identi.ca)
+* [Twingly](http://www.twingly.com/search?q=%s&content=microblog&site=%%%%site.server%%%%)
* [Tweet scan](http://www.tweetscan.com/indexi.php?s=%s)
* [Google](http://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)
* [Yahoo](http://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)
@@ -152,6 +157,7 @@ You can also try your search on other engines:
E_O_T
), $qe, $qe, $qe, $qe, $qe);
+ }
$this->elementStart('dl', array('id' => 'help_search', 'class' => 'help'));
$this->element('dt', null, _('Search help'));
$this->elementStart('dd', 'instructions');
diff --git a/lib/util.php b/lib/util.php
index d249b154f..be10647fc 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -998,7 +998,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()
diff --git a/plugins/FBConnect/FBCLoginGroupNav.php b/plugins/FBConnect/FBCLoginGroupNav.php
index 6e12c2040..81b2520a4 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','closed') || common_config('site','inviteonly'))) {
- $menu['register'] = array(_('Register'),
- _('Sign up for a new account'));
+ 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'));
+ }
}
- $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'));
diff --git a/plugins/FBConnect/FBCSettingsNav.php b/plugins/FBConnect/FBCSettingsNav.php
index 29724d6bd..ed02371e2 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');
diff --git a/plugins/FBConnect/FBConnectPlugin.php b/plugins/FBConnect/FBConnectPlugin.php
index 593b49b4e..ff74aade4 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,18 +303,30 @@ 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')),
_('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');
+ }
+
+ // We are replacing the primary nav entirely; give other
+ // plugins a chance to handle it here.
+
+ Event::handle('EndPrimaryNav', array($action));
return false;
}