Writer's Block Content Management Software Copyright 2006, Desi Quintans (www.desiquintans.com) Read 'readme.htm' for license, instructions and conditions of use CHANGELOG for Writer's Block, last updated on the 27th of November, 2006 This ChangeLog lists the changes made to Writer's Block in each version. Releases are categorised based on the most important changes they've undergone: Initial: The first release. Everything is new. Functionality: New features were added. Usability: Made it easier for the Admin to administer to the site. Code Rewrite: Code has been cleaned to remove redundancy and oddness. Dragnet: A major bug-bashing effort. All code is looked over, cleaned or rewritten in order to defeat bugs and/or make major changes to the way the program runs. Security: Measures to improve security were taken. Within each release's changelog are three subheadings under which all changes are listed: Additions: lists features or bits of code that were added in this release. Fixes: any bug-bashing that was done. Code Shuffling: any messing with the code that didn't result in the addition of a new feature or a bug-fix: the rewriting or repositioning of code without changing functionality. __________________________________________________________________________________________ Usability release v3.8a ADDITIONS (7) - New template tag added to permalink.htm ({POST_ID}). - Added {DATE} template tag to 'anycategorylisting' and 'newestarticleslink' in language file and to anypage.htm. - Added {CATEGORIES} template tag to 'postcatdirlink' and 'anycatdirlink' in the language file. The category being viewed is blacked out to prevent self-linking. - Added {SUMMARY} template tag added to 'bloglink' and 'minibloglink' in language file. - Option to change the delimiter placed between category names by the {CATEGORIES} template tag. - Anypages now track dates. Anypages created before this upgrade will display 'undatedanypage' from the language file instead of a date. You may change these dates using the Edit Anypage function. - You can now assign custom date/time display formats to dates that occur within a list. FIXES (2) - Sundry bug fixes. - A word was pluralised. Grammar FTW! CODE SHUFFLING (1) - The template tags for 'anycategorylisting' in the language file have changed to conform to the other template tags. __________________________________________________________________________________________ Security release v3.8 ADDITIONS (7) - Email address blacklist similar to the URL string blacklist can be applied to screen spamments. - Body text blacklist can be applied to screen spamments. - Comment threads now automatically close after a time specified in the Preferences. Comment threads can also be closed or opened indefinitely. The maximum life a thread can be given is 254 hours, or more than 10 and a half days. - New template tag ({POST_ID}) for permalink template. - Links now allowed in feeds. Depending on the aggregator you use, links may either be shown as clickable links or as plain text. - Mass Delete utility added to delete spamments. Deletes all comments in which a given keyword occurs, either within the URL, body text or both. Be very careful: some spammers like to construct domain names with common strings of letters (eg. ple.foo.com) and using that string as a keyword may delete legitimate entries also. - New template tag for permalink.htm: {POST_ID} shows the number of the post. FIXES (2) - Replaced the "Post is live" icon so it has a green bar on it, instead of a red one. - Repaired a problem with editing a user. CODE SHUFFLING (2) - Condensed some functions. - Some rephrasing in the Admin section. __________________________________________________________________________________________ Code Rewrite/Usability release v3.7 ADDITIONS (1) - You can now delete many comments at a time by checking the appropriate boxes. FIXES (5) - Fixed the next/previous item pagination links. The Next links now point to the next item instead of the newest one. - A comment now posts properly if it's made from the 'bad comment' form. No more PostID=0 business. - Spamguard now correctly ignores everything in a comment except for URLs like it's supposed to. Before it scanned the entire text of a comment from the start of the first link to the end of the last (meaning it blocked comments if they contained blacklisted words after any link: bad bad bad). - Confirmation of editing a post category now points you to the correct URL. - Install script fixed. No more syntax errors. CODE SHUFFLING (0) __________________________________________________________________________________________ Dragnet/Functionality release v3.6 ADDITIONS (6) - You can now define a default message that shows when there are no comments for a post yet. It's in the language file. - Indexes added to mySQL tables to make searching of large tables faster: searching large tables is now significantly faster. - New admin feature: report a bug. Can only be used by users who are signed on. - Totally new User Interface. If you don't get annoyed while using it then you know I've done a good job. Some of the coolest user-friendly features of the UI won't work with Internet Explorer though. Icons are from the Silk collection courtesy of Mark James (http://www.famfamfam.com/lab/icons/silk/). - Can now define how many Blog and Mini-Blog posts to show in feeds so that you can have different quantities on display. - New language array entries so that users can customise the way listings appear. The're no longer limited to
-delimited lists. FIXES (10) - Fixed lots of bugs in all the feeds. They should work fine and without typos now. - The 'view it' link you get after successfully editing a Mini-Blog post now works properly. - CHANGED THE AUTHENTICATION FROM PASSWORD() TO MD5. Hopefully this will fix a certain someone's login bug. - Definitively fixed the login bug. It was caused by the browser not properly applying the auth_ cookies, so login.php is now forced to redirect to index.php (instead of include() it) to make sure the cookies are set. - Lots of Admin pages used a non-existent array to see if a contributor was the author of a blog post. Fixed to use the $authenticate result resource from the initial authentication process at the top of the code. - post.php's default display wouldn't paginate properly because the permissions put a display limit of 15 posts on it. - archive.php now correctly checks for URL encoded spaces in the URL string. - The array routine for fetching all the post categories has been take out of a WHILE loop so it only executes once instead of 20+ times. - Categories now display correctly in the Atom and RSS main blog feeds. - latestcomments.php now only shows an ellipsis (...) if a comment runs for longer than 100 characters. CODE SHUFFLING (10) - Comments are now forced to show in reverse order when you're editing them so that the newest comments are at the top of the page. - Better cookie security. Instead of letting you stay logged in for two months you are now automatically logged out if you are inactive in the Admin section for two hours or more. 'Inactive' means not loading or refreshing Admin pages. - More concise error and success messages in Admin pages. New options after successful operation. Prettier. Better. - The autobreak checkbox now shows the linebreak tag as
and not
. - The switch statements for determining mySQL SELECT queries are simplified. - Lots of Admin pages now retrieve user details once instead of twice. - permalink.php's expiry dates on the cookies are now stored in a temporary variable so that the "time()+60*60*24*60" calculation is only done once. - Quotes were put back into array values to make them syntactically correct. (They were removed in v3.0.) - Some error-checking functions have been made to supress errors. - Many temporary variables have been removed to speed things up. __________________________________________________________________________________________ Usability/Dragnet release v3.5 ADDITIONS (4) - All text and commonly edited code output in the public site now reside in lang.php inside the template/ folder. This way you can translate the output without having to trawl through all the pages. - I noticed a lot of people put "none" in the URL field of a comment instead of leaving it blank or as-is, resulting in a link to "none". It now checks to see if the string supplied in the URL field contains less than or equal to 7 characters, and if so, makes sure no link is created. Really: how many URLs total seven or fewer characters? "www.a.tv" has eight. - To prevent people abusing the autobreak function of the commenting form by putting in many, many linebreaks, the whitespace from the beginning and end of the comment is now trimmed. - New template tag for anypage.htm: {DESCRIPTION}. FIXES (6) - Just noticed that a commenter would never be able to underline text because xmlfriendly turns into a , which is a banned HTML tag. The span tag is now allowed in comments, though the user should not be told this or else style spamming may result (like making massive text). - comments.php never used xmlfriendly.inc even though it included it. It does now. - Fixed an oddity where the XHTML-friendly function would not completely work in permalink.php, personal.php and user.php. - You can now correctly edit your user details. - Having no Anypage categories in existence now outputs an explanation instead of a PHP error message. - URL checking has been beefed up. CODE SHUFFLING (2) - Empty comment check removed from comments.php because users are not allowed to make empty comments anymore. - Removed the byline placed at the end of a Newest Article's description. It caused problems with the new language file and was kind of annoying for lone contributors. __________________________________________________________________________________________ Dragnet/Functionality/Security release v3.3 NOTE: I feel this release has put me on the one-way road to Awesome. Duude. ADDITIONS (16) - Integrated user authentication and multi-user support. - Mini-Blogs; simple blogs independent from the main blog. They have their own display/permalink page and use archive.php for archiving and rss.php for their RSS 2.0 feeds. - Many things added and changed to make Writer's Block infinitely more secure. - Spamguard now checks the body of a comment, not just the URL field. - Commenters can have their information remembered in a cookie. - You can define a blog post as a Draft and have it hidden from the public site. - Comments now have permalinks (permalink.php?PostID=[PostID]#C[CommID]). - 'Latest comments' RSS 2.0 feed added. - New Atom 1.0 feed that broadcasts the blog. - Added 'TZoffset' field to config table for use by feeds. - Added 'LatestComments' field to config table for use by Latest Comments feed. - Common HTML character entities and HTML 4.01 formatting tags are now converted to numerical entities and XHTML 1.0 tags. - You can use |HSPC|, |MSPC| and |NSPC| to insert hairspaces, em spaces and en spaces respectively. Don't expect any support for them, though. Those framing characters are pipes, on the uppercase of the backslash key. - Extended the use of the 404 template from non-existent Anypages to non-existent categories and blog posts too. It still only handles 404s relating to Writer's Block. - Confirmation message given after making or editing a comment now links to individual comment instead of comment block. - "There are no __ stored in this category" message displays if there are no items to show in a category directory page. FIXES (7) - The feeds used to display an ellipsis even if an item had less than 500 characters, which caused confusion. The feeds now only show an ellipsis when an item runs for longer than 500 characters. - Editing a comment no longer strips all HTML from it. It leaves allowed tags. - Some database fields were too long and some were too short. The adjustments only apply for new installations. - Lots of things changed and removed to make Writer's Block run clean and fast. - Anypage description fields changed from text fields to text boxes. - The URL string fields for editing categories were limited to 25 characters. Now they are unlimited. - All feeds validate and are less breakable. Phew! CODE SHUFFLING (9) - Renamed the AnyCat and PostCat fields to AnyCat1 and PostCat1 or AnyCatName and PostCatName where appropriate to accomodate the new category routine. - You're again allowed to have tags in comment text. - The install script posts a Welcome blog post. - A sleek new Admin section design. Now with less scrolling. - Doctype of default template changed to XHTML 1.0 Transitional. - Added a few new entries to spamguard.txt. - post.php now lists fifteen posts on a page instead of thirty-two. - readme.htm broken up into six separate pages. - Upgrade information moved to index.htm of the readme. __________________________________________________________________________________________ Usability release v3.2 ADDITIONS (3) - Added 'The Punctuator' to any.php, post.php and cat.php to help insert special characters. - You now have the option of displaying the Post Categories in the sitemap, though not individual posts. - The 404 redirect when an invalid Anypage URL was given didn't seem to be working (it would just give me a blank page) so now you can make your own in the display template 404.htm. FIXES (2) - rss.php used to issue links with double slashes. - HTML re-enabled in RSS feed. CODE SHUFFLING (2) - The Punctuator replaces the entity list of v3.1, except in comment.php, which has neither. - Moved documentation files to a folder called documentation/ (now you only exclude one folder instead of four files). __________________________________________________________________________________________ Dragnet release v3.1 NOTE: This was the first release I tested to ensure it ran properly throughout. All prior releases wouldn't even install because of crippling bugs. ADDITIONS (8) - You can now file a blog post or Anypage under four different categories. - Blog posts in both the Admin and Public sites are ordered by Timestamp now instead of by order created. This makes date-changing useful. - The Admin site now looks much prettier. - permalink.php outputs a helpful error message if a user tries to access it without a PostID in the query string or without having first used the comment form. - archive.php outputs an error message if you try to pull a category directory without a valid URL string. - A link to the comment block of a permalinked post appears after you edit a comment in the Admin section. - Writer's Block is now under the General Public License. Read it in gpl.txt. - List of XML-compatible punctuation entities included in any.php, post.php, cat.php and comments.php. FIXES (8) - The error page for a non-existent Anypage category now says the category doesn't exist by the URL string given instead of assuming that the category had been renamed. - install.php had two major errors that would not even let the user *install* the program. Nuts! - Categories used to build up if multiple blog posts were shown on front page. - permalink.php now shows the anti-spambot message using the message.htm template. - The permalink page used to inherit the date of the last-displayed comment. - If you went to a page higher than the first in a paginated script, the number of items displayed would be the number set in Preferences multiplied by the page number. For example, going to page two would print sixty posts instead of only thirty. Well fixed. - HTML in a category's description now shows as HTML source when editing the category instead of being executed. - The category directory of archive.php now shows the category's description. CODE SHUFFLING (8) - Removed the 'Invalid Category' messages from post.php and any.php. Invalid or empty categories now simply don't display. - Paginated scripts no longer show a deactivated 'Back' link on the first page, nor do they show a deactivated 'Next' link on the last page. - Pagination in Admin pages made more efficient. - Standardised the date formatting in the Admin pages ('2005 Oct 22'). - Made the mysql_fetch_array query in control.php stop error reporting so that no errors would appear in install.php (because control.php accesses the config table which doesn't exist before installation). - The default date format for blog posts is now 'jS \o\f F, Y' (22nd of October, 2005). - Changed the Description fields in cat.php from text boxes to text areas. - Widened the text areas of post.php and any.php by twenty columns. __________________________________________________________________________________________ Dragnet release v3.0 (new version number because there were many BIG changes) ADDITIONS (11) - Display templates have been simplified and expanded: they're now simple HTML files with special tags put where you want the page's content to appear. You now have control over the appearance of each page (aside from rss.php) - Added and tags to RSS feed. - After you make a comment there is now a link to let you view it. - The confirmation messages of post.php, cat.php and any.php now have links that let you view the item and/or make a new one. - Writer's Block Very-Abridged Manual is linked to in appropriate places in most Admin pages. - any.php and post.php now turn makeshift em dashes (including —, alt+0151 and --) into real em dash entities compatible with RSS (—). - Writer's Block categorises by category ID instead of URL string. It is now safe to change the URL string. - If the Name or Comment field is not filled out in a comment, the half- filled form redisplays and prompts the user to fill out all fields. - Newlines in comment text are now converted to
tags, which means they actually show up. - HTML removed from the Name, Email and URL fields when making a comment. - Only , , , and tags are allowed in comment text. FIXES (6) - The pagination links in comments.php work properly. - Now you really do need to fill out all the fields in install.php. - The link to the stylesheet in the default header.htm pointed to the stylesheet on my website. Fixed to point to the screen.css stylesheet in your template/ folder. - The Category Directory under Archives now paginates based on how many posts are filed under that category instead of how many posts exist overall. - Character limit in category description raised from 100 characters to 16.5 million. - CHAR fields changed to VARCHAR. CODE SHUFFLING (8) - All forms use

...

instead of

where possible. - In all Admin files, the code that handles the various forms on each page is now at the very top, so the forms no longer have to send a query string. - Put the

$pagetitle

code into include/head.htm itself. - Single quotes removed from the inside of all array variables. - PRINT (" ... "); statements have had their parentheses removed. - The script now stops running if control.php doesn't exist in the Admin/ folder. - Connecting to the mySQL database is now run 'plain' instead of in a function that must then be recalled. - Moved the routine to grab metatag information to control.php. __________________________________________________________________________________________ Usability release v2.3 ADDITIONS FIXES (1) - The text of a comment now shows. CODE SHUFFLING (1) - Spamguard's blacklist now requires only newlines between entries instead of pipes and allows comments within the blacklist itself. __________________________________________________________________________________________ Code Rewrite release v2.2 ADDITIONS (1) - Commonly edited sections of display code like front page blog, Anypages, permalinked post and comments are now in display templates (template/display_***.php). The corresponding parts of code are no longer marked in the scripts themselves. FIXES (3) - Fixed a bug in articles.php where a non-existent variable was printed. - 'Anypage not found' message used to link to my site's 404 page. It now links to the generic "HTTP/1.0 404 Not Found" server page. - Reamoved a line in rss.php that did nothing. CODE SHUFFLING (1) - install.php used to make fields for username and password. Since Writer's Block doesn't include built-in authorisation those fields are no longer made. __________________________________________________________________________________________ Functionality release v2.1 ADDITIONS (2) - Link to offsite table of date formatting characters added to Preferences. - Can now specify a subheading on Anypages. FIXES (1) - Improved pagination (now with clickable page numbers). CODE SHUFFLING (2) - Code of public site pages marked to show where appearance of output can be changed. - Spamguard search string taken from permalink.php and put into admin/include/spamguard.php. __________________________________________________________________________________________ Functionality release v2.0 (the first WB upgrade from v1.0) ADDITIONS (2) - Archive and category directories now paginate, with the user able to define the number of posts or Anypages to show on one page. - Specify webmaster's name, the site's name and a short description for RSS feed and metatags. FIXES CODE SHUFFLING