summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/action.php8
-rw-r--r--lib/clienterroraction.php2
-rw-r--r--lib/common.php32
-rw-r--r--lib/error.php1
-rw-r--r--lib/profileminilist.php4
-rw-r--r--lib/servererroraction.php2
-rw-r--r--lib/util.php10
7 files changed, 46 insertions, 13 deletions
diff --git a/lib/action.php b/lib/action.php
index 15a44ad1b..f9b068878 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -328,8 +328,14 @@ class Action extends HTMLOutputter // lawsuit
if ($user) {
$this->menuItem(common_local_url('profilesettings'),
_('Account'), _('Change your email, avatar, password, profile'), false, 'nav_account');
- $this->menuItem(common_local_url('imsettings'),
+
+ if (common_config('xmpp', 'enabled')) {
+ $this->menuItem(common_local_url('imsettings'),
_('Connect'), _('Connect to IM, SMS, Twitter'), false, 'nav_connect');
+ } else {
+ $this->menuItem(common_local_url('smssettings'),
+ _('Connect'), _('Connect to SMS, Twitter'), false, 'nav_connect');
+ }
$this->menuItem(common_local_url('logout'),
_('Logout'), _('Logout from the site'), false, 'nav_logout');
} else {
diff --git a/lib/clienterroraction.php b/lib/clienterroraction.php
index ef6fd51df..5019dc06d 100644
--- a/lib/clienterroraction.php
+++ b/lib/clienterroraction.php
@@ -70,7 +70,7 @@ class ClientErrorAction extends ErrorAction
417 => 'Expectation Failed');
$this->default = 400;
}
-
+
// XXX: Should these error actions even be invokable via URI?
function handle($args)
diff --git a/lib/common.php b/lib/common.php
index a2f9b9bfe..825ba0ff7 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -50,14 +50,23 @@ require_once('DB/DataObject/Cast.php'); # for dates
require_once(INSTALLDIR.'/lib/language.php');
+// try to figure out where we are
+
+$_server = array_key_exists('SERVER_NAME', $_SERVER) ?
+ strtolower($_SERVER['SERVER_NAME']) :
+ null;
+$_path = array_key_exists('SCRIPT_NAME', $_SERVER) ?
+ substr($_SERVER['SCRIPT_NAME'], 1, strrpos($_SERVER['SCRIPT_NAME'], '/') - 1) :
+ null;
+
// default configuration, overwritten in config.php
$config =
array('site' =>
array('name' => 'Just another Laconica microblog',
- 'server' => 'localhost',
+ 'server' => $_server,
'theme' => 'default',
- 'path' => '/',
+ 'path' => $_path,
'logfile' => null,
'fancy' => false,
'locale_path' => INSTALLDIR.'/locale',
@@ -150,7 +159,24 @@ if (function_exists('date_default_timezone_set')) {
date_default_timezone_set('UTC');
}
-require_once(INSTALLDIR.'/config.php');
+// From most general to most specific:
+// server-wide, then vhost-wide, then for a path,
+// finally for a dir (usually only need one of the last two).
+
+$_config_files = array('/etc/laconica/laconica.php',
+ '/etc/laconica/'.$_server.'.php');
+
+if (strlen($_path) > 0) {
+ $_config_files[] = '/etc/laconica/'.$_server.'_'.$_path.'.php';
+}
+
+$_config_files[] = INSTALLDIR.'/config.php';
+
+foreach ($_config_files as $_config_file) {
+ if (file_exists($_config_file)) {
+ include_once($_config_file);
+ }
+}
require_once('Validate.php');
require_once('markdown.php');
diff --git a/lib/error.php b/lib/error.php
index 9842053d8..03065bc70 100644
--- a/lib/error.php
+++ b/lib/error.php
@@ -130,6 +130,7 @@ class ErrorAction extends Action
{
$this->elementStart('div', array('id' => 'header'));
$this->showLogo();
+ $this->showPrimaryNav();
$this->elementEnd('div');
}
diff --git a/lib/profileminilist.php b/lib/profileminilist.php
index 56b768419..81cd7aed5 100644
--- a/lib/profileminilist.php
+++ b/lib/profileminilist.php
@@ -69,9 +69,7 @@ class ProfileMiniList extends ProfileList
function showProfile()
{
$this->out->elementStart('li', 'vcard');
- $this->out->elementStart('a', array('title' => ($this->profile->fullname) ?
- $this->profile->fullname :
- $this->profile->nickname,
+ $this->out->elementStart('a', array('title' => $this->profile->getBestName(),
'href' => $this->profile->profileurl,
'rel' => 'contact member',
'class' => 'url'));
diff --git a/lib/servererroraction.php b/lib/servererroraction.php
index a39886591..80a3fdd7b 100644
--- a/lib/servererroraction.php
+++ b/lib/servererroraction.php
@@ -67,7 +67,7 @@ class ServerErrorAction extends ErrorAction
$this->default = 500;
}
-
+
// XXX: Should these error actions even be invokable via URI?
function handle($args)
diff --git a/lib/util.php b/lib/util.php
index 3690f0ad5..07e124811 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -370,8 +370,6 @@ function common_canonical_email($email)
return $email;
}
-define('URL_REGEX', '^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))');
-
function common_render_content($text, $notice)
{
$r = common_render_text($text);
@@ -388,7 +386,8 @@ function common_render_text($text)
$r = htmlspecialchars($text);
$r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r);
- $r = preg_replace_callback('@https?://[^\]>\s]+@', 'common_render_uri_thingy', $r);
+ $r = preg_replace_callback('@(ftp|http|https|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc)://[^\]>\s]+@', 'common_render_uri_thingy', $r);
+ $r = preg_replace_callback('@(mailto|aim|tel):[^\]>\s]+@', 'common_render_uri_thingy', $r); // Pseudo-protocols don't require '//' after ':'.
$r = preg_replace('/(^|\s+)#([A-Za-z0-9_\-\.]{1,64})/e', "'\\1#'.common_tag_link('\\2')", $r);
// XXX: machine tags
return $r;
@@ -1391,7 +1390,7 @@ function common_negotiate_type($cprefs, $sprefs)
}
$bestq = 0;
- $besttype = "text/html";
+ $besttype = 'text/html';
foreach(array_keys($combine) as $type) {
if($combine[$type] > $bestq) {
@@ -1400,6 +1399,9 @@ function common_negotiate_type($cprefs, $sprefs)
}
}
+ if ('text/html' === $besttype) {
+ return "text/html; charset=utf-8";
+ }
return $besttype;
}