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
685
17ebe24cdf85
Rebranded as 1.1.5 (Caoineag alpha 5) and fixed a couple bugs related to CDN support in template_nodb and installerUI. Updated readme.
Dan
diff
changeset
+ − 5
* Version 1.1.5 (Caoineag alpha 5)
536
+ − 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.
605
+ − 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
637
+ − 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;
637
+ − 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:
759
+ − 54
$code = $plugins->setHook('page_action');
+ − 55
ob_start();
+ − 56
foreach ( $code as $cmd )
+ − 57
{
+ − 58
eval($cmd);
+ − 59
}
+ − 60
if ( $contents = ob_get_contents() )
+ − 61
{
+ − 62
ob_end_clean();
+ − 63
echo $contents;
+ − 64
}
+ − 65
else
+ − 66
{
+ − 67
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>');
+ − 68
}
0
+ − 69
break;
+ − 70
case 'view':
+ − 71
// 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
+ − 72
$rev_id = ( (isset($_GET['oldid'])) ? intval($_GET['oldid']) : 0 );
322
+ − 73
$page = new PageProcessor( $paths->page_id, $paths->namespace, $rev_id );
0
+ − 74
$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
+ − 75
$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
+ − 76
$page->password = $pagepass;
61
+ − 77
$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
+ − 78
$page_timestamp = $page->revision_time;
0
+ − 79
break;
+ − 80
case 'comments':
+ − 81
$template->header();
592
+ − 82
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 83
$sub = ( isset ($_GET['sub']) ) ? $_GET['sub'] : false;
+ − 84
switch($sub)
+ − 85
{
+ − 86
case 'admin':
+ − 87
default:
+ − 88
$act = ( isset ($_GET['action']) ) ? $_GET['action'] : false;
+ − 89
$id = ( isset ($_GET['id']) ) ? intval($_GET['id']) : -1;
322
+ − 90
echo PageUtils::comments_html($paths->page_id, $paths->namespace, $act, Array('id'=>$id));
0
+ − 91
break;
+ − 92
case 'postcomment':
+ − 93
if(empty($_POST['name']) ||
+ − 94
empty($_POST['subj']) ||
+ − 95
empty($_POST['text'])
+ − 96
) { echo 'Invalid request'; break; }
+ − 97
$cid = ( isset($_POST['captcha_id']) ) ? $_POST['captcha_id'] : false;
+ − 98
$cin = ( isset($_POST['captcha_input']) ) ? $_POST['captcha_input'] : false;
322
+ − 99
PageUtils::addcomment($paths->page_id, $paths->namespace, $_POST['name'], $_POST['subj'], $_POST['text'], $cin, $cid); // All filtering, etc. is handled inside this method
+ − 100
echo PageUtils::comments_html($paths->page_id, $paths->namespace);
0
+ − 101
break;
+ − 102
case 'editcomment':
+ − 103
if(!isset($_GET['id']) || ( isset($_GET['id']) && !preg_match('#^([0-9]+)$#', $_GET['id']) )) { echo '<p>Invalid comment ID</p>'; break; }
+ − 104
$q = $db->sql_query('SELECT subject,comment_data,comment_id FROM '.table_prefix.'comments WHERE comment_id='.$_GET['id']);
+ − 105
if(!$q) $db->_die('The comment data could not be selected.');
+ − 106
$row = $db->fetchrow();
+ − 107
$db->free_result();
213
+ − 108
$row['subject'] = str_replace('\'', ''', $row['subject']);
0
+ − 109
echo '<form action="'.makeUrl($paths->page, 'do=comments&sub=savecomment').'" method="post">';
+ − 110
echo "<br /><div class='tblholder'><table border='0' width='100%' cellspacing='1' cellpadding='4'>
213
+ − 111
<tr><td class='row1'>" . $lang->get('comment_postform_field_subject') . "</td><td class='row1'><input type='text' name='subj' value='{$row['subject']}' /></td></tr>
+ − 112
<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>
+ − 113
<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
+ − 114
</table></div>";
+ − 115
echo '</form>';
+ − 116
break;
+ − 117
case 'savecomment':
+ − 118
if(empty($_POST['subj']) || empty($_POST['text'])) { echo '<p>Invalid request</p>'; break; }
322
+ − 119
$r = PageUtils::savecomment_neater($paths->page_id, $paths->namespace, $_POST['subj'], $_POST['text'], (int)$_POST['id']);
0
+ − 120
if($r != 'good') { echo "<pre>$r</pre>"; break; }
322
+ − 121
echo PageUtils::comments_html($paths->page_id, $paths->namespace);
0
+ − 122
break;
+ − 123
case 'deletecomment':
+ − 124
if(!empty($_GET['id']))
+ − 125
{
322
+ − 126
PageUtils::deletecomment_neater($paths->page_id, $paths->namespace, (int)$_GET['id']);
0
+ − 127
}
322
+ − 128
echo PageUtils::comments_html($paths->page_id, $paths->namespace);
0
+ − 129
break;
+ − 130
}
+ − 131
$template->footer();
+ − 132
break;
+ − 133
case 'edit':
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 134
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
+ − 135
{
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 136
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
+ − 137
break;
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 138
}
592
+ − 139
require_once(ENANO_ROOT.'/includes/pageutils.php');
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 140
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
+ − 141
{
337
+ − 142
$captcha_valid = true;
+ − 143
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
+ − 144
{
337
+ − 145
$captcha_valid = false;
+ − 146
if ( isset($_POST['captcha_id']) && isset($_POST['captcha_code']) )
+ − 147
{
+ − 148
$hash_correct = strtolower($session->get_captcha($_POST['captcha_id']));
+ − 149
$hash_input = strtolower($_POST['captcha_code']);
+ − 150
if ( $hash_input === $hash_correct )
+ − 151
$captcha_valid = true;
+ − 152
}
+ − 153
}
+ − 154
if ( $captcha_valid )
+ − 155
{
+ − 156
$e = PageUtils::savepage($paths->page_id, $paths->namespace, $_POST['page_text'], $_POST['edit_summary'], isset($_POST['minor']));
+ − 157
if ( $e == 'good' )
+ − 158
{
+ − 159
redirect(makeUrl($paths->page), $lang->get('editor_msg_save_success_title'), $lang->get('editor_msg_save_success_body'), 3);
+ − 160
}
285
7846d45bd250
Changed all urlname/page_id columns to varchar(255) because 63 characters just isn't long enough
Dan
diff
changeset
+ − 161
}
0
+ − 162
}
+ − 163
$template->header();
337
+ − 164
if ( isset($captcha_valid) )
+ − 165
{
+ − 166
echo '<div class="usermessage">' . $lang->get('editor_err_captcha_wrong') . '</div>';
+ − 167
}
0
+ − 168
if(isset($_POST['_preview']))
+ − 169
{
+ − 170
$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
+ − 171
$edsumm = $_POST['edit_summary'];
0
+ − 172
echo PageUtils::genPreview($_POST['page_text']);
220
+ − 173
$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
+ − 174
$revid = 0;
0
+ − 175
}
220
+ − 176
else
+ − 177
{
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 178
$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
+ − 179
$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
+ − 180
$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
+ − 181
$edsumm = '';
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 182
// $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
+ − 183
}
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 184
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
+ − 185
{
468
+ − 186
$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
+ − 187
// 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
+ − 188
$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
+ − 189
LEFT JOIN ' . table_prefix . 'logs AS l2
468
+ − 190
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
+ − 191
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
+ − 192
AND l2.action = \'edit\'
468
+ − 193
AND l2.page_id = \'' . $db->escape($paths->page_id) . '\'
+ − 194
AND l2.namespace = \'' . $db->escape($paths->namespace) . '\'
+ − 195
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
+ − 196
)
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 197
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
+ − 198
AND l1.action = \'edit\'
468
+ − 199
AND l1.page_id = \'' . $db->escape($paths->page_id) . '\'
+ − 200
AND l1.namespace = \'' . $db->escape($paths->namespace) . '\'
+ − 201
AND l1.time_id > ' . $time . '
+ − 202
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
+ − 203
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
+ − 204
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
+ − 205
$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
+ − 206
468
+ − 207
if ( $db->numrows() > 0 )
+ − 208
{
+ − 209
echo '<div class="usermessage">' . $lang->get('editor_msg_editing_old_revision') . '</div>';
+ − 210
+ − 211
$rev_count = $db->numrows() - 2;
+ − 212
$row = $db->fetchrow();
+ − 213
$undo_info = array(
+ − 214
'old_author' => $row['oldrev_author'],
+ − 215
'current_author' => $row['currentrev_author'],
+ − 216
'undo_count' => max($rev_count, 1),
+ − 217
'last_rev_id' => $revid
+ − 218
);
+ − 219
}
+ − 220
else
+ − 221
{
+ − 222
$revid = 0;
+ − 223
}
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 224
$db->free_result();
220
+ − 225
}
0
+ − 226
echo '
+ − 227
<form action="'.makeUrl($paths->page, 'do=edit').'" method="post" enctype="multipart/form-data">
+ − 228
<br />
+ − 229
<textarea name="page_text" rows="20" cols="60" style="width: 97%;">'.$text.'</textarea><br />
+ − 230
<br />
+ − 231
';
408
7ecbe721217c
Modified editor and rename functions to go through the API when rolling back. This causes rollbacks to be logged.
Dan
diff
changeset
+ − 232
$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
+ − 233
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
+ − 234
if ( !$session->user_logged_in && getConfig('guest_edit_require_captcha') == '1' )
+ − 235
{
+ − 236
echo '<br /><table border="0"><tr><td>';
+ − 237
echo '<b>' . $lang->get('editor_lbl_field_captcha') . '</b><br />'
+ − 238
. '<br />'
+ − 239
. $lang->get('editor_msg_captcha_pleaseenter') . '<br /><br />'
+ − 240
. $lang->get('editor_msg_captcha_blind');
+ − 241
echo '</td><td>';
+ − 242
$hash = $session->make_captcha();
+ − 243
echo '<img src="' . makeUrlNS('Special', "Captcha/$hash") . '" onclick="this.src+=\'/a\'" style="cursor: pointer;" /><br />';
+ − 244
echo '<input type="hidden" name="captcha_id" value="' . $hash . '" />';
+ − 245
echo $lang->get('editor_lbl_field_captcha_code') . ' <input type="text" name="captcha_code" value="" size="9" />';
+ − 246
echo '</td></tr></table>';
+ − 247
}
0
+ − 248
echo '<br />
220
+ − 249
<input type="submit" name="_save" value="' . $lang->get('editor_btn_save') . '" style="font-weight: bold;" />
+ − 250
<input type="submit" name="_preview" value="' . $lang->get('editor_btn_preview') . '" />
+ − 251
<input type="submit" name="_revert" value="' . $lang->get('editor_btn_revert') . '" />
+ − 252
<input type="submit" name="_cancel" value="' . $lang->get('editor_btn_cancel') . '" />
0
+ − 253
</form>
+ − 254
';
160
+ − 255
if ( getConfig('wiki_edit_notice') == '1' )
+ − 256
{
+ − 257
$notice = getConfig('wiki_edit_notice_text');
+ − 258
echo RenderMan::render($notice);
+ − 259
}
0
+ − 260
$template->footer();
+ − 261
break;
+ − 262
case 'viewsource':
+ − 263
$template->header();
322
+ − 264
$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
+ − 265
$text = htmlspecialchars($text);
0
+ − 266
echo '
+ − 267
<form action="'.makeUrl($paths->page, 'do=edit').'" method="post">
+ − 268
<br />
+ − 269
<textarea readonly="readonly" name="page_text" rows="20" cols="60" style="width: 97%;">'.$text.'</textarea>';
+ − 270
echo '<br />
220
+ − 271
<input type="submit" name="_cancel" value="' . $lang->get('editor_btn_closeviewer') . '" />
0
+ − 272
</form>
+ − 273
';
+ − 274
$template->footer();
+ − 275
break;
+ − 276
case 'history':
592
+ − 277
require_once(ENANO_ROOT.'/includes/pageutils.php');
322
+ − 278
$hist = PageUtils::histlist($paths->page_id, $paths->namespace);
0
+ − 279
$template->header();
+ − 280
echo $hist;
+ − 281
$template->footer();
+ − 282
break;
+ − 283
case 'rollback':
+ − 284
$id = (isset($_GET['id'])) ? $_GET['id'] : false;
+ − 285
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
+ − 286
+ − 287
$id = intval($id);
+ − 288
+ − 289
$page = new PageProcessor($paths->page_id, $paths->namespace);
+ − 290
$result = $page->rollback_log_entry($id);
+ − 291
+ − 292
if ( $result['success'] )
+ − 293
{
+ − 294
$result = $lang->get("page_msg_rb_success_{$result['action']}", array('dateline' => $result['dateline']));
+ − 295
}
+ − 296
else
+ − 297
{
+ − 298
$result = $lang->get("page_err_{$result['error']}", array('action' => @$result['action']));
+ − 299
}
+ − 300
0
+ − 301
$template->header();
481
+ − 302
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a></p>';
0
+ − 303
$template->footer();
+ − 304
break;
+ − 305
case 'catedit':
592
+ − 306
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 307
if(isset($_POST['__enanoSaveButton']))
+ − 308
{
+ − 309
unset($_POST['__enanoSaveButton']);
322
+ − 310
$val = PageUtils::catsave($paths->page_id, $paths->namespace, $_POST);
0
+ − 311
if($val == 'GOOD')
+ − 312
{
+ − 313
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;
+ − 314
} else {
+ − 315
die_friendly('Error saving category information', '<p>'.$val.'</p>');
+ − 316
}
+ − 317
}
+ − 318
elseif(isset($_POST['__enanoCatCancel']))
+ − 319
{
+ − 320
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;
+ − 321
}
+ − 322
$template->header();
322
+ − 323
$c = PageUtils::catedit_raw($paths->page_id, $paths->namespace);
0
+ − 324
echo $c[1];
+ − 325
$template->footer();
+ − 326
break;
+ − 327
case 'moreoptions':
+ − 328
$template->header();
220
+ − 329
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
+ − 330
$template->footer();
+ − 331
break;
+ − 332
case 'protect':
+ − 333
if (!isset($_REQUEST['level'])) die_friendly('Invalid request', '<p>No protection level specified</p>');
592
+ − 334
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 335
if(!empty($_POST['reason']))
+ − 336
{
+ − 337
if(!preg_match('#^([0-2]*){1}$#', $_POST['level'])) die_friendly('Error protecting page', '<p>Request validation failed</p>');
322
+ − 338
PageUtils::protect($paths->page_id, $paths->namespace, intval($_POST['level']), $_POST['reason']);
220
+ − 339
+ − 340
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
+ − 341
}
+ − 342
$template->header();
+ − 343
?>
+ − 344
<form action="<?php echo makeUrl($paths->page, 'do=protect'); ?>" method="post">
+ − 345
<input type="hidden" name="level" value="<?php echo $_REQUEST['level']; ?>" />
220
+ − 346
<?php if(isset($_POST['reason'])) echo '<p style="color: red;">' . $lang->get('page_protect_err_need_reason') . '</p>'; ?>
+ − 347
<p><?php echo $lang->get('page_protect_lbl_reason'); ?></p>
0
+ − 348
<p><input type="text" name="reason" size="40" /><br />
220
+ − 349
<?php echo $lang->get('page_protect_lbl_level'); ?> <b><?php
0
+ − 350
switch($_REQUEST['level'])
+ − 351
{
+ − 352
case '0':
220
+ − 353
echo $lang->get('page_protect_lbl_level_none');
0
+ − 354
break;
+ − 355
case '1':
220
+ − 356
echo $lang->get('page_protect_lbl_level_full');
0
+ − 357
break;
+ − 358
case '2':
220
+ − 359
echo $lang->get('page_protect_lbl_level_semi');
0
+ − 360
break;
+ − 361
default:
+ − 362
echo 'None;</b> Warning: request validation will fail after clicking submit<b>';
+ − 363
}
+ − 364
?></b></p>
220
+ − 365
<p><input type="submit" value="<?php echo htmlspecialchars($lang->get('page_protect_btn_submit')) ?>" style="font-weight: bold;" /></p>
0
+ − 366
</form>
+ − 367
<?php
+ − 368
$template->footer();
+ − 369
break;
+ − 370
case 'rename':
592
+ − 371
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 372
if(!empty($_POST['newname']))
+ − 373
{
322
+ − 374
$r = PageUtils::rename($paths->page_id, $paths->namespace, $_POST['newname']);
304
+ − 375
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
+ − 376
}
+ − 377
$template->header();
+ − 378
?>
+ − 379
<form action="<?php echo makeUrl($paths->page, 'do=rename'); ?>" method="post">
220
+ − 380
<?php if(isset($_POST['newname'])) echo '<p style="color: red;">' . $lang->get('page_rename_err_need_name') . '</p>'; ?>
+ − 381
<p><?php echo $lang->get('page_rename_lbl'); ?></p>
0
+ − 382
<p><input type="text" name="newname" size="40" /></p>
220
+ − 383
<p><input type="submit" value="<?php echo htmlspecialchars($lang->get('page_rename_btn_submit')); ?>" style="font-weight: bold;" /></p>
0
+ − 384
</form>
+ − 385
<?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
+ − 386
$template->footer();
0
+ − 387
break;
+ − 388
case 'flushlogs':
220
+ − 389
if(!$session->get_permissions('clear_logs'))
+ − 390
{
+ − 391
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 392
}
592
+ − 393
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 394
if(isset($_POST['_downthejohn']))
+ − 395
{
+ − 396
$template->header();
322
+ − 397
$result = PageUtils::flushlogs($paths->page_id, $paths->namespace);
220
+ − 398
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
0
+ − 399
$template->footer();
+ − 400
break;
+ − 401
}
+ − 402
$template->header();
+ − 403
?>
+ − 404
<form action="<?php echo makeUrl($paths->page, 'do=flushlogs'); ?>" method="post">
220
+ − 405
<?php echo $lang->get('page_flushlogs_warning_stern'); ?>
+ − 406
<p><input type="submit" name="_downthejohn" value="<?php echo htmlspecialchars($lang->get('page_flushlogs_btn_submit')); ?>" style="color: red; font-weight: bold;" /></p>
0
+ − 407
</form>
+ − 408
<?php
+ − 409
$template->footer();
+ − 410
break;
+ − 411
case 'delvote':
592
+ − 412
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 413
if(isset($_POST['_ballotbox']))
+ − 414
{
+ − 415
$template->header();
322
+ − 416
$result = PageUtils::delvote($paths->page_id, $paths->namespace);
220
+ − 417
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
0
+ − 418
$template->footer();
+ − 419
break;
+ − 420
}
+ − 421
$template->header();
+ − 422
?>
+ − 423
<form action="<?php echo makeUrl($paths->page, 'do=delvote'); ?>" method="post">
220
+ − 424
<?php
+ − 425
echo $lang->get('page_delvote_warning_stern');
+ − 426
echo '<p>';
+ − 427
switch($paths->cpage['delvotes'])
+ − 428
{
+ − 429
case 0: echo $lang->get('page_delvote_count_zero'); break;
+ − 430
case 1: echo $lang->get('page_delvote_count_one'); break;
+ − 431
default: echo $lang->get('page_delvote_count_plural', array('delvotes' => $paths->cpage['delvotes'])); break;
+ − 432
}
+ − 433
echo '</p>';
+ − 434
?>
+ − 435
<p><input type="submit" name="_ballotbox" value="<?php echo htmlspecialchars($lang->get('page_delvote_btn_submit')); ?>" /></p>
0
+ − 436
</form>
+ − 437
<?php
+ − 438
$template->footer();
+ − 439
break;
+ − 440
case 'resetvotes':
592
+ − 441
require_once(ENANO_ROOT.'/includes/pageutils.php');
220
+ − 442
if(!$session->get_permissions('vote_reset'))
+ − 443
{
+ − 444
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 445
}
0
+ − 446
if(isset($_POST['_youmaylivealittlelonger']))
+ − 447
{
+ − 448
$template->header();
322
+ − 449
$result = PageUtils::resetdelvotes($paths->page_id, $paths->namespace);
220
+ − 450
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
0
+ − 451
$template->footer();
+ − 452
break;
+ − 453
}
+ − 454
$template->header();
+ − 455
?>
+ − 456
<form action="<?php echo makeUrl($paths->page, 'do=resetvotes'); ?>" method="post">
220
+ − 457
<p><?php echo $lang->get('ajax_delvote_reset_confirm'); ?></p>
+ − 458
<p><input type="submit" name="_youmaylivealittlelonger" value="<?php echo htmlspecialchars($lang->get('page_delvote_reset_btn_submit')); ?>" /></p>
0
+ − 459
</form>
+ − 460
<?php
+ − 461
$template->footer();
+ − 462
break;
+ − 463
case 'deletepage':
220
+ − 464
if(!$session->get_permissions('delete_page'))
+ − 465
{
+ − 466
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 467
}
592
+ − 468
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 469
if(isset($_POST['_adiossucker']))
+ − 470
{
28
+ − 471
$reason = ( isset($_POST['reason']) ) ? $_POST['reason'] : false;
+ − 472
if ( empty($reason) )
220
+ − 473
$error = $lang->get('ajax_delete_prompt_reason');
28
+ − 474
else
+ − 475
{
+ − 476
$template->header();
322
+ − 477
$result = PageUtils::deletepage($paths->page_id, $paths->namespace, $reason);
220
+ − 478
echo '<p>'.$result.' <a href="'.makeUrl($paths->page).'">' . $lang->get('etc_return_to_page') . '</a>.</p>';
28
+ − 479
$template->footer();
+ − 480
break;
+ − 481
}
0
+ − 482
}
+ − 483
$template->header();
+ − 484
?>
+ − 485
<form action="<?php echo makeUrl($paths->page, 'do=deletepage'); ?>" method="post">
220
+ − 486
<?php echo $lang->get('page_delete_warning_stern'); ?>
28
+ − 487
<?php if ( isset($error) ) echo "<p>$error</p>"; ?>
220
+ − 488
<p><?php echo $lang->get('page_delete_lbl_reason'); ?> <input type="text" name="reason" size="50" /></p>
+ − 489
<p><input type="submit" name="_adiossucker" value="<?php echo htmlspecialchars($lang->get('page_delete_btn_submit')); ?>" style="color: red; font-weight: bold;" /></p>
0
+ − 490
</form>
+ − 491
<?php
+ − 492
$template->footer();
+ − 493
break;
+ − 494
case 'setwikimode':
220
+ − 495
if(!$session->get_permissions('set_wiki_mode'))
+ − 496
{
+ − 497
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
+ − 498
}
97
+ − 499
if ( isset($_POST['finish']) )
+ − 500
{
+ − 501
$level = intval($_POST['level']);
+ − 502
if ( !in_array($level, array(0, 1, 2) ) )
+ − 503
{
+ − 504
die_friendly('Invalid request', '<p>Level not specified</p>');
+ − 505
}
322
+ − 506
$q = $db->sql_query('UPDATE '.table_prefix.'pages SET wiki_mode=' . $level . ' WHERE urlname=\'' . $db->escape($paths->page_id) . '\' AND namespace=\'' . $paths->namespace . '\';');
97
+ − 507
if ( !$q )
+ − 508
$db->_die();
220
+ − 509
redirect(makeUrl($paths->page), htmlspecialchars($paths->cpage['name']), $lang->get('page_wikimode_success_redirect'), 2);
97
+ − 510
}
+ − 511
else
+ − 512
{
+ − 513
$template->header();
+ − 514
if(!isset($_GET['level']) || ( isset($_GET['level']) && !preg_match('#^([0-9])$#', $_GET['level']))) die_friendly('Invalid request', '<p>Level not specified</p>');
+ − 515
$level = intval($_GET['level']);
+ − 516
if ( !in_array($level, array(0, 1, 2) ) )
+ − 517
{
+ − 518
die_friendly('Invalid request', '<p>Level not specified</p>');
+ − 519
}
+ − 520
echo '<form action="' . makeUrl($paths->page, 'do=setwikimode', true) . '" method="post">';
+ − 521
echo '<input type="hidden" name="finish" value="foo" />';
+ − 522
echo '<input type="hidden" name="level" value="' . $level . '" />';
220
+ − 523
$level_txt = ( $level == 0 ) ? 'page_wikimode_level_off' : ( ( $level == 1 ) ? 'page_wikimode_level_on' : 'page_wikimode_level_global' );
+ − 524
$blurb = ( $level == 0 || ( $level == 2 && getConfig('wiki_mode') != '1' ) ) ? 'page_wikimode_blurb_disable' : 'page_wikimode_blurb_enable';
97
+ − 525
?>
220
+ − 526
<h3><?php echo $lang->get('page_wikimode_heading'); ?></h3>
+ − 527
<p><?php echo $lang->get($level_txt) . ' ' . $lang->get($blurb); ?></p>
+ − 528
<p><?php echo $lang->get('page_wikimode_warning'); ?></p>
+ − 529
<p><input type="submit" value="<?php echo htmlspecialchars($lang->get('page_wikimode_btn_submit')); ?>" /></p>
97
+ − 530
<?php
+ − 531
echo '</form>';
+ − 532
$template->footer();
+ − 533
}
0
+ − 534
break;
+ − 535
case 'diff':
592
+ − 536
require_once(ENANO_ROOT.'/includes/pageutils.php');
+ − 537
require_once(ENANO_ROOT.'/includes/diff.php');
0
+ − 538
$template->header();
+ − 539
$id1 = ( isset($_GET['diff1']) ) ? (int)$_GET['diff1'] : false;
+ − 540
$id2 = ( isset($_GET['diff2']) ) ? (int)$_GET['diff2'] : false;
+ − 541
if(!$id1 || !$id2) { echo '<p>Invalid request.</p>'; $template->footer(); break; }
+ − 542
if(!preg_match('#^([0-9]+)$#', (string)$_GET['diff1']) ||
+ − 543
!preg_match('#^([0-9]+)$#', (string)$_GET['diff2'] )) { echo '<p>SQL injection attempt</p>'; $template->footer(); break; }
322
+ − 544
echo PageUtils::pagediff($paths->page_id, $paths->namespace, $id1, $id2);
0
+ − 545
$template->footer();
+ − 546
break;
91
+ − 547
case 'detag':
+ − 548
if ( $session->user_level < USER_LEVEL_ADMIN )
+ − 549
{
220
+ − 550
die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('etc_access_denied') . '</p>');
91
+ − 551
}
+ − 552
if ( $paths->page_exists )
+ − 553
{
220
+ − 554
die_friendly($lang->get('etc_invalid_request_short'), '<p>' . $lang->get('page_detag_err_page_exists') . '</p>');
91
+ − 555
}
322
+ − 556
$q = $db->sql_query('DELETE FROM '.table_prefix.'tags WHERE page_id=\'' . $db->escape($paths->page_id) . '\' AND namespace=\'' . $paths->namespace . '\';');
91
+ − 557
if ( !$q )
+ − 558
$db->_die('Detag query, index.php:'.__LINE__);
220
+ − 559
die_friendly($lang->get('page_detag_success_title'), '<p>' . $lang->get('page_detag_success_body') . '</p>');
91
+ − 560
break;
0
+ − 561
case 'aclmanager':
592
+ − 562
require_once(ENANO_ROOT.'/includes/pageutils.php');
0
+ − 563
$data = ( isset($_POST['data']) ) ? $_POST['data'] : Array('mode' => 'listgroups');
+ − 564
PageUtils::aclmanager($data);
+ − 565
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
+ − 566
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
+ − 567
$rev_id = ( (isset($_GET['oldid'])) ? intval($_GET['oldid']) : 0 );
322
+ − 568
$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
+ − 569
$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
+ − 570
$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
+ − 571
$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
+ − 572
$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
+ − 573
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
+ − 574
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
+ − 575
$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
+ − 576
break;
0
+ − 577
}
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
+ − 578
0
+ − 579
//
+ − 580
// Optimize HTML by replacing newlines with spaces (excludes <pre>, <script>, and <style> blocks)
+ − 581
//
+ − 582
if ($aggressive_optimize_html)
+ − 583
{
+ − 584
// Load up the HTML
+ − 585
$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
+ − 586
@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
+ − 587
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
+ − 588
$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
+ − 589
0
+ − 590
// Re-enable output buffering to allow the Gzip function (below) to work
+ − 591
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
+ − 592
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 593
// 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
+ − 594
// 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
+ − 595
$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
+ − 596
"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
+ − 597
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
+ − 598
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 599
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
+ − 600
{
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 601
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
+ − 602
{
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 603
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
+ − 604
exit();
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 605
}
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 606
}
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 607
582
+ − 608
// header("ETag: \"$etag\"");
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 609
0
+ − 610
// Done, send it to the user
+ − 611
echo( $html );
+ − 612
}
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
+ − 613
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
+ − 614
$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
+ − 615
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
+ − 616
542
5841df0ab575
Added ETag support and increased caching settings to try and speed the system up. Result of a YSlow audit.
Dan
diff
changeset
+ − 617
@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
+ − 618
0
+ − 619
?>