| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
I spent the last few hours sanitizing the database and fixing huge bugs in the code. Among the changes made were:
- "Theoretically related posts" have been removed due to the lack of FULLTEXT index support in InnoDB tables
- Removed tons of stripslashes() calls that were used to remove slashes from records before I realized (while doing all of this work) that magic_quotes_gpc was on for some reason. I mean, like, come on!
- Replaced all non-library uses of htmlentities() with htmlspecialchars(), which basically does the same thing except it doesn't mangle Unicode.
- Completely eradicated polls.
Note that this does mean that all database backups prior to December 11th 2010 are now incompatible with Four Island.
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Also updated public and private keys for reCAPTCHA. As well as the use of the new keys, Four Island now stores the private key along with the other
protected information that is not source controlled, instead of with the public key.
|
| |
| |
| |
| |
| |
| | |
Because of the lifting of the jail around my server, it can once again use reCAPTCHAs for security.
Backed out changeset 9332c237adcd
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| | |
Because Four Island is often viewed using a subdomain or an IP address in lieu of the actual domain name, relative URLs are needed to render the page
correctly in most circumstances.
|
|/
|
|
|
| |
After a little digging, it turned out that the reason that reCAPTCHA always failed was because the reCAPTCHA server was blocked to the server. This should've
been obvious as the reCAPTCHA always worked on the development server.
|
|
|
|
|
|
|
| |
XHTML was causing so many problems that it was simply unbearable. Four Island 3.0 will be sure to have no traces left of this annoyance.
Also, a lot of files are showing up as being changed because this commit was on the server and I had to modifiy permissions for files (all of the files that were new since my
last server commit) so I could commit.
|
|
|
|
| |
Because of a bug in the formula used to calculate the calendar color for each year, 2010 returned 0 instead of 4.
|
|
|
|
| |
There was previously a very annoying bug with the POTW that would randomly (but consistantly) deny people access to the POTW. It finally turned out that poll-results.php required you to be logged in to vote, which isn't what is wanted.
|
| |
|
| |
|
|
|
|
|
| |
Previously, welcome.php was always loaded if no module was specified. Because of this, the index page blog section was there, while the rest of the blog
code (plus archive code) was in blog.php. Now, the all of the blog is in blog.php and all of the archive is in archive.php.
|
| |
|
| |
|
|
|
|
| |
Made many strutural changes to Four Island allowing for the reinclusion of Fouripedia.
|
|
|
|
|
|
|
|
| |
Because XHTML was accidentally disabled in the previous changeset, a new error was found that, when in HTML mode (required for IE and layouts prior to 7),
voting did not work due to the encoded ampherstand in the query string. This is odd because what works in XHTML should also work in HTML. So, to fix this,
XHTML was re-enabled and now the ampherstand is only encoded when XHTML mode is on.
Also fixed some positioning errors with the tails of bubbles.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also rewrote the way layouts work. Now, each layout requires a "layout.tpl" file (which contains the header and footer for the layout) and a "style.php"
file (which contains and can include other files that contain the CSS for the layout). Each layout has it's own folder in theme/layouts and you can switch
between them using a combo box in the Hatbar.
Layouts 6.2 and 4.5 have been modified to work with new Layout 7 features such as AJAX, and they should be relatively free of bugs. Layout 3 has not yet
been transferred because since it is pre-The New Four Island, it will be very difficult to do so.
This changeset requires manual external code changes:
* The line below must be added above the functions.php include in The Fourm's funnctions.php
require('/svr/www/hatkirby/fourisland/main/includes/session.php');
* The block of Four Island code in The Fourm's page_header() function should be replaced with:
global $fi_pagetitle;
$fi_pagetitle = $page_title;
ob_start();
* The block of Four Island code in The Fourm's page_footer() function should be replaced with:
global $fi_pagetitle;
$content = ob_get_contents();
ob_end_clean();
$noRightbar = 1;
$onFourm = 1;
$pageCategory = 'fourm';
if ($fi_pagetitle == 'Index page')
{
$title = 'The Fourm';
} else if (strpos($fi_pagetitle, 'View topic') !== FALSE)
{
$title = str_replace('View topic - ', 'Topic: ', $fi_pagetitle) . ' - The Fourm';
} else if (strpos($fi_pagetitle, 'View forum') !== FALSE)
{
$title = str_replace('View forum - ', 'Fourm: ', $fi_pagetitle) . ' - The Fourm';
} else if (strpos($fi_pagetitle, 'Viewing profile') !== FALSE)
{
$title = str_replace('Viewing profile - ', 'Member: ', $fi_pagetitle) . ' - The Fourm';
} else {
$title = $fi_pagetitle . ' - The Fourm';
}
if ($_GET['view'] != 'print')
{
include('/svr/www/hatkirby/fourisland/main/includes/layout.php');
} else {
echo $content;
}
Closes #117
|
|
|
|
|
|
| |
When the poll escaping problem was fixed, a whole ton of other similar bugs were found which were also fixed here.
Fixes #115
|
|
|
|
|
|
|
|
|
|
| |
The following database changes must be made:
* A TEXT column called "text" must be added to the end of "polloftheweek"
* The transferPollRss.php script must be run
* The "pollrss" table must be dropped
Closes #113
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following changes were also made in this revision:
* All HTML was changed to XHTML and a !DOCTYPE was included to reflect this
* Rewrote quotes tracking system to be much less complicated and actually working
* Changed quotes rendering to look more like Chirpy than Rash
* Fixed comment textarea bug
* Rewrote a ton of CSS so it's not as bloated
* Added a JavaScript confirmation when deleting a comment
* AJAXified voting on the POTW
* AJAXified voting and flagging quotes
* AJAXified commenting
* AJAXified voting on posts
* Added DateFinder back after it was accidentally deleted in Layout 4.5
The following database changes must be performed as soon as possible:
* Fix title of NO <!DOCTYPE> post (the < is missing the semicolon)
* Restore post Frasty Tha Snaman from a backup
* Reset "flag" field of all rows in "rash_quotes" to 0
* Remove the "vote" and "flag" columns of "rash_tracking"
* Rename the "quote_id" column of "rash_tracking" to "vote"
The following external code changes must also be performed as soon as possible:
* Add the following line to the end of the // Four Island block in The Fourm's functions.php:
require('/svr/www/hatkirby/fourisland/main/includes/specialdates.php');
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the comments table referenced users by username. However, if user ever changed their username, everything would become messed up. To fix
this, the index has been changed to the user ID. This change obviously requires maintenance:
This SQL must be run: "ALTER TABLE `comments` ADD `user_id` INT( 11 ) NOT NULL AFTER `page_id`;"
This PHP will generate some SQL that must be run:
<?php
$getusers = "SELECT DISTINCT username FROM comments WHERE is_anon = 0";
$getusers2 = mysql_query($getusers);
while ($getusers3 = mysql_fetch_array($getusers2))
{
$getuser = "SELECT * FROM phpbb_users WHERE username = \"" . $getusers3['username'] . "\"";
$getuser2 = mysql_query($getuser);
$getuser3 = mysql_fetch_array($getuser2);
echo("UPDATE comments SET user_id = " . $getuser3['user_id'] . " WHERE username = \"" . $getuser3['username'] . "\" AND is_anon = 0;<BR>");
}
$getusers = "SELECT * FROM anon_commenters";
$getusers2 = mysql_query($getusers);
while ($getusers3 = mysql_fetch_array($getusers2))
{
echo("UPDATE comments SET user_id = " . $getusers3['id'] . " WHERE username = \"" . $getusers3['username'] . "\" AND is_anon = 1;<BR>");
}
?>
This SQL must be run: "ALTER TABLE `comments` DROP `username`;"
|
|
|
|
|
| |
There was a bug where, if an anonymous commenter used a username that was being used by an actual member, Four Island would think the anonymous
commentor was actually the member.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
For some reason, the 404 page was previously filled with terrible semantics, IE classes and it didn't look great. Now, the HTML has been improved.
The Search clause has been fixed, there was a bug with displaying the search terms. Also, the error document has been set to the 404 page so the 404
page is actually shown when a page cannot be found.
|
|
|
|
|
|
| |
As the functions defined in functions_quotes.php are only used in the
quotes.php module, there is no reason to have them located in a seperate
include file.
|
| |
|
|
|
|
|
| |
Ages ago, Four Island used mod_rewrite and a module called fourm.php to integrate The Fourm into the main site. However, now that task is
accomplished by The Fourm itself by including the Four Island header.php and footer.php
|
| |
|
|
|
|
|
|
| |
Also fixed spelling of maintenance in places where it was incorrectly spelled.
Maintenance Required: Rename "mantainenceMode" config to "maintenanceMode"
|
|
|
|
| |
Now, changes can be remotely pushed to the central repository and updated using the Admin panel.
|
|
|
|
|
| |
Many SQL queries were using the function addslashes() to escape their content. They have been replaced with the more secure
mysql_real_escape_string() function.
|
|
|
|
|
|
| |
Previously, if a draft was being moved into the pending queue, it would be deleted instead. The problem turned out to be the fact that when the tag
system was changed (409d99f03471), the single instance in the admin panel of a draft being changed into a pending post was not fixed as the rest
were. The extra column in the "INSERT" query annoyed MySQL as that column no longer exists.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Certain posts, when moved around, were strangely deleted from the pending queue. This was actually two seperate bugs, both causing the same problem.
1. When looking for the post to swap with, the movePending command would search for the next post with an ID greater than or less than the current
ID, but it wouldn't actually sort the results correctly so that the corrent posts wouldn't neccessarily always be the post shown. This resulted in
a seemingly random pending posts being deleted. This has been fixed by adding a simply "ORDER BY" clause to the SQL "SELECT" commands.
2. When re-inserting the pending posts into the queue (after swapping IDs), if one of the posts contained invalid characters requiring escaping,
MySQL would reject the post without error and simply not insert it, resulting in one or more of the posts involved in the switch to be deleted.
This has been fixed by wrapping the text of the post in the mysql_real_escape_string() function.
|
|
|
|
|
| |
The admin panel's movePending was suffering the same Every Item Is Exactly One ID Away From One Another syndrome that the main blog was facing in
changeset 8c0096629f88 (Fixed blog post Next/Previous links)
|
|
|
|
|
|
|
|
|
|
|
|
| |
The movePending command is used to re-arrange the pending queue. However, it's output had two errors:
1. If the move completed sucessfully, the pending queue would be shown again. However, the URL would still be the movePending command, with it's
parameters. Because of this, if the user refreshed, it would try to re-arrange the queue again, which could cause some strange things to happen as
the post in question had already been moved. This problem has been fixed by redirecting to the managePending command after executing the
movePending command instead of simply running the managePending command internally as used to be the problem.
2. As a collary of the preceding error, if the move failed, the error would simply back up the browser's history and refresh. If the previous page
was the output of a sucessful movePending command, strange things would happen. This was fixed dually by the previous solution and the fact that
now the error messages simply link to the managePending command.
|
|
|
|
|
| |
I decided that, because I use the :) emoticon so often, I might as well replace it with an actual image. I've added a Smiley parsing system to
complement the BBCode parsing one.
|
|
|
|
| |
I don't know, a lot of stuffses happened that I don't quite remember anymore. Goodness, that's not good.
|
|
|
|
|
| |
Previously, when a post was deleted, it's adjacent posts displayed nothing for the respective Next/Previous link because there was no post with an ID
exactly one before or after it. Now, blog.php just looks for the next or previous ID, regardless of if it's actually adjacent.
|
|
|
|
|
| |
Previously, Four Island posted a blog, and then searched through the table looking for it so it could retrieve its ID. Now, the "mysql_insert_id()"
function is used instead.
|
|
|
|
|
| |
For some reason, the source is full of www subdomain links. The rewriting engine doesn't seem to rewrite correctly, so most www subdomain links
forward to the original URL, not the rewritten URL, which is the base of the Pingback error.
|