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