--- a/includes/common.php Mon Sep 24 23:59:42 2007 -0400
+++ b/includes/common.php Thu Sep 27 15:55:37 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.2 (Coblynau)
+ * Version 1.0 (Banshee)
* 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.2b1';
+$version = '1.0.1';
function microtime_float()
{
@@ -56,7 +56,12 @@
if(defined('ENANO_DEBUG'))
{
- require_once(ENANO_ROOT.'/includes/debugger/debugConsole.php');
+// 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; }
} else {
function dc_here($m) { return false; }
function dc_dump($a, $g) { return false; }
@@ -149,44 +154,6 @@
grinding_halt('Version mismatch', '<p>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 <a href="'.scriptPath.'/upgrade.php">upgrade</a>?</p>');
}
-//
-// 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', '<p>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.</p><p>Please change the key size back to ' . $ks . ' bits and reload this page.</p>');
- }
-}
-
-// 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', '<p>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.</p><p>Please change the block size back to ' . $ks . ' bits and reload this page.</p>');
- }
-}
-
// Our list of tables included in Enano
$system_table_list = Array(
table_prefix.'categories',
@@ -209,10 +176,7 @@
table_prefix.'groups',
table_prefix.'group_members',
table_prefix.'acl',
- table_prefix.'search_cache',
- table_prefix.'page_groups',
- table_prefix.'page_group_members',
- table_prefix.'tags'
+ table_prefix.'search_cache'
);
dc_here('common: initializing base classes');
@@ -268,7 +232,7 @@
$text = RenderMan::render($n) . '
<div class="info-box">
- If you have an administrative account, you may <a href="'.makeUrlNS('Special', 'Login').'">log in</a> to the site.
+ If you have an administrative account, you may <a href="'.makeUrlNS('Special', 'Login').'">log in</a> to the site or <a href="'.makeUrlNS('Special', 'Administration').'">use the administration panel</a>.
</div>';
$paths->wiki_mode = 0;
die_semicritical('Site disabled', $text);
--- a/includes/pageprocess.php Mon Sep 24 23:59:42 2007 -0400
+++ b/includes/pageprocess.php Thu Sep 27 15:55:37 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.2 (Coblynau)
+ * Version 1.0.1 (Loch Ness)
* pageprocess.php - intelligent retrieval of pages
* Copyright (C) 2006-2007 Dan Fuhry
*
@@ -212,7 +212,7 @@
return false;
}
}
- else if ( $this->namespace == 'User' && strpos($this->page_id, '/') === false )
+ else if ( $this->namespace == 'User' )
{
$this->_handle_userpage();
}
@@ -371,8 +371,6 @@
global $db, $session, $paths, $template, $plugins; // Common objects
$text = $this->fetch_text();
- $text = preg_replace('/([\s]*)__NOBREADCRUMBS__([\s]*)/', '', $text);
- $text = preg_replace('/([\s]*)__NOTOC__([\s]*)/', '', $text);
$redir_enabled = false;
if ( preg_match('/^#redirect \[\[([^\]]+?)\]\]/i', $text, $match ) )
@@ -420,7 +418,6 @@
$template->tpl_strings['PAGE_NAME'] = htmlspecialchars( $this->title );
$this->header();
- $this->do_breadcrumbs();
if ( $_errormsg )
{
@@ -634,8 +631,6 @@
));
$target_username = preg_replace('/^' . preg_quote($paths->nslist['User']) . '/', '', $target_username);
- $target_username = explode('/', $target_username);
- $target_username = $target_username[0];
if ( ( $page_name == str_replace('_', ' ', $this->page_id) || $page_name == $paths->nslist['User'] . str_replace('_', ' ', $this->page_id) ) || !$this->page_exists )
{
@@ -709,13 +704,6 @@
echo '<tr><td class="row3">Real name: ' . $userdata['real_name'] . '</td></tr>';
}
- // Administer user button
-
- if ( $session->user_level >= USER_LEVEL_ADMIN )
- {
- echo '<tr><td class="row1"><a href="' . makeUrlNS('Special', 'Administration', 'module=' . $paths->nslist['Admin'] . 'UserManager&src=get&user=' . urlencode($target_username), true) . '" onclick="ajaxAdminUser(\'' . addslashes($target_username) . '\'); return false;">Administer user</a></td></tr>';
- }
-
// Comments
echo '<tr><th class="subhead">' . htmlspecialchars($target_username) . '\'s latest comments</th></tr>';
@@ -942,7 +930,6 @@
function _handle_redirect($page_id, $namespace)
{
- global $db, $session, $paths, $template, $plugins; // Common objects
$arr_pid = array($this->page_id, $this->namespace);
if ( $namespace == 'Special' || $namespace == 'Admin' )
{
@@ -952,7 +939,7 @@
{
return 'This page infinitely redirects with another page (or another series of pages), and the infinite redirect was trapped.';
}
- $page_id_key = $paths->nslist[ $namespace ] . sanitize_page_id($page_id);
+ $page_id_key = $paths->nslist[ $namespace ] . $page_id;
if ( !isset($paths->pages[$page_id_key]) )
{
return 'This page redirects to another page that doesn\'t exist.';
@@ -976,39 +963,14 @@
{
global $db, $session, $paths, $template, $plugins; // Common objects
- // Log it for crying out loud
- $q = $db->sql_query('INSERT INTO '.table_prefix.'logs(log_type,action,time_id,date_string,author,edit_summary,page_text) VALUES(\'security\', \'illegal_page\', '.time().', \''.date('d M Y h:i a').'\', \''.$db->escape($session->username).'\', \''.$db->escape($_SERVER['REMOTE_ADDR']).'\', \'' . $db->escape(serialize(array($this->page_id, $this->namespace))) . '\')');
-
$ob = '';
- //$template->tpl_strings['PAGE_NAME'] = 'Access denied';
- $template->tpl_strings['PAGE_NAME'] = htmlspecialchars( $this->title );
+ $template->tpl_strings['PAGE_NAME'] = 'Access denied';
if ( $this->send_headers )
{
$ob .= $template->getHeader();
}
- if ( count($this->redirect_stack) > 0 )
- {
- $stack = array_reverse($this->redirect_stack);
- foreach ( $stack as $oldtarget )
- {
- $url = makeUrlNS($oldtarget[1], $oldtarget[0], 'redirect=no', true);
- $page_id_key = $paths->nslist[ $oldtarget[1] ] . $oldtarget[0];
- $page_data = $paths->pages[$page_id_key];
- $title = ( isset($page_data['name']) ) ? $page_data['name'] : $paths->nslist[$oldtarget[1]] . htmlspecialchars( str_replace('_', ' ', dirtify_page_id( $oldtarget[0] ) ) );
- $a = '<a href="' . $url . '">' . $title . '</a>';
-
- $url = makeUrlNS($this->namespace, $this->page_id, 'redirect=no', true);
- $page_id_key = $paths->nslist[ $this->namespace ] . $this->page_id;
- $page_data = $paths->pages[$page_id_key];
- $title = ( isset($page_data['name']) ) ? $page_data['name'] : $paths->nslist[$this->namespace] . htmlspecialchars( str_replace('_', ' ', dirtify_page_id( $this->page_id ) ) );
- $b = '<a href="' . $url . '">' . $title . '</a>';
-
- $ob .= '<small>(Redirected to ' . $b . ' from ' . $a . ')<br /></small>';
- }
- }
-
$ob .= '<div class="error-box"><b>Access to this page is denied.</b><br />This may be because you are not logged in or you have not met certain criteria for viewing this page.</div>';
if ( $this->send_headers )
@@ -1082,11 +1044,8 @@
{
global $db, $session, $paths, $template, $plugins; // Common objects
+ $this->header();
header('HTTP/1.1 404 Not Found');
-
- $this->header();
- $this->do_breadcrumbs();
-
if ( $userpage )
{
echo '<h3>There is no page with this title yet.</h3>
@@ -1116,10 +1075,6 @@
{
$r = $db->fetchrow();
echo '<p><b>This page was deleted on ' . $r['date_string'] . '.</b> The stated reason was:</p><blockquote>' . $r['edit_summary'] . '</blockquote><p>You can probably <a href="'.makeUrl($paths->page, 'do=rollback&id='.$r['time_id']).'" onclick="ajaxRollback(\''.$r['time_id'].'\'); return false;">roll back</a> the deletion.</p>';
- if ( $session->user_level >= USER_LEVEL_ADMIN )
- {
- echo '<p>Additional admin options: <a href="' . makeUrl($paths->page, 'do=detag', true) . '" title="Remove any tags on this page">detag page</a></p>';
- }
}
$db->free_result();
}
@@ -1130,58 +1085,6 @@
}
/**
- * Echoes out breadcrumb data, if appropriate.
- * @access private
- */
-
- function do_breadcrumbs()
- {
- global $db, $session, $paths, $template, $plugins; // Common objects
- if ( strpos($this->text_cache, '__NOBREADCRUMBS__') !== false )
- return false;
- $breadcrumb_data = explode('/', $this->page_id);
- if ( count($breadcrumb_data) > 1 )
- {
- echo '<!-- Start breadcrumbs -->
- <div class="breadcrumbs">
- ';
- foreach ( $breadcrumb_data as $i => $higherpage )
- {
- $higherpage = $paths->nslist[$this->namespace] . sanitize_page_id(implode('/', array_slice($breadcrumb_data, 0, ($i+1))));
- if ( ($i + 1) == count($breadcrumb_data) )
- {
- $title = get_page_title($higherpage, false);
- if ( !$this->page_exists )
- {
- $title = explode('/', $title);
- $title = array_reverse($title);
- $title = $title[0];
- }
- echo htmlspecialchars($title);
- break;
- }
- else if ( isPage($higherpage) )
- {
- $title = get_page_title($higherpage, false);
- echo '<a href="' . makeUrl($higherpage, false, true) . '">' . htmlspecialchars($title) . '</a>';
- }
- else
- {
- $title = get_page_title($higherpage, false);
- $title = explode('/', $title);
- $title = array_reverse($title);
- $title = $title[0];
- echo '<a href="' . makeUrl($higherpage, false, true) . '" class="wikilink-nonexistent">' . htmlspecialchars($title) . '</a>';
- }
- echo ' » ';
- }
- echo '</div>
- <!-- End breadcrumbs -->
- ';
- }
- }
-
- /**
* PHP 4 constructor.
* @see PageProcessor::__construct()
*/
--- a/includes/tagcloud.php Mon Sep 24 23:59:42 2007 -0400
+++ b/includes/tagcloud.php Thu Sep 27 15:55:37 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.2 (Coblynau)
+ * Version 1.0.1 (Loch Ness)
* 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
--- a/themes/oxygen/header.tpl Mon Sep 24 23:59:42 2007 -0400
+++ b/themes/oxygen/header.tpl Thu Sep 27 15:55:37 2007 -0400
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
<title>{PAGE_NAME} • {SITE_NAME}</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
@@ -11,7 +11,6 @@
{ADDITIONAL_HEADERS}
<script type="text/javascript">
- // <![CDATA[
function collapseSidebar(side)
{
@@ -22,7 +21,7 @@
{
elem.style.display = 'block';
counter.style.display = 'none';
- elem.parentNode.style.width = '';
+ elem.parentNode.style.width = '156px';
if ( !KILL_SWITCH )
{
createCookie(side+'_sidebar', 'open', 365);
@@ -67,7 +66,7 @@
function ajaxRenameInline()
{
- if ( KILL_SWITCH || IE )
+ if ( KILL_SWITCH )
return false;
// This trick is _so_ vBulletin...
elem = document.getElementById('h2PageName');
@@ -90,8 +89,7 @@
if(!elem1 || !elem2) return;
value = elem2.value;
elem2.parentNode.removeChild(elem2); // just destroy the thing
- elem1.removeChild(elem1.firstChild);
- elem1.appendChild(document.createTextNode(value));
+ elem1.innerHTML = value;
elem1.style.display = 'block';
if(!value || value=='') return;
ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+escape(value), function() {
@@ -102,12 +100,10 @@
}
function ajaxRenameInlineCancel(e)
{
- if ( typeof(e) != 'object' && IE )
- e = window.event;
elem1 = document.getElementById('h2PageName');
elem2 = document.getElementById('pageheading');
if(!elem1 || !elem2) return;
- if ( typeof(e) == 'object' && e.target )
+ if ( e.target )
{
if(e.target == elem2)
return;
@@ -118,7 +114,6 @@
elem1.style.display = 'block';
document.onclick = null;
}
- // ]]>
</script>
</head>
@@ -165,7 +160,7 @@
<tr><td id="mdg-ml"></td><td style="background-color: #FFFFFF;">
<div class="pad"><div class="contentDiv">
<div style="float: right;">
- <img alt=" " src="{SCRIPTPATH}/images/spacer.gif" id="ajaxloadicon" />
+ <image alt=" " src="{SCRIPTPATH}/images/spacer.gif" id="ajaxloadicon" />
</div>
<h2 <!-- BEGIN auth_rename --> ondblclick="ajaxRenameInline();" title="Double-click to rename this page" <!-- END auth_rename --> id="h2PageName">{PAGE_NAME}</h2>
<div id="ajaxEditContainer">