Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Presenting THT Reworked 1.3.10!
Update: Reworked Manager turned out to be a unicorn, and THT 1.3.10 was meant as a project for developers to pick up. It's not meant for production environments. As THT Reworked is now on GitHub at, I'll continue the project if it gets enough attention there.

UPDATE: THT Reworked 1.3.10 is now available here for downloading.  It doesn't include some of the features I had promised, but the surprise I mentioned is that I'll be building a project of my own that will replace THT Reworked releases.  I'm calling it Reworked Manager.

Reworked Manager will in the end, be able to do everything that WHMCS and BoxBilling can do and more.  Plus it will be compatible with WHMCS modules and BoxBilling Modules through it's own abstraction layer.  This means that if you've ever purchased a WHMCS or BoxBilling module, you will be able to continue to use it on Reworked Manager.

Reworked manager is a large scale project that will include it's own local and external API and much more.  THT was designed completely differently that what I need for this project and I decided to not change everything in THT and try to keep it stable, but instead, I'll make my own.  I think the ETA for this could be anywhere from a few months to a year, but it'll be worth it.  I originally planned on giving THT Reworked a fresh new look, but instead I'll spend more time on Reworked Manager's look.  When I have the interface designed, I'll post teaser screen shots for you.

When Reworked Manager is finished, I do plan on releasing both an open source version as well as a payware version.  The payware version is slated to be for more in depth support, the ability to sell (through a license to others for Reworked Manager.  If you do reselling, this could be quite profitable for you.  You'll also be able to get beta releases of the product which others will have to wait until the script is fully in production.

I plan on taking this project in a more commercial direction and it'll be less stressful on me with having a script that I built stable from the get go.  I haven't decided on a price for the paid version(s) of the project or what each package will give you access to, but I will be making sure I'm very competitive.  If you would like a free license to the script for the life of the project, then I'll have a way to donate on soon.  Right now the site isn't up or built yet.  When it is, the more you donate, the better the license you'll receive for free!

Hey, I wanted to make an announcement to let you know that THT Reworked 1.3.10 is being worked on now.  I'll be fixing many issues people have been reporting in this forum as well as adding new features.  To anyone I told that it would be out in the first 2 weeks of September, unfortunately that won't be happening.  I've been patching up the system like crazy.  I've pulled out useless functions, re-wrote many of them, formatted the code uniformly, and more.  All of that needed to be done to make the project manageable so all I have to focus on in the future is making improvements and not thinking "will this be compatible with that part of the script?  Does it have a postvar or getvar that's being referenced in the function?  What if both are there?"  WOW!  What a mess, but once I've standardized the whole system, it'll be MUCH less buggy.

So, yes, the system will take longer to finish, but in the end, you'll be getting a LOT more and a better quality product!  See the list of improvements below.  Oh, and once 1.3.10 is out, I have a surprise for everyone.  Wink  You're going to love the surprise.  All I'll say is "Makeover."

What can you expect?

1.) The all time annoying "Step 5: An error has occurred. Please inform your system administrator." will be fixed to be useful.  Your clients will still see that message, but the error number and plausible solutions will be logged in the admin area for you to investigate.  This will protect you from hackers seeing the error codes and possible issues your server has, while giving you a heads up as to what's actually going on. - DONE!

2.) I'll make all the mods in the wish list.  (See below)  As always, the modules will be released for 1.3.5 as they get made so that they can be used faster than waiting for a new system to be developed.  (1.3.10)  Also, the items above will be made modular first as those should be quick fixes.

The mods in the wish list that will be made in this release are:  (In order of release)

1.) [Requester: Fakher] A mod to allow admins to log into client accounts. - DONE!
2.) [Requester: WebyHosting and bombshellz] Annual payments module
3.) [Requester: Xversion] A mod to install a script on signup.
4.) [Requester: Na'ven] A module to add payment methods to the order section and to the invoices section.  Harrie wants a Google Checkout mod.
Note: I'll make this modular like the servers are, but the only extra payment mod for right now will be Google Checkout.
5.) [Requester: Na'ven] A way to resell domains.  Just like the servers have their own files that allow for extensibility, so will these.  I'll make a reseller club module for now.
6.) [Requester: herolien and kamilel] A language module so the system can be set to a default language and staff/clients can set their language as well.  (I'm particularly excited about this one.  I like making language mods.  It'll just be English for now, though.)

