Changelog for Grayscale CMS, version 2.1
Below is a list of all changes included in Version 2.1.0 of Grayscale CMS:
Features
The below list of items are new "features". In many cases, they are not a fully-new feature but rather something new added to enhance existing functionality.
- Create new classifieds capability.
- Add Web address validation to the "Gringo" function library. This allows Grayscale to check the web addresses entered into the Directory to ensure they're valid website addresses.
- Create RSS Feeds For Multiple Types Of Content. The new RSS feeds are now generated for the following areas:
- Events
- Articles
- Photo Galleries
- Classifieds
- News
- Code Snippets
- Create new page to hold the above RSS feeds and describe them.
- Add "Syndicate" to sitemap, to point to this page.
- Create singular page to handle outbound links. Previously there were multiple different ways of handling outbound links. One for the Links area, one for the Directory, and one for the Classifieds and they all had similar functionality. This has now been moved to one single script.
- Add to configuration file - surrender recipient (for the upcoming rescue module). This is the address to which animal surrender forms are sent.
- Blog: get unique page title on detail.php. This important SEO upgrade allows the page's title (in the top bar of the browser window) to be the same as the actual blog entry's title.
- Add alternating row colors in admin data tables. This enhances readability.
- Add config option - allow member uploads. This will allow registered site members to upload files. However, the entire member upload functionality has not been completed yet.
- Create RSS feed dump file. This file retrieves new RSS items from subscribed feeds and inserts them into the database.
- After the "dump" routing has completed, loop through the database, checking each entry's URL and delete any that are invalid
- new config option: "feed_dump_to_blog" allows you to add RSS feeds into the blog, rather than on the 'feeds' page - essentially this would allow you to run a blog relying solely on feeds from other sources.
- Create new permission structure for admin users. Change level 3 to "add/ edit/ delete ALL" and add new level 4 as Superuser. This allows you to have admin users who can administer any kind of content, but still allows you to keep them from being able to change important configuration options.
- Allow "superuser" to reinstate "deleted" or "banned" members. Previously when someone was deleted or banned, it was a permanent thing. The superuser can now reinstate these members.
- In members' details pages, show a table with a list of their recent comments to blog entries.
- In cases where an RSS channel is deleted, so should its items.
- Deleting an RSS item should actually set it as "hidden" so it doesn't end up being reinserted. This is very different from the above. This functionality is independent of the above, and assumes that deleting an "item" is an action only on that item, and not on the whole channel. However, if you were to actually "delete" the item completely from the database, (and not the channel), then the unwanted item would appear again the next time the feed_dump ran. This way, the item will remain hidden (in other words, not shown on the site).
- New custom email function allows for quicker and easier sending of e-mails, allowing for cleaner code and less chance for incomplete mail headers
- change all mail functionality so it uses the new email function
- Show category (in classifieds and directory) as a disabled form field on the page to add a new entry. This gives the user a visual cue as to which category they're submitting to.
- Add column on site users admin to display if they've confirmed their membership. This matches the mailinglist admin display, for cohesiveness.
- Make all links to e-mail a member go to the contact form. This way, members can e-mail each other without having to display a member's e-mail address.
- Obtain Meta keywords from database. Previously, Meta keywords had to be entered manually (or they defaulted to the ones you set in the config). Now, the Meta keywords are coming from the database. This is only for a handful of content types, such as articles, blog entries, and "general cms" pages.
- Add members to menu, sitemap.
- Add other important members' pages to sitemap, such as the registration page, login page, and forgotten password page.
- Search-friendly URLS. This is an important and major change to the CMS. This changes the way the URLs (the page addresses) work. Instead of URLs that use a bunch of query string variables, such as http://www.grayscalecms.com/directory/index.php?view=cat&id=16 the new URLs look more like this: http://www.grayscalecms.com/directory/view/cat/animation/ The page address is regarded as important for search engine positioning and so it is beneficial to have words in there, rather than numbers and other needless stuff. The new URLs are being used on the following types of content
- Articles
- Bandsite module
- Blog
- Classifieds
- Directory
- FAQs
- Galleries
- Snippets
- General CMS
- Members' CMS
- News
- RSS Feeds
- Merchandise
- Pedigrees
- Rescue dogs
- Videos
- Prevent "key collision" when creating the search engine friendly URLs (above) by renaming any new keys which are identical to one that already exists
- New "Banned Words" functionality. This is different from the already existing "swear words" filtering, which merely replaces bad words with "***". The new banned words functionality is an important spam-fighting measure to eliminate people from spamming the guestbook and blog comments with adverts for Viagra, etc. If someone enters one of the banned words (that you define), their form submission is completely rejected.
- New method of displaying RSS feeds in Sitemap - listing each feed as well as the general feed page.
- Add signature to e-mails from members contact form.
- Clean up the mailing list send queue before sending new message. This deletes already sent messages from the database, to help save database space.
- Put option whether or not to rewrite URLs in config. This works in conjunction with #21, above, to determine how the URLs look.
- New config option, org_list_address. This is the discussion list e-mail address for the rescue module.
- Under RSS channel admin, add a new "open" link to admin the RSS items under that feed. Previously all that could be administered for RSS feeds were categories and channels. Now the actual entries for each channel can be administered as well.
- Install and configure i-browser image plugin for TinyMCE. Grayscale uses the TinyMCE editor to allow for WYSIWYG editing of entries, but it does not have the ability to add images to the entries. I-browser facilitates that.
- Write RSS feeds using Cron, rather than pulling them out of the database "on the fly". Doing so saves considerable load on the database.
Code Cleanup
- Deletion of numerous files no longer needed by system. The functionality within these files has been replaced with other methods discussed elsewhere.
- Change the "get_acrobat" function so it works along with the new speedbump function
- CMS Sub links table. drop the "..." from the (more...)
- Convert "General CMS" outputs to functions, where appropriate
- Clean up bloated code in /snippets/index.php to count how many snippets exist
- Convert the CMS sitemap.php, sitemap.xml, and siteinfo.xml files to functions. Do the same for the directory and classifieds
Bugs
The items in the list below are "bugs": Errors in the code/ functionality which caused the CMS to function in unexpected manners - or fail to function in expected manners. Each item below was fixed and tested.
- "Back to calendar" link in the events detail pages needs to go to that month's view, rather than the default calendar.
- In directory out, the return URL is being set to out.php, not the referring directory page.
- Right side blog include intro text needs to be plain text, not HTML.
- Order events in sitemap by event date, not order by entry.
- Change cache to only 1 hour at a time.
- Text was centered in "help" popups.
- Modify URL validate function to check for 301 or 302 response.
- Repair bug in link exchange function - outbound urls being written wrong. For compliance with most link exchange programs, do not prepend outbound urls with Grayscale "leave" code
- "?" in Add Recipient doesn't popup anything. Create new page
- "Back" in adminclassifieds.php, admincmspages.php, and admindirectory.php simply goes to the previous item in the DB. Needs to go to item parent.
- gallery popup window style needs white BG
- site_owner_mailing_address not shown on config form.
- eliminate numbers and short words from keywords function
- "Back to top" not working on Snippets and FAQs pages
- Filtered blog index - each item has "back to blog index" when that should only be at the bottom of the page
- Change banner position options so they're more clear about the banner positioning. Rather than a name for the placement, it is descriptive
- fix the events urls in the siteinfo.xml file
- somehow the return URL is getting messed up in the linkout
- Fix "category" filter link in /blog/detail.php
- Fix "author" link in /blog/detail.php
- prepend the RSS "read more" urls with appropriate "leave" code
- Site members admin: only validate password if it is DIFFERENT than the one that already exists




