summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/action.php2
-rw-r--r--lib/common.php32
-rw-r--r--lib/util.php5
3 files changed, 33 insertions, 6 deletions
diff --git a/lib/action.php b/lib/action.php
index 8f02b36bf..4d4c3d4c9 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -162,6 +162,8 @@ class Action extends HTMLOutputter // lawsuit
'media' => 'screen, projection, tv'));
$this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
'href="'.theme_path('css/ie.css', 'base').'?version='.LACONICA_VERSION.'" /><![endif]');
+ $this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
+ 'href="'.theme_path('css/ie.css', null).'?version='.LACONICA_VERSION.'" /><![endif]');
foreach (array(6,7) as $ver) {
if (file_exists(theme_file('ie'.$ver.'.css'))) {
// Yes, IE people should be put in jail.
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/util.php b/lib/util.php
index 3690f0ad5..d7af3f204 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;