Skip to content

QSF Portal 2.0

Latest

Choose a tag to compare

@Arthmoor Arthmoor released this 01 Jan 04:48
· 17 commits to master since this release

Changes for 2.0:

New Features:

  • Added security header options to the site settings.
  • Added support for mobile icon metatags.
  • Added support to report spambot registrations to Akismet.
  • Added support for Gravatars. See: https://en.gravatar.com/
  • Added Akismet filter protection to signature edits. Eat shit spambots.
  • Added Akismet filter protection to forum posts. Eat shit again spambots.
  • Added Akismet filter protection to user profiles.
  • Added the ability to toggle file approvals on and off (global only).
  • Added a file version to the file data.
  • Added a new setting to block new user registration.
  • Added Facebook page to user profile data.
  • Added the ability to put extra links on the sidebar box to reduce the need for editing the base templates.
  • Friendly URL support has been added for much of the forum code. Requires the use of an .htaccess file.
  • Support for password hash updates has been added.

Changes:

  • Minimum supported PHP version is now 8.0.0.
  • Switched nearly all database queries to use prepared statements. [The ones remaining in "old form" don't need to be prepared first.]
  • Replaced the skinning system with zTemplate. Skins are no longer stored in the database.
  • HTTP server data submitted with user registrations is now shown on the member control editing screen.
  • Emojis are now handled independently of skins and can be added on the fly as desired.
  • All references to "Emoticon" have been changed to "Emoji" to reflect what they're actually called now.
  • Changed all usage of serialize and unserialize to json_encode and json_decode to address potential PHP related vulnerabilities.
  • Default skin is now served as HTML5 instead of XHTML 1.1.
  • Password security has been updated to stronger hashing standards.
  • CSRF security tokens have been upgraded to use a cryptographically secure method.
  • Replaced the Akismet library with my own hand rolled version.
  • Updated Google Analytics support so you can just input the code snippet directly instead of altering source code.
  • The "Add Setting" function can now properly set up a new array.
  • Updated avatar handling.
  • Updated timezone handling to use more modern methods.
  • Updated the upgrade system so that a bunch of little files full of stuff aren't needed anymore. One file is sufficient with all the changes listed in sequence going forward.
  • The forum for news posts is now settable in the ACP instead of being hardcoded in the PHP files.
  • The AdminCP has new icons for decoration.
  • The custom logo section of the CSS has been separated into its own file which should not need to be updated during upgrades.
  • Topic descriptions extended to 255 character.
  • Overhauled the new user validation system to be more robust.
  • Overhauled private messages to be presented more like topics in a forum and posts in a topic.
  • Table engines have been changed to InnoDB instead of MyISAM for better reliability. Also MyISAM is heading for deprecation in the future as well.
  • Resetting member stats will now also correct any titles that need to be adjusted.
  • Members list has been moved to the Admin CP. Other forum systems no longer let regular members view a full list, which seems sensible.

Removed:

  • Conversion from other ancient forum packages has been removed as they're all woefully obsolete and writing new ones would be a huge time sink for little gain.
  • Removed GTalk/Skype profile fields and replaced them with X ID.
  • Eliminated Debug Mode as it was only truly useful for the old template system.
  • The unused HELP module has been removed.
  • Removed ICQ, MSN, AIM, and Yahoo from user profile data as those platforms are essentially all dead now.
  • Removed the defaultutils.php module as it seems unrealistic to have ever expected custom overrides of basic functions anyway.
  • Removed pgsql support as it became apparent nobody ever used it.
  • Removed the old mysql library as mysqli is the only thing officially supported in PHP 7.0 and above.
  • Removed the obsolete JSON libraries from the code.
  • Removed the rss folder as it no longer serves a purpose.
  • Removed server load checking as there is no real use for it anymore.
  • Removed the unused addons folder support.
  • Removed birthdays from the database as this information is dangerous to store these days.
  • Removed obsolete support for $_SESSION logins as these were not secure.

Bugs addressed:

  • File updates were not unlinking the old files after replacing them with new ones, leading to large scale space waste.
  • Bare URLs entered into posts were getting stray single quotes placed around them.
  • News post retrieval was not correctly handling time stamps. Posts were being displayed in random order.
  • When changing emails, passwords were not being verified using the proper secure hashing.
  • Corrected a number of long standing issues with selecting an avatar.
  • Timezones were being incorrectly stored in the database when new users registered.