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