The wish list is listed on this post if you're interested in adding more requests for later releases.

Completed Modules:

UPDATE: I've decided not to release the rest as modules as they are WAY more intensive than I originally thought.  I'll be releasing the rest of the stuff listed and more in 1.3.10.

1.) Redid the entire order system so everything is done in PHP instead of passing sensitive information through URLs.  This should fix a lot of errors as well.
2.) Fixed (and am fixing) some small security issues I found.  They wouldn't lead to much if exploited, but but could be annoying to admins who wonder how someone did something they weren't supposed to do.
3.) Cleaned up the massive number of templates the system is using and made things much cleaner
4.) Removed old unreferenced code and found some unused useful code leading me to interesting new features that never were finished and I'll be adding in.  (Ex. Extra order form fields and a backup/restore system.)
5.) Migrated all the field checks to their own class for easy maintenance and domain TLDs (Ex. .com) are now checked with a list from IANA.  This gets updated as often as you want it to be.  (Set in the general settings.)
6.) Made it so that you can select if you want money to be shown as $1,000.33 or $1 000,33.  (You can already use your own currency symbol as of 1.3.5, but now you can show your chosen currency format.  You can enter it as such as well.)
7.) Heightened the password/salt encryption to a password extended 128 bit Whirlpool.  (Both the salt and pass are done that way.)  I could take it a step further just for fun and make it change the salt and hash it up again with the correct password on login, thus changing both hashes, but I'll resist the temptation as all it does is stress the server out more needlessly.  Right now, it most likely has the most secure password encryption schema of anything open source.  I noticed that forums only MD5 stuff.  MD5 has the folly of having password collisions and all you have to do is produce the same hash value.  MD5 isn't really for password encryption as MD5 is really obfuscation, but Whirlpool using AES 256 and getting password expanded 5,000 times...  Now we're having fun!  =D

8.) You can have your sessions set to time out if you want them to.
9.) You can let a user register for a paid account and when you mark it as paid by giving them a credit, their status changes to active instead of "Awaiting Payment."
10.) Most (all?) of the servers THT Reworks supports do not allow for subdomain registration at order time.  (Meaning you need to sign up with a domain)  I added a variable to the server files to tell the system that subdomains are not supported on the server when you order a package.  The user will get a message stating as such.  As I plan to integrate the .tk API into this release for you to offer free domains to your users (or paid if you wish) then this won't kill any of your sales/non-sales.  I marked all server files as not be able to use subdomains when you order.
11.) You can now specify if you wish to connect to each server via HTTPS or HTTP and also specify the port that THT should use to connect to the server on to set up the account.
12.) SMTP mail no longer uses Pear (now it's native PHP) and it allows for custom port selection.  (You can still use PHPMail if you don't want to use SMTP.)
13.) Clients with an outstanding balance cannot close their paid account or change to a free account without paying their balance or contacting you to give them a credit.  They will be told that their balance is outstanding and they will be congratulated on that.  lol
14.) The "user_packs" table has been merged with the "users" table in MySQL.
15.) All the code was "beautified" in order to keep the code consistent and manageable.  With everything being easier to read, this will make for quicker releases and ensure better stability.
16.) I spent the last 3 days abstracting every single query in THT Reworked!  Everything is now using mySQLi instead of the depreciated mysql_ functions.  It's now much cleaner in the code and this opens up the possibility of migrating THT to using other databases at some point.  (As I don't see why anyone would use anything other than MySQL for THT, I'll just leave it at "the hard part's done, migrate it the rest of the way yourself later if you wish."  lol  $db->select(), $db->insert(), $db->update(), and $db->delete() are now used for abstraction.
17.) Generic terms like $array, $query, and $data or $data2, etc. have now been given real variable names to help identify what does what.  This will aid in coding as well.
18.) The database will only strip for you in the database class and in compiler.php.  As the queries have been all migrated, there's no more need for $db->strip()pers gone wild.  =)
19.) You can now specify the email to receive cron output instead of having it sent to every staff member.
20.) The add/edit/delete servers/packages section is now fully PHP.  Just as with other ajax functions, anyone can visit ajax in their browser and start changing settings in your server if it doesn't check if the admin is logged in or whatnot.  This is why Ajax needs to go.

