What is new in Mys v1.3.6: Miscellaneous QoL Updates

Forum
Last Post
Threads / Messages
The beta version of Mys v1.3.6 will be available for downloading/testing on this Sunday, and I've been running some tests to make sure the basic features are working as intended. So far so good, I've fixed most of the bugs I've found. In this blog post I will introduce a few QoL updates for Mys v1.3.6, excluding the PHP 7/8 compatibility update and custom smarty templates which were already brought up in the last 2 blog entries.


Full-Fledged MVC Project Structure:
Since version v1.3.2 we've been transitioning Mysidia Adoptables into MVC web project structure, and the progress is finally complete. Mys v1.3.6 will have a model layer that contain code for data access and business logic, and you can find model class files that represent each database table. The model layer currently uses active record, but we will be switching to data mapper/repository in Mys v1.4.0. There is also a service layer that handles application logic, which contain useful classes for application services, builders, validators, etc. If you are not a coder, theres no need to worry about this change. But if you are a programmer yourself, you'll find that Mys v1.3.6 looking a lot more 'modern' than the code that was written 10 years ago.

New Password Hashing Algorithim:
Since PHP 5.5, the standard way to hash user password is to use bcrypt which is easy and more secure than any userland customized password hashing algorithm. Mys v1.3.6 will be using new bcrypt with password_hash to encrypt user password, it will make brute force hacking much more difficult than before. With this, the salt and pepper are no longer needed. For sites on old versions, upgrading to Mys v1.3.6's new password hash will be smooth. Users will just have to log in and the password will be automatically rehashed, theres no need to force password reset.

CK Editor 4 with customizable toolbars:
The rich text editor in Mysidia Adoptables has been stuck with CKEditor 3, which was way obsolete. To modernize the application further, I've decided to upgrade it into CKEditor 4. If you are familiar with CKEditor 4, you'd know that it comes with three different modes: Basic, Standard and Full. Its possible to choose one of these 3 modes for the pages on your site. By default, the shoutbox uses basic mode(only 1 row of toolbar, limited features available), private message text uses standard mode(2 rows of toolbars, more features available), and the rich text boxes in ACP uses the full mode(4 rows of toolbars, all features available).

MyBB v1.8 Forum Integration:
Mysidia Adoptables has had forum integration with MyBB since a long time ago, but it is so far only compatible with MyBB 1.6.x. Mys v1.3.6 will update the forum integration service to be compatible with MyBB 1.8.x, and the integration can be specified at the installation step of Mysidia Adoptables. I also plan to add support for other forumwares in future, such as PHPBB and SMF. Note if you are using MysidiaHost, make sure you run your forum properly. If your forum is flooded by spams that slow down the entire server, your hosting account can be suspended or deleted.

AdminCP Improvements:
The admin control panel will also go through an update that it will be more convenient to use. With this, I hope to eliminate the chance that newbie admins can blow their site over(ie. delete him/herself accidentally, add a module with syntax error in the custom PHP code, etc). I've also made changes to some textboxes and converted them to dropdown list, which makes it easier for admins to choose from a list of users/adoptables/items. I may post another blog before the beta release to explain the changes in detail, and I am sure all of you will like it.

IDs instead of usernames/adopttypes/itemnames in URL and Database foreign keys:
This is an update that has been requested several times in the past by the coders, as the current version of Mysidia Adoptables is using identifier names such as username, adopttype, itemname, shopname, etc in URLs and as database foreign keys. One issue with this approach is that, the identifiers will not be able to contain special characters, as they will not work properly as URL. Also it may trigger unpredictable behaviors if the identifier names are changed by site admins(ie. item name changes may result in inventory items becoming unusable). By using ID instead of usernames/adopttypes, all of these problems are effectively prevented, also it improves performance as database lookup is faster with primary indexed keys. This update does not come without price, as it makes upgrader very hard to write this time. I havent finished the upgrader yet, will spend next 1-2 weeks to make it work.


There are also other minor QoL updates such as improved form handling/processing, as well as more secure SQL Querybuilder than the original version Fadillzzz wrote. If you have any suggestions for QoL updates, you can comment on this blog post and I may still have time to add them to the script before the official release at the last week of August. Hope you all have a great time, and thanks for reading through this long and boring article. :)

Comments

Oh my god I am so excited for this! Very excited for the MVC structure and use of password_hash. So excited to play around with the code. Thank you for all that you do!
 
Oh my god I am so excited for this! Very excited for the MVC structure and use of password_hash. So excited to play around with the code. Thank you for all that you do!

You're very welcome. The beta version should be ready by this Sunday, so stay tuned. Will be nice if you want to play with the script and test it out, Id like to fix all the possible bugs before the official release at the end of the month.
 
  • Forum Contains New Posts
  • Forum Contains No New Posts

Blog entry information

Author
Hall of Famer
Views
2,460
Comments
2
Last update

More entries in Mysidia

More entries from Hall of Famer

Forum statistics

Threads
4,274
Messages
33,114
Members
1,602
Latest member
BerrieMilk
BETA

Latest Threads

Latest Posts

Top