0
+ − 1
<?php
73
0a74676a2f2f
Made the move to Loch Ness, and got some basic page grouping functionality working. TODO: fix some UI issues in Javascript ACL editor and change non-JS ACL editor to work with page groups too
Dan
diff
changeset
+ − 2
166
+ − 3
/*
0
+ − 4
* Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between
536
+ − 5
* Version 1.1.4 (Caoineag alpha 4)
+ − 6
* Copyright (C) 2006-2008 Dan Fuhry
0
+ − 7
*
+ − 8
* This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License
+ − 9
* as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+ − 10
*
+ − 11
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ − 12
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
+ − 13
*
246
+ − 14
* @package Enano
+ − 15
* @subpackage Frontend
+ − 16
*
0
+ − 17
*/
246
+ − 18
311
a007145a0ff6
Deprecated debugConsole and removed all calls to it. Added a lot of comments to common.php. Added support for "anonymous pages" that are created when the Enano API is loaded from an external script. Fixed missing border-bottom on Type 2 sidebar blocks in Oxygen.
Dan
diff
changeset
+ − 19
define('ENANO_INTERFACE_INDEX', '');
372
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
diff
changeset
+ − 20
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
diff
changeset
+ − 21
// For the mighty and brave.
383
1030864dc319
Fixed SYSMSG tag in templates causing problems; commented out ENANO_DEBUG; fixed bad table prefix in installer payload logic
Dan
diff
changeset
+ − 22
// define('ENANO_DEBUG', '');
311
a007145a0ff6
Deprecated debugConsole and removed all calls to it. Added a lot of comments to common.php. Added support for "anonymous pages" that are created when the Enano API is loaded from an external script. Fixed missing border-bottom on Type 2 sidebar blocks in Oxygen.
Dan
diff
changeset
+ − 23
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 24
// Set up gzip encoding before any output is sent
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 25
334
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
diff
changeset
+ − 26
$aggressive_optimize_html = true;
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 27
0
+ − 28
global $do_gzip;
334
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
diff
changeset
+ − 29
$do_gzip = true;
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 30
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 31
if ( isset($_GET['nocompress']) )
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 32
$aggressive_optimize_html = false;
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 33
0
+ − 34
error_reporting(E_ALL);
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 35
0
+ − 36
if($aggressive_optimize_html || $do_gzip)
+ − 37
{
+ − 38
ob_start();
+ − 39
}
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 40
564
a1c450a911a6
Updated version number metadata in system plugin files; added some comments and removed unused code from index.php and includes/graphs.php
Dan
diff
changeset
+ − 41
// start up Enano
0
+ − 42
require('includes/common.php');
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 43
0
+ − 44
global $db, $session, $paths, $template, $plugins; // Common objects
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 45
$page_timestamp = time();
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 46
307
+ − 47
if ( !isset($_GET['do']) )
+ − 48
{
+ − 49
$_GET['do'] = 'view';
+ − 50
}
0
+ − 51
switch($_GET['do'])
+ − 52
{
+ − 53
default:
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 54
die_friendly('Invalid action', '<p>The action "'.htmlspecialchars($_GET['do']).'" is not defined. Return to <a href="'.makeUrl($paths->page).'">viewing this page\'s text</a>.</p>');
0
+ − 55
break;
+ − 56
case 'view':
+ − 57
// echo PageUtils::getpage($paths->page, true, ( (isset($_GET['oldid'])) ? $_GET['oldid'] : false ));
21
663fcf528726
Updated all version numbers back to Banshee; a few preliminary steps towards full UTF-8 support in page URLs
Dan
diff
changeset
+ − 58
$rev_id = ( (isset($_GET['oldid'])) ? intval($_GET['oldid']) : 0 );
322
+ − 59
$page = new PageProcessor( $paths->page_id, $paths->namespace, $rev_id );
0
+ − 60
$page->send_headers = true;
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
diff
changeset
+ − 61
$pagepass = ( isset($_REQUEST['pagepass']) ) ? sha1($_REQUEST['pagepass']) : '';
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
diff
changeset
+ − 62
$page->password = $pagepass;
61
+ − 63
$page->send(true);
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 64
$page_timestamp = $page->revision_time;
0
+ − 65
break;
+ − 66
case 'comments':
+ − 67
$template->header();
+ − 68
$sub = ( isset ($_GET['sub']) ) ? $_GET['sub'] : false;
+ − 69
switch($sub)
+ − 70
{
+ − 71
case 'admin':
+ − 72
default:
+ − 73
$act = ( isset ($_GET['action']) ) ? $_GET['action'] : false;
+ − 74
$id = ( isset ($_GET['id']) ) ? intval($_GET['id']) : -1;
322
+ − 75
echo PageUtils::comments_html($paths->page_id, $paths->namespace, $act, Array('id'=>$id));
0
+ − 76
break;
+ − 77
case 'postcomment':
+ − 78
if(empty($_POST['name']) ||
+ − 79
empty($_POST['subj']) ||
+ − 80
empty($_POST['text'])
+ − 81
) { echo 'Invalid request'; break; }
+ − 82
$cid = ( isset($_POST['captcha_id']) ) ? $_POST['captcha_id'] : false;
+ − 83
$cin = ( isset($_POST['captcha_input']) ) ? $_POST['captcha_input'] : false;
322
+ − 84
PageUtils::addcomment($paths->page_id, $paths->namespace, $_POST['name'], $_POST['subj'], $_POST['text'], $cin, $cid); // All filtering, etc. is handled inside this method
+ − 85
echo PageUtils::comments_html($paths->page_id, $paths->namespace);
0
+ − 86
break;
+ − 87
case 'editcomment':
+ − 88
if(!isset($_GET['id']) || ( isset($_GET['id']) && !preg_match('#^([0-9]+)$#', $_GET['id']) )) { echo '<p>Invalid comment ID</p>'; break; }
+ − 89
$q = $db->sql_query('SELECT subject,comment_data,comment_id FROM '.table_prefix.'comments WHERE comment_id='.$_GET['id']);
+ − 90
if(!$q) $db->_die('The comment data could not be selected.');
+ − 91
$row = $db->fetchrow();
+ − 92
$db->free_result();
213
+ − 93
$row['subject'] = str_replace('\'', ''', $row['subject']);
0
+ − 94
echo '<form action="'.makeUrl($paths->page, 'do=comments&sub=savecomment').'" method="post">';
+ − 95
echo "<br /><div class='tblholder'><table border='0' width='100%' cellspacing='1' cellpadding='4'>
213
+ − 96
<tr><td class='row1'>" . $lang->get('comment_postform_field_subject') . "</td><td class='row1'><input type='text' name='subj' value='{$row['subject']}' /></td></tr>
+ − 97
<tr><td class='row2'>" . $lang->get('comment_postform_field_comment') . "</td><td class='row2'><textarea rows='10' cols='40' style='width: 98%;' name='text'>{$row['comment_data']}</textarea></td></tr>
+ − 98
<tr><td class='row1' colspan='2' class='row1' style='text-align: center;'><input type='hidden' name='id' value='{$row['comment_id']}' /><input type='submit' value='" . $lang->get('etc_save_changes') . "' /></td></tr>
0
+ − 99
</table></div>";
+ − 100
echo '</form>';
+ − 101
break;
+ − 102
case 'savecomment':
+ − 103
if(empty($_POST['subj']) || empty($_POST['text'])) { echo '<p>Invalid request</p>'; break; }
322
+ − 104
$r = PageUtils::savecomment_neater($paths->page_id, $paths->namespace, $_POST['subj'], $_POST['text'], (int)$_POST['id']);
0
+ − 105
if($r != 'good') { echo "<pre>$r</pre>"; break; }
322
+ − 106
echo PageUtils::comments_html($paths->page_id, $paths->namespace);
0
+ − 107
break;
+ − 108
case 'deletecomment':
+ − 109
if(!empty($_GET['id']))
+ − 110
{
322
+ − 111
PageUtils::deletecomment_neater($paths->page_id, $paths->namespace, (int)$_GET['id']);
0
+ − 112
}
322
+ − 113
echo PageUtils::comments_html($paths->page_id, $paths->namespace);
0
+ − 114
break;
+ − 115
}
+ − 116
$template->footer();
+ − 117
break;
+ − 118
case 'edit':
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 119
if(isset($_POST['_cancel']))
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 120
{
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 121
redirect(makeUrl($paths->page), '', '', 0);
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 122
break;
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 123
}
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 124
if(isset($_POST['_save']))
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 125
{
337
+ − 126
$captcha_valid = true;
+ − 127
if ( !$session->user_logged_in && getConfig('guest_edit_require_captcha') == '1' )
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 128
{
337
+ − 129
$captcha_valid = false;
+ − 130
if ( isset($_POST['captcha_id']) && isset($_POST['captcha_code']) )
+ − 131
{
+ − 132
$hash_correct = strtolower($session->get_captcha($_POST['captcha_id']));
+ − 133
$hash_input = strtolower($_POST['captcha_code']);
+ − 134
if ( $hash_input === $hash_correct )
+ − 135
$captcha_valid = true;
+ − 136
}
+ − 137
}
+ − 138
if ( $captcha_valid )
+ − 139
{
+ − 140
$e = PageUtils::savepage($paths->page_id, $paths->namespace, $_POST['page_text'], $_POST['edit_summary'], isset($_POST['minor']));
+ − 141
if ( $e == 'good' )
+ − 142
{
+ − 143
redirect(makeUrl($paths->page), $lang->get('editor_msg_save_success_title'), $lang->get('editor_msg_save_success_body'), 3);
+ − 144
}
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 145
}
0
+ − 146
}
+ − 147
$template->header();
337
+ − 148
if ( isset($captcha_valid) )
+ − 149
{
+ − 150
echo '<div class="usermessage">' . $lang->get('editor_err_captcha_wrong') . '</div>';
+ − 151
}
0
+ − 152
if(isset($_POST['_preview']))
+ − 153
{
+ − 154
$text = $_POST['page_text'];
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 155
$edsumm = $_POST['edit_summary'];
0
+ − 156
echo PageUtils::genPreview($_POST['page_text']);
220
+ − 157
$text = htmlspecialchars($text);
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 158
$revid = 0;
0
+ − 159
}
220
+ − 160
else
+ − 161
{
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 162
$revid = ( isset($_GET['revid']) ) ? intval($_GET['revid']) : 0;
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 163
$page = new PageProcessor($paths->page_id, $paths->namespace, $revid);
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 164
$text = $page->fetch_source();
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 165
$edsumm = '';
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 166
// $text = RenderMan::getPage($paths->cpage['urlname_nons'], $paths->namespace, 0, false, false, false, false);
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 167
}
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 168
if ( $revid > 0 )
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 169
{
468
+ − 170
$time = $page->revision_time;
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 171
// Retrieve information about this revision and the current one
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 172
$q = $db->sql_query('SELECT l1.author AS currentrev_author, l2.author AS oldrev_author FROM ' . table_prefix . 'logs AS l1
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 173
LEFT JOIN ' . table_prefix . 'logs AS l2
468
+ − 174
ON ( l2.log_id = ' . $revid . '
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 175
AND l2.log_type = \'page\'
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 176
AND l2.action = \'edit\'
468
+ − 177
AND l2.page_id = \'' . $db->escape($paths->page_id) . '\'
+ − 178
AND l2.namespace = \'' . $db->escape($paths->namespace) . '\'
+ − 179
AND l1.is_draft != 1
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 180
)
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 181
WHERE l1.log_type = \'page\'
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 182
AND l1.action = \'edit\'
468
+ − 183
AND l1.page_id = \'' . $db->escape($paths->page_id) . '\'
+ − 184
AND l1.namespace = \'' . $db->escape($paths->namespace) . '\'
+ − 185
AND l1.time_id > ' . $time . '
+ − 186
AND l1.is_draft != 1
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 187
ORDER BY l1.time_id DESC;');
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 188
if ( !$q )
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 189
$db->die_json();
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 190
468
+ − 191
if ( $db->numrows() > 0 )
+ − 192
{
+ − 193
echo '<div class="usermessage">' . $lang->get('editor_msg_editing_old_revision') . '</div>';
+ − 194
+ − 195
$rev_count = $db->numrows() - 2;
+ − 196
$row = $db->fetchrow();
+ − 197
$undo_info = array(
+ − 198
'old_author' => $row['oldrev_author'],
+ − 199
'current_author' => $row['currentrev_author'],
+ − 200
'undo_count' => max($rev_count, 1),
+ − 201
'last_rev_id' => $revid
+ − 202
);
+ − 203
}
+ − 204
else
+ − 205
{
+ − 206
$revid = 0;
+ − 207
}
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 208
$db->free_result();
220
+ − 209
}
0
+ − 210
echo '
+ − 211
<form action="'.makeUrl($paths->page, 'do=edit').'" method="post" enctype="multipart/form-data">
+ − 212
<br />
+ − 213
<textarea name="page_text" rows="20" cols="60" style="width: 97%;">'.$text.'</textarea><br />
+ − 214
<br />
+ − 215
';
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 216
$edsumm = ( $revid > 0 ) ? $lang->get('editor_reversion_edit_summary', $undo_info) : $edsumm;
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 217
echo $lang->get('editor_lbl_edit_summary') . ' <input name="edit_summary" type="text" size="40" value="' . htmlspecialchars($edsumm) . '" /><br /><label><input type="checkbox" name="minor" /> ' . $lang->get('editor_lbl_minor_edit_field') . '</label><br />';
337
+ − 218
if ( !$session->user_logged_in && getConfig('guest_edit_require_captcha') == '1' )
+ − 219
{
+ − 220
echo '<br /><table border="0"><tr><td>';
+ − 221
echo '<b>' . $lang->get('editor_lbl_field_captcha') . '</b><br />'
+ − 222
. '<br />'
+ − 223
. $lang->get('editor_msg_captcha_pleaseenter') . '<br /><br />'
+ − 224
. $lang->get('editor_msg_captcha_blind');
+ − 225
echo '</td><td>';
+ − 226
$hash = $session->make_captcha();
+ − 227
echo '<img src="' . makeUrlNS('Special', "Captcha/$hash") . '" onclick="this.src+=\'/a\'" style="cursor: pointer;" /><br />';
+ − 228
echo '<input type="hidden" name="captcha_id" value="' . $hash . '" />';
+ − 229
echo $lang->get('editor_lbl_field_captcha_code') . ' <input type="text" name="captcha_code" value="" size="9" />';
+ − 230
echo '</td></tr></table>';
+ − 231
}
0
+ − 232
echo '<br />
220
+ − 233
<input type="submit" name="_save" value="' . $lang->get('editor_btn_save') . '" style="font-weight: bold;" />
+ − 234
<input type="submit" name="_preview" value="' . $lang->get('editor_btn_preview') . '" />
+ − 235
<input type="submit" name="_revert" value="' . $lang->get('editor_btn_revert') . '" />
+ − 236
<input type="submit" name="_cancel" value="' . $lang->get('editor_btn_cancel') . '" />
0
+ − 237
</form>
+ − 238
';
160
+ − 239
if ( getConfig('wiki_edit_notice') == '1' )
+ − 240
{
+ − 241
$notice = getConfig('wiki_edit_notice_text');
+ − 242
echo RenderMan::render($notice);
+ − 243
}
0
+ − 244
$template->footer();
+ − 245
break;
+ − 246
case 'viewsource':
+ − 247
$template->header();
322
+ − 248
$text = RenderMan::getPage($paths->page_id, $paths->namespace, 0, false, false, false, false);
391
85f91037cd4f
Localization is FINISHED, DAMN IT HELLAH YEAH! OVER WITH! Man, it feels to get that off my chest. Release is in under 48 hours, folks. And we're ready for it.
Dan
diff
changeset
+ − 249
$text = htmlspecialchars($text);
0
+ − 250
echo '
+ − 251
<form action="'.makeUrl($paths->page, 'do=edit').'" method="post">
+ − 252
<br />
+ − 253
<textarea readonly="readonly" name="page_text" rows="20" cols="60" style="width: 97%;">'.$text.'</textarea>';
+ − 254
echo '<br />
220
+ − 255
<input type="submit" name="_cancel" value="' . $lang->get('editor_btn_closeviewer') . '" />
0
+ − 256
</form>
+ − 257
';
+ − 258
$template->footer();
+ − 259
break;
+ − 260
case 'history':
322
+ − 261
$hist = PageUtils::histlist($paths->page_id, $paths->namespace);
0
+ − 262
$template->header();
+ − 263
echo $hist;
+ − 264
$template->footer();
+ − 265
break;
+ − 266
case 'rollback':
+ − 267
$id = (isset($_GET['id'])) ? $_GET['id'] : false;
+ − 268
if(!$id || !preg_match('#^([0-9]+)$#', $id)) die_friendly('Invalid action ID', '<p>The URL parameter "id" is not an integer. Exiting to prevent nasties like SQL injection, etc.</p>');
481
+ − 269
+ − 270
$id = intval($id);
+ − 271
+ − 272
$page = new PageProcessor($paths->page_id, $paths->namespace);
+ − 273
$result = $page->rollback_log_entry($id);
+ − 274
+ − 275
if ( $result['success'] )
+ − 276
{
+ − 277
$result = $lang->get("page_msg_rb_success_{$result['action']}", array('dateline' => $result['dateline']));
+ − 278
}
+ − 279
else
+ − 280
{
+ − 281
$result = $lang->get("page_err_{$result['error']}", array('action' => @$result['action']));
+ − 282
}
+ − 283
0
+ − 284
$template->header();
481
+ − 285
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a></p>';
0
+ − 286
$template->footer();
+ − 287
break;
+ − 288
case 'catedit':
+ − 289
if(isset($_POST['__enanoSaveButton']))
+ − 290
{
+ − 291
unset($_POST['__enanoSaveButton']);
322
+ − 292
$val = PageUtils::catsave($paths->page_id, $paths->namespace, $_POST);
0
+ − 293
if($val == 'GOOD')
+ − 294
{
+ − 295
header('Location: '.makeUrl($paths->page)); echo '<html><head><title>Redirecting...</title></head><body>If you haven\'t been redirected yet, <a href="'.makeUrl($paths->page).'">click here</a>.'; break;
+ − 296
} else {
+ − 297
die_friendly('Error saving category information', '<p>'.$val.'</p>');
+ − 298
}
+ − 299
}
+ − 300
elseif(isset($_POST['__enanoCatCancel']))
+ − 301
{
+ − 302
header('Location: '.makeUrl($paths->page)); echo '<html><head><title>Redirecting...</title></head><body>If you haven\'t been redirected yet, <a href="'.makeUrl($paths->page).'">click here</a>.'; break;
+ − 303
}
+ − 304
$template->header();
322
+ − 305
$c = PageUtils::catedit_raw($paths->page_id, $paths->namespace);
0
+ − 306
echo $c[1];
+ − 307
$template->footer();
+ − 308
break;
+ − 309
case 'moreoptions':
+ − 310
$template->header();
220
+ − 311
echo '<div class="menu_nojs" style="width: 150px; padding: 0;"><ul style="display: block;"><li><div class="label">' . $lang->get('ajax_lbl_moreoptions_nojs') . '</div><div style="clear: both;"></div></li>'.$template->toolbar_menu.'</ul></div>';
0
+ − 312
$template->footer();
+ − 313
break;
+ − 314
case 'protect':
+ − 315
if (!isset($_REQUEST['level'])) die_friendly('Invalid request', '<p>No protection level specified</p>');
+ − 316
if(!empty($_POST['reason']))
+ − 317
{
+ − 318
if(!preg_match('#^([0-2]*){1}$#', $_POST['level'])) die_friendly('Error protecting page', '<p>Request validation failed</p>');
322
+ − 319
PageUtils::protect($paths->page_id, $paths->namespace, intval($_POST['level']), $_POST['reason']);
220
+ − 320
+ − 321
die_friendly($lang->get('page_protect_lbl_success_title'), '<p>' . $lang->get('page_protect_lbl_success_body', array( 'page_link' => makeUrl($paths->page) )) . '</p>');
0
+ − 322
}
+ − 323
$template->header();
+ − 324
?>
+ − 325
<form action="<?php echo makeUrl($paths->page, 'do=protect'); ?>" method="post">
+ − 326
<input type="hidden" name="level" value="<?php echo $_REQUEST['level']; ?>" />
220
+ − 327
<?php if(isset($_POST['reason'])) echo '<p style="color: red;">' . $lang->get('page_protect_err_need_reason') . '</p>'; ?>
+ − 328
<p><?php echo $lang->get('page_protect_lbl_reason'); ?></p>
0
+ − 329
<p><input type="text" name="reason" size="40" /><br />
220
+ − 330
<?php echo $lang->get('page_protect_lbl_level'); ?> <b><?php
0
+ − 331
switch($_REQUEST['level'])
+ − 332
{
+ − 333
case '0':
220
+ − 334
echo $lang->get('page_protect_lbl_level_none');
0
+ − 335
break;
+ − 336
case '1':
220
+ − 337
echo $lang->get('page_protect_lbl_level_full');
0
+ − 338
break;
+ − 339
case '2':
220
+ − 340
echo $lang->get('page_protect_lbl_level_semi');
0
+ − 341
break;
+ − 342
default:
+ − 343
echo 'None;</b> Warning: request validation will fail after clicking submit<b>';
+ − 344
}
+ − 345
?></b></p>
220
+ − 346
<p><input type="submit" value="<?php echo htmlspecialchars($lang->get('page_protect_btn_submit')) ?>" style="font-weight: bold;" /></p>
0
+ − 347
</form>
+ − 348
<?php
+ − 349
$template->footer();
+ − 350
break;
+ − 351
case 'rename':
+ − 352
if(!empty($_POST['newname']))
+ − 353
{
322
+ − 354
$r = PageUtils::rename($paths->page_id, $paths->namespace, $_POST['newname']);
304
+ − 355
die_friendly($lang->get('page_rename_success_title'), '<p>'.nl2br($r).' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>');
0
+ − 356
}
+ − 357
$template->header();
+ − 358
?>
+ − 359
<form action="<?php echo makeUrl($paths->page, 'do=rename'); ?>" method="post">
220
+ − 360
<?php if(isset($_POST['newname'])) echo '<p style="color: red;">' . $lang->get('page_rename_err_need_name') . '</p>'; ?>
+ − 361
<p><?php echo $lang->get('page_rename_lbl'); ?></p>
0
+ − 362
<p><input type="text" name="newname" size="40" /></p>
220
+ − 363
<p><input type="submit" value="<?php echo htmlspecialchars($lang->get('page_rename_btn_submit')); ?>" style="font-weight: bold;" /></p>
0
+ − 364
</form>
+ − 365
<?php
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 366
$template->footer();
0
+ − 367
break;
+ − 368
case 'flushlogs':
220
+ − 369
if(!$session->get_permissions('clear_logs'))
+ − 370
{
+ − 371
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 372
}
0
+ − 373
if(isset($_POST['_downthejohn']))
+ − 374
{
+ − 375
$template->header();
322
+ − 376
$result = PageUtils::flushlogs($paths->page_id, $paths->namespace);
220
+ − 377
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
0
+ − 378
$template->footer();
+ − 379
break;
+ − 380
}
+ − 381
$template->header();
+ − 382
?>
+ − 383
<form action="<?php echo makeUrl($paths->page, 'do=flushlogs'); ?>" method="post">
220
+ − 384
<?php echo $lang->get('page_flushlogs_warning_stern'); ?>
+ − 385
<p><input type="submit" name="_downthejohn" value="<?php echo htmlspecialchars($lang->get('page_flushlogs_btn_submit')); ?>" style="color: red; font-weight: bold;" /></p>
0
+ − 386
</form>
+ − 387
<?php
+ − 388
$template->footer();
+ − 389
break;
+ − 390
case 'delvote':
+ − 391
if(isset($_POST['_ballotbox']))
+ − 392
{
+ − 393
$template->header();
322
+ − 394
$result = PageUtils::delvote($paths->page_id, $paths->namespace);
220
+ − 395
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
0
+ − 396
$template->footer();
+ − 397
break;
+ − 398
}
+ − 399
$template->header();
+ − 400
?>
+ − 401
<form action="<?php echo makeUrl($paths->page, 'do=delvote'); ?>" method="post">
220
+ − 402
<?php
+ − 403
echo $lang->get('page_delvote_warning_stern');
+ − 404
echo '<p>';
+ − 405
switch($paths->cpage['delvotes'])
+ − 406
{
+ − 407
case 0: echo $lang->get('page_delvote_count_zero'); break;
+ − 408
case 1: echo $lang->get('page_delvote_count_one'); break;
+ − 409
default: echo $lang->get('page_delvote_count_plural', array('delvotes' => $paths->cpage['delvotes'])); break;
+ − 410
}
+ − 411
echo '</p>';
+ − 412
?>
+ − 413
<p><input type="submit" name="_ballotbox" value="<?php echo htmlspecialchars($lang->get('page_delvote_btn_submit')); ?>" /></p>
0
+ − 414
</form>
+ − 415
<?php
+ − 416
$template->footer();
+ − 417
break;
+ − 418
case 'resetvotes':
220
+ − 419
if(!$session->get_permissions('vote_reset'))
+ − 420
{
+ − 421
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 422
}
0
+ − 423
if(isset($_POST['_youmaylivealittlelonger']))
+ − 424
{
+ − 425
$template->header();
322
+ − 426
$result = PageUtils::resetdelvotes($paths->page_id, $paths->namespace);
220
+ − 427
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
0
+ − 428
$template->footer();
+ − 429
break;
+ − 430
}
+ − 431
$template->header();
+ − 432
?>
+ − 433
<form action="<?php echo makeUrl($paths->page, 'do=resetvotes'); ?>" method="post">
220
+ − 434
<p><?php echo $lang->get('ajax_delvote_reset_confirm'); ?></p>
+ − 435
<p><input type="submit" name="_youmaylivealittlelonger" value="<?php echo htmlspecialchars($lang->get('page_delvote_reset_btn_submit')); ?>" /></p>
0
+ − 436
</form>
+ − 437
<?php
+ − 438
$template->footer();
+ − 439
break;
+ − 440
case 'deletepage':
220
+ − 441
if(!$session->get_permissions('delete_page'))
+ − 442
{
+ − 443
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 444
}
0
+ − 445
if(isset($_POST['_adiossucker']))
+ − 446
{
28
+ − 447
$reason = ( isset($_POST['reason']) ) ? $_POST['reason'] : false;
+ − 448
if ( empty($reason) )
220
+ − 449
$error = $lang->get('ajax_delete_prompt_reason');
28
+ − 450
else
+ − 451
{
+ − 452
$template->header();
322
+ − 453
$result = PageUtils::deletepage($paths->page_id, $paths->namespace, $reason);
220
+ − 454
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
28
+ − 455
$template->footer();
+ − 456
break;
+ − 457
}
0
+ − 458
}
+ − 459
$template->header();
+ − 460
?>
+ − 461
<form action="<?php echo makeUrl($paths->page, 'do=deletepage'); ?>" method="post">
220
+ − 462
<?php echo $lang->get('page_delete_warning_stern'); ?>
28
+ − 463
<?php if ( isset($error) ) echo "<p>$error</p>"; ?>
220
+ − 464
<p><?php echo $lang->get('page_delete_lbl_reason'); ?> <input type="text" name="reason" size="50" /></p>
+ − 465
<p><input type="submit" name="_adiossucker" value="<?php echo htmlspecialchars($lang->get('page_delete_btn_submit')); ?>" style="color: red; font-weight: bold;" /></p>
0
+ − 466
</form>
+ − 467
<?php
+ − 468
$template->footer();
+ − 469
break;
+ − 470
case 'setwikimode':
220
+ − 471
if(!$session->get_permissions('set_wiki_mode'))
+ − 472
{
+ − 473
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 474
}
97
+ − 475
if ( isset($_POST['finish']) )
+ − 476
{
+ − 477
$level = intval($_POST['level']);
+ − 478
if ( !in_array($level, array(0, 1, 2) ) )
+ − 479
{
+ − 480
die_friendly('Invalid request', '<p>Level not specified</p>');
+ − 481
}
322
+ − 482
$q = $db->sql_query('UPDATE '.table_prefix.'pages SET wiki_mode=' . $level . ' WHERE urlname=\'' . $db->escape($paths->page_id) . '\' AND namespace=\'' . $paths->namespace . '\';');
97
+ − 483
if ( !$q )
+ − 484
$db->_die();
220
+ − 485
redirect(makeUrl($paths->page), htmlspecialchars($paths->cpage['name']), $lang->get('page_wikimode_success_redirect'), 2);
97
+ − 486
}
+ − 487
else
+ − 488
{
+ − 489
$template->header();
+ − 490
if(!isset($_GET['level']) || ( isset($_GET['level']) && !preg_match('#^([0-9])$#', $_GET['level']))) die_friendly('Invalid request', '<p>Level not specified</p>');
+ − 491
$level = intval($_GET['level']);
+ − 492
if ( !in_array($level, array(0, 1, 2) ) )
+ − 493
{
+ − 494
die_friendly('Invalid request', '<p>Level not specified</p>');
+ − 495
}
+ − 496
echo '<form action="' . makeUrl($paths->page, 'do=setwikimode', true) . '" method="post">';
+ − 497
echo '<input type="hidden" name="finish" value="foo" />';
+ − 498
echo '<input type="hidden" name="level" value="' . $level . '" />';
220
+ − 499
$level_txt = ( $level == 0 ) ? 'page_wikimode_level_off' : ( ( $level == 1 ) ? 'page_wikimode_level_on' : 'page_wikimode_level_global' );
+ − 500
$blurb = ( $level == 0 || ( $level == 2 && getConfig('wiki_mode') != '1' ) ) ? 'page_wikimode_blurb_disable' : 'page_wikimode_blurb_enable';
97
+ − 501
?>
220
+ − 502
<h3><?php echo $lang->get('page_wikimode_heading'); ?></h3>
+ − 503
<p><?php echo $lang->get($level_txt) . ' ' . $lang->get($blurb); ?></p>
+ − 504
<p><?php echo $lang->get('page_wikimode_warning'); ?></p>
+ − 505
<p><input type="submit" value="<?php echo htmlspecialchars($lang->get('page_wikimode_btn_submit')); ?>" /></p>
97
+ − 506
<?php
+ − 507
echo '</form>';
+ − 508
$template->footer();
+ − 509
}
0
+ − 510
break;
+ − 511
case 'diff':
+ − 512
$template->header();
+ − 513
$id1 = ( isset($_GET['diff1']) ) ? (int)$_GET['diff1'] : false;
+ − 514
$id2 = ( isset($_GET['diff2']) ) ? (int)$_GET['diff2'] : false;
+ − 515
if(!$id1 || !$id2) { echo '<p>Invalid request.</p>'; $template->footer(); break; }
+ − 516
if(!preg_match('#^([0-9]+)$#', (string)$_GET['diff1']) ||
+ − 517
!preg_match('#^([0-9]+)$#', (string)$_GET['diff2'] )) { echo '<p>SQL injection attempt</p>'; $template->footer(); break; }
322
+ − 518
echo PageUtils::pagediff($paths->page_id, $paths->namespace, $id1, $id2);
0
+ − 519
$template->footer();
+ − 520
break;
91
+ − 521
case 'detag':
+ − 522
if ( $session->user_level < USER_LEVEL_ADMIN )
+ − 523
{
220
+ − 524
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
91
+ − 525
}
+ − 526
if ( $paths->page_exists )
+ − 527
{
220
+ − 528
die_friendly($lang->get('etc_invalid_request_short'), '<p>' . $lang->get('page_detag_err_page_exists') . '</p>');
91
+ − 529
}
322
+ − 530
$q = $db->sql_query('DELETE FROM '.table_prefix.'tags WHERE page_id=\'' . $db->escape($paths->page_id) . '\' AND namespace=\'' . $paths->namespace . '\';');
91
+ − 531
if ( !$q )
+ − 532
$db->_die('Detag query, index.php:'.__LINE__);
220
+ − 533
die_friendly($lang->get('page_detag_success_title'), '<p>' . $lang->get('page_detag_success_body') . '</p>');
91
+ − 534
break;
0
+ − 535
case 'aclmanager':
+ − 536
$data = ( isset($_POST['data']) ) ? $_POST['data'] : Array('mode' => 'listgroups');
+ − 537
PageUtils::aclmanager($data);
+ − 538
break;
286
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 539
case 'sql_report':
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 540
$rev_id = ( (isset($_GET['oldid'])) ? intval($_GET['oldid']) : 0 );
322
+ − 541
$page = new PageProcessor( $paths->page_id, $paths->namespace, $rev_id );
286
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 542
$page->send_headers = true;
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 543
$pagepass = ( isset($_REQUEST['pagepass']) ) ? sha1($_REQUEST['pagepass']) : '';
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 544
$page->password = $pagepass;
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 545
$page->send(true);
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 546
ob_end_clean();
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 547
ob_start();
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 548
$db->sql_report();
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 549
break;
0
+ − 550
}
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 551
0
+ − 552
//
+ − 553
// Optimize HTML by replacing newlines with spaces (excludes <pre>, <script>, and <style> blocks)
+ − 554
//
+ − 555
if ($aggressive_optimize_html)
+ − 556
{
+ − 557
// Load up the HTML
+ − 558
$html = ob_get_contents();
286
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
diff
changeset
+ − 559
@ob_end_clean();
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 560
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 561
$html = aggressive_optimize_html($html);
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 562
0
+ − 563
// Re-enable output buffering to allow the Gzip function (below) to work
+ − 564
ob_start();
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 565
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 566
// Generate an ETag
547
0a2c1ce32d91
Added ETag on TinyMCE gzip; changed ETag format for standard pages so as to include user and login info to control caching when logged in or out
Dan
diff
changeset
+ − 567
// format: first 10 digits of SHA1 of page name, user id in hex, user and auth levels, page timestamp in hex
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 568
$etag = substr(sha1($paths->namespace . ':' . $paths->page_id), 0, 10) . '-' .
547
0a2c1ce32d91
Added ETag on TinyMCE gzip; changed ETag format for standard pages so as to include user and login info to control caching when logged in or out
Dan
diff
changeset
+ − 569
"u{$session->user_id}l{$session->user_level}a{$session->auth_level}-" .
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 570
dechex($page_timestamp);
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 571
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 572
if ( isset($_SERVER['HTTP_IF_NONE_MATCH']) )
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 573
{
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 574
if ( "\"$etag\"" == $_SERVER['HTTP_IF_NONE_MATCH'] )
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 575
{
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 576
header('HTTP/1.1 304 Not Modified');
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 577
exit();
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 578
}
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 579
}
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 580
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 581
header("ETag: \"$etag\"");
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 582
0
+ − 583
// Done, send it to the user
+ − 584
echo( $html );
+ − 585
}
564
a1c450a911a6
Updated version number metadata in system plugin files; added some comments and removed unused code from index.php and includes/graphs.php
Dan
diff
changeset
+ − 586
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 587
$db->close();
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 588
gzip_output();
42
45ebe475ff75
I dunno how many times I'm gonna have to fix the "problem seems to be the hex conversion" bug, but this is at least the fourth try.
Dan
diff
changeset
+ − 589
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 590
@ob_end_flush();
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 591
0
+ − 592
?>