21.) Users can now order VPS from you via a dummy server file.  If you set up a VPS server, you just fill in the basic stuff and packages can be set to admin approval so that you can put them on the new server.  You'll need to manage the user's VPS account separately, (Ex. set up the VPS server for them, remove it, and whatnot) but you can use THT to bill the user and offer customer service and whatnot.
22.) The RSS feed in the admin area is no longer code bloated with using an RSS plugin.  I changed it over to SimpleXMLElement stuff and loaded it off of that.  This eliminates the admin/cache directory as well as /includes/rss stuff.  Less code = more chance of being stable.
23.) TinyMCE was upgraded to 4.0.5, which is the latest release.  It has a pretty new interface as well and it has many language modules for it.  When I make the language integration for THT, TinyMCE will also be set to the desired language as well.  I also gave you more space to work and enabled useful plugins.  (Unsafe plugins like viewing/editing source, adding movies, and images, are only enabled for admins.)
24.) Client Importer has been migrated to "Clients" as a sub function.
25.) Admins will now be emailed when a user account is suspended, unsuspended, terminated, or canceled.  This was needed do to the dummy VPS server as the dummy server file doesn't know how to perform those functions for you.
26.) Admins can set a flag to make any user a free user regardless of the plan type.  This basically makes it so cron doesn't look at bills for the user.  If you mark a user as a non-free user, unpaid invoices for paid plans will have their dates set as if the user was just issued that bill.  This avoids having their account terminated.  If you wish them to not have to pay any invoices they previously had, you can issue them a credit.
27.) Cron will now look at all unpaid invoices and act accordingly instead of looking at the plan the user is on.  This means that if a user is on a free plan, but had an unpaid invoice from a paid plan, (Only admins can change their plan when they have a balance due) the user will still need to pay the bill as long as they aren't marked as a free user by the admin.  Again, give them a credit if you don't need them to pay that bill.
28.) the filtered $_POST and $_GET variables are now accessed with $getvar or $postvar as they are no longer part of class main.
29.) All class_ files have been migrated to /includes/classes for cleanliness.
30.) Classes (with the exception of the DB class (renamed to dbh) and the new class instance) are now called in the form class::function to clean out the loads of "global" variables at the top of some functions.  Classes in this format are not considered instances, so class_instance.php in the new /includes/instances directory is used as a stub class to keep track of their data when they need to have it set long term.  The only globals to declare at the top of the functions that need them are $dbh, $instance, $getvar, and $postvar.
31.) The old $main->requestvar has been removed as it incites sloppy coding due to not paying attention to if something comes from $_COOKIE, $_POST, or $_GET and in my opinion it shouldn't be implemented.  I removed it instead of making it $requestvar.
32.) Akismet has been removed as Akismet's motives have changed from being a useful spam catching platform, to listing everything as spam on average.  If in the future they let people set the verbosity of Akismet's settings the way Max Mind does with their fraud catching tools, I'll re-implement it at that time upon request.

33.) If there are multiple errors, then the output will show all the errors instead of just the last one, leading a user to get annoyed by having a new error each time.  lol  Now anyone who gets an error will know exactly what to fix to make it go away the first time.
34.) The email template editor has been de-ajaxed.
35.) phpinfo() is now themable and is de-ajaxed.  Edit phpinfo.css in your themes directory to make it look different than the default.
36.) cP Creator is a dead project, so it was removed from the list of client importers.
37.) The KB has been de-Ajaxed.
38.) The client account area's "delete account" feature has been de-Ajaxed.
39.) The mass email function has been de-Ajaxed.
40.) The Navigation editor was disabled for the default Bluelust theme in the past as the template would mess up with it using that feature.  I modified the templates to work differently and made that feature work for all templates.  The default navigation is the same as it was in Blue Lust for the most part, but it can be changed in the Land of Fish (lof) editor.  It's linked in as Look & Feel in the admin area.
41.) All buttons are themeable with class "button."
42.) CSS, header, and footer editors have been de-Ajaxed.
43.) de-Ajaxing is complete now.  The only features using Ajax are the client search, navigation editor, pre-validation of coupons (Just to see if it will go through, but not to fully validate it), and when an admin or client changes the trouble ticket status.

44.) All features that will be released in 1.3.10 have been implemented and tested.  I'll start work on rebuilding the installer on the 'morrow, but keep in mind that this isn't what you have been expecting.  I've decided not to build the rest of the modules in the wishlist on this release.  You'll find out why when I release this.  My objective on this release was to make sure it's stable as I said I'd build 1.3.10.  You'll probably like the reason why I'm not building them in THIS release.

Attached Files
.zip   THT 1.3.10 (Size: 2.05 MB / Downloads: 2,128)
See my GitHub at
Quote:All I'll say is "Makeover."

Bootstrap? WHMCS-like? Big Grin
(09-13-2013, 11:34 AM)tpolis Wrote:
Quote:All I'll say is "Makeover."

Bootstrap? WHMCS-like? Big Grin

What do you mean by "bootstrap?"
See my GitHub at
Waiting,also if an upgrade info avail add it too,thanx a lot
Nice job done so far !

Eagerly waiting for the Makeover.....

Meanwhile, can you finish the Annual Payments module so that....besides only testing this awesome project we can have it live too ? Because, without this module it is like no salt in a delicious recipe !......Big Grin
(09-20-2013, 05:04 AM)sganguly Wrote: Nice job done so far !

Eagerly waiting for the Makeover.....

Meanwhile, can you finish the Annual Payments module so that....besides only testing this awesome project we can have it live too ? Because, without this module it is like no salt in a delicious recipe !......Big Grin

There's a temporary work around for that. You charge your annual fee to the customer on sign up, but once they pay, they receive a coupon that discounts their service for the month by the exact price of the plan for one year. You essentially already have the ability to charge once a year doing this.
See my GitHub at
(09-20-2013, 02:41 PM)LightworkerNaven Wrote: There's a temporary work around for that. You charge your annual fee to the customer on sign up, but once they pay, they receive a coupon that discounts their service for the month by the exact price of the plan for one year. You essentially already have the ability to charge once a year doing this.

Thank you for your reply....but can u pls elaborate how to do that ?
(09-21-2013, 02:16 AM)sganguly Wrote:
(09-20-2013, 02:41 PM)LightworkerNaven Wrote: There's a temporary work around for that. You charge your annual fee to the customer on sign up, but once they pay, they receive a coupon that discounts their service for the month by the exact price of the plan for one year. You essentially already have the ability to charge once a year doing this.

Thank you for your reply....but can u pls elaborate how to do that ?

1.) Log into the admin area and go to the "Coupons" page.

2.) Fill out the form as you'd like. Make sure you set it so the coupon only works in the "Invoices" area so it's less likely that they will be trying to add it while signing up. Also, set the "Good For" to a set number of months. Set the "Months" field to 11. (They pay the first month) Then set the discount to the same price as the package price.

3.) Give the coupon to the customer once they've paid the first bill.

If you find that people are sharing their coupons, you'll want to make one for each user if it bothers you. If people know the coupon and they sign up with it (by just going to the client area instead of finishing through the payment processor) then they would get the discount at that time.

If that happens, you'll need to add a fee to the invoice for the plan's amount. This will make it so that the user is forced to pay the bill. With the coupon being good for only 11 months and they used it on the first month, then you could force them to pay the last month's bill as well by just not making mention of it. You then get paid twice. The customer can't close their account manually due to it having a balance, but they could wait for the system to terminate them and get around a month of free service.

Hopefully this gives you some incite into your billing options and what ramifications they have in the system.
See my GitHub at
OK. Got it.
That's a good idea.
But approx what time can we expect the release of the new version?
(09-22-2013, 07:36 AM)sganguly Wrote: OK. Got it.
That's a good idea.
But approx what time can we expect the release of the new version?

Sometime tonight is all I'll say. Most programmers won't even give an ETA because we know there could be hold ups in the design. I said it's be out today and it's a strong possibility, but I can't whittle it down to the exact time. Sorry.
See my GitHub at

Forum Jump:

Users browsing this thread: 1 Guest(s)