/**
*
* Load the configuration file which contains our DB credentials.
- * Ignore errors. If the file doesn't exist, we are running in installation mode.
+ * Ignore errors. If the file doesn't exist or is empty, we are running in installation mode.
*
*/
-$install = ((file_exists('.htconfig.php')) ? false : true);
+$install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false : true);
@include(".htconfig.php");
*
* Get the language setting directly from system variables, bypassing get_config()
* as database may not yet be configured.
+ *
+ * If possible, we use the value from the browser.
*
*/
- $lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
+ if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+ $langs = preg_split("/[,-]/",$_SERVER['HTTP_ACCEPT_LANGUAGE'],2);
+ $lang = $langs[0];
+ } else {
+ $lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
+ }
load_translation_table($lang);
$_SESSION['sysmsg'] = '';
/*
- * check_config() is responible for running update scripts. These automatically
- * update the DB schema whenever we push a new one out.
+ * check_config() is responsible for running update scripts. These automatically
+ * update the DB schema whenever we push a new one out. It also checks to see if
+ * any plugins have been added or removed and reacts accordingly.
*/
/**
*
- * We have already parsed the server path into $->argc and $a->argv
+ * We have already parsed the server path into $a->argc and $a->argv
*
* $a->argv[0] is our module name. We will load the file mod/{$a->argv[0]}.php
* and use it for handling our URL request.
* and in the following order:
*
* "module"_init
- * "module"_post (only if there are $_POST variables)
+ * "module"_post (only called if there are $_POST variables)
* "module"_afterpost
* "module"_content - the string return of this function contains our page body
*
*/
if(strlen($a->module)) {
+
+ /**
+ *
+ * We will always have a module name.
+ * First see if we have a plugin which is masquerading as a module.
+ *
+ */
+
if(is_array($a->plugins) && in_array($a->module,$a->plugins) && file_exists("addon/{$a->module}/{$a->module}.php")) {
include_once("addon/{$a->module}/{$a->module}.php");
if(function_exists($a->module . '_module'))
$a->module_loaded = true;
}
+
+ /**
+ * If not, next look for a 'standard' program module in the 'mod' directory
+ */
+
if((! $a->module_loaded) && (file_exists("mod/{$a->module}.php"))) {
- include("mod/{$a->module}.php");
+ include_once("mod/{$a->module}.php");
$a->module_loaded = true;
}
+
+ /**
+ *
+ * The URL provided does not resolve to a valid module.
+ *
+ * On Dreamhost sites, quite often things go wrong for no apparent reason and they send us to '/internal_error.html'.
+ * We don't like doing this, but as it occasionally accounts for 10-20% or more of all site traffic -
+ * we are going to trap this and redirect back to the requested page. As long as you don't have a critical error on your page
+ * this will often succeed and eventually do the right thing.
+ *
+ * Otherwise we are going to emit a 404 not found.
+ *
+ */
+
if(! $a->module_loaded) {
if((x($_SERVER,'QUERY_STRING')) && ($_SERVER['QUERY_STRING'] === 'q=internal_error.html') && isset($dreamhost_error_hack)) {
logger('index.php: dreamhost_error_hack invoked. Original URI =' . $_SERVER['REQUEST_URI']);
}
-// let javascript take you home
+// If you're just visiting, let javascript take you home
if(x($_SESSION,'visitor_home'))
$homebase = $_SESSION['visitor_home'];
$a->strings['next'] = 'next';
$a->strings[' likes this.'] = ' aime ça.';
$a->strings[' doesn\'t like this.'] = ' n\'aime pas ça.';
- $a->strings['people'] = 'personne(s)';
- $a->strings['like this.'] = 'aime(nt) ça.';
- $a->strings['don\'t like this.'] = 'n\'aime(nt) pas ça.';
+ $a->strings['people'] = 'personnes';
+ $a->strings['like this.'] = 'aiment ça.';
+ $a->strings['don\'t like this.'] = 'n\'aiment pas ça.';
$a->strings['and'] = 'et';
$a->strings[', and '] = ', et ';
- $a->strings[' other people'] = ' autre(s) personne(s)';
- $a->strings[' like this.'] = ' aime(nt) ça.';
- $a->strings[' don\'t like this.'] = ' n\'aime(nt) pas ça.';
+ $a->strings[' other people'] = ' autres personnes';
+ $a->strings[' like this.'] = ' aiment ça.';
+ $a->strings[' don\'t like this.'] = ' n\'aiment pas ça.';
$a->strings['No contacts'] = 'Aucun contact';
$a->strings['Contacts'] = 'Contacts';
$a->strings['View Contacts'] = 'Voir les contacts';
$a->strings['Global Directory'] = 'Annuaire global';
$a->strings['Item not found.'] = 'Élément introuvable.';
$a->strings['Private Message'] = 'Message privé';
+$a->strings["I like this \x28toggle\x29"] = "I like this \x28toggle\x29";
+$a->strings["I don't like this \x28toggle\x29"] = "I don't like this \x28toggle\x29";
$a->strings['This is you'] = 'C\'est vous';
$a->strings['View $name\'s profile'] = 'Voir le profil de $name';
$a->strings['Item has been removed.'] = 'Cet élément a été enlevé.';