diff -r d8156d18ac58 -r 97ae8e9d5e29 includes/common.php --- a/includes/common.php Thu Sep 27 15:55:37 2007 -0400 +++ b/includes/common.php Sat Nov 03 07:43:35 2007 -0400 @@ -2,7 +2,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.0 (Banshee) + * Version 1.1.1 * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License @@ -23,7 +23,7 @@ exit; } -$version = '1.0.1'; +$version = '1.1.1'; function microtime_float() { @@ -56,12 +56,7 @@ if(defined('ENANO_DEBUG')) { -// require_once(ENANO_ROOT.'/includes/debugger/debugConsole.php'); - function dc_here($m) { return false; } - function dc_dump($a, $g) { return false; } - function dc_watch($n) { return false; } - function dc_start_timer($u) { return false; } - function dc_stop_timer($m) { return false; } + require_once(ENANO_ROOT.'/includes/debugger/debugConsole.php'); } else { function dc_here($m) { return false; } function dc_dump($a, $g) { return false; } @@ -73,6 +68,9 @@ if ( file_exists( ENANO_ROOT . '/_nightly.php') ) require(ENANO_ROOT.'/_nightly.php'); +// List of scheduled tasks +$cron_tasks = array(); + // Start including files. LOTS of files. Yeah! require_once(ENANO_ROOT.'/includes/constants.php'); dc_here('Enano CMS '.$version.' (dev) - debug window
Powered by debugConsole'); @@ -83,6 +81,7 @@ require_once(ENANO_ROOT.'/includes/sessions.php'); require_once(ENANO_ROOT.'/includes/template.php'); require_once(ENANO_ROOT.'/includes/plugins.php'); +require_once(ENANO_ROOT.'/includes/lang.php'); require_once(ENANO_ROOT.'/includes/comment.php'); require_once(ENANO_ROOT.'/includes/wikiformat.php'); require_once(ENANO_ROOT.'/includes/diff.php'); @@ -108,6 +107,7 @@ // In addition, $enano_config is used to fetch config information if die_semicritical() is called. global $email; +global $lang; if(!isset($_SERVER['HTTP_HOST'])) grinding_halt('Cannot get hostname', '

Your web browser did not provide the HTTP Host: field. This site requires a modern browser that supports the HTTP 1.1 standard.

'); @@ -154,6 +154,65 @@ grinding_halt('Version mismatch', '

It seems that the Enano release we\'re trying to run ('.$version.') is different from the version specified in your database ('.enano_version().'). Perhaps you need to upgrade?

'); } +// +// Low level maintenance +// + +// If the search algorithm backend has been changed, empty out the search cache (the two cache formats are incompatible with each other) +if ( getConfig('last_search_algo') != SEARCH_MODE ) +{ + if ( !$db->sql_query('DELETE FROM '.table_prefix.'search_cache;') ) + $db->_die(); + setConfig('last_search_algo', SEARCH_MODE); +} + +// If the AES key size has been changed, bail out and fast +if ( !getConfig('aes_key_size') ) +{ + setConfig('aes_key_size', AES_BITS); +} +else if ( $ks = getConfig('aes_key_size') ) +{ + if ( intval($ks) != AES_BITS ) + { + grinding_halt('AES key size changed', '

Enano has detected that the AES key size in constants.php has been changed. This change cannot be performed after installation, otherwise the private key would have to be re-generated and all passwords would have to be re-encrypted.

Please change the key size back to ' . $ks . ' bits and reload this page.

'); + } +} + +// Same for AES block size +if ( !getConfig('aes_block_size') ) +{ + setConfig('aes_block_size', AES_BLOCKSIZE); +} +else if ( $ks = getConfig('aes_block_size') ) +{ + if ( intval($ks) != AES_BLOCKSIZE ) + { + grinding_halt('AES block size changed', '

Enano has detected that the AES block size in constants.php has been changed. This change cannot be performed after installation, otherwise all passwords would have to be re-encrypted.

Please change the block size back to ' . $ks . ' bits and reload this page.

'); + } +} + +// Is there no default language? +if ( getConfig('lang_default') === false ) +{ + $q = $db->sql_query('SELECT lang_id FROM '.table_prefix.'language LIMIT 1;'); + if ( !$q ) + $db->_die('common.php - setting default language'); + if ( $db->numrows() < 1 && !defined('ENANO_ALLOW_LOAD_NOLANG') ) + { + grinding_halt('No languages', '

There are no languages installed on this site.

+

If you are the website administrator, you may install a language by writing and executing a simple PHP script to install it:

+
+<?php
+define("ENANO_ALLOW_LOAD_NOLANG", 1);
+$_GET["title"] = "langinstall";
+require("includes/common.php");
+install_language("eng", "English", "English", ENANO_ROOT . "/language/english/enano.json");
'); + } + $row = $db->fetchrow(); + setConfig('default_language', $row['lang_id']); +} + // Our list of tables included in Enano $system_table_list = Array( table_prefix.'categories', @@ -176,7 +235,10 @@ table_prefix.'groups', table_prefix.'group_members', table_prefix.'acl', - table_prefix.'search_cache' + table_prefix.'search_cache', + table_prefix.'page_groups', + table_prefix.'page_group_members', + table_prefix.'tags' ); dc_here('common: initializing base classes'); @@ -232,7 +294,7 @@ $text = RenderMan::render($n) . '
- If you have an administrative account, you may log in to the site or use the administration panel. + If you have an administrative account, you may log in to the site.
'; $paths->wiki_mode = 0; die_semicritical('Site disabled', $text);