The TSN Ranksystem is an easy to handle Level System to automatically assigns ranks (servergroups) to user on a TeamSpeaks3 Server for online time or online activity or in other words it gives time based groups. You can create your own servergroups, with permissions, icons etc. of your choice, and define these for the TSN Ranksystem. So it is possible to create your own military ranks, ... or only an increasing number. It's perfect for your community, clan or guild TS3 server.
You can also use the TSN Ranksystem only to collect the online time of user / clients on your TS server. It has a nice statistics page with an graph of online activity of your server usage, key figures of clients count, of nationalities, of client platforms and of client versions, a nice list for top user of week & month and much more...
It's an open source project and it is free to use under the GNU GPLv3 license.
Download: Version 1.2.11 (2018-09-27)
also available on GitHub
You like this tool? Then you might want to sponsor a beer for the developer.
This enables him to develop new functions more smoothly.
Don't meet the requirements? -> get a free hosting
1. Unzip the downloaded file "ranksystem x.x.x.zip".
2. Upload the whole unzipped folder to a directory on your webspace and grant permissions to the webuser. Example:
chown -R www-data:www-data /var/www/ranksystem
3. Fullfill the requirements? Install needed packages, if not already done! (Show/Hide)
apt-get install php-common php-zip php-curl php-mysql php-xml php-ssh2
apt-get install apache2
apt-get install mariadb-server mariadb-client
Enter your DB (use the way of your choice), here an example for the console:
mysql -uroot -p
Create a DB-User with privileges with the following DB commands (replace the underlined things with yours):
create user 'USER'@'LOCALHOST' identified by 'PASSWORD';
grant all privileges on ts3_ranksystem.* to 'USER'@'LOCALHOST';
4. Open the "install.php" on your browser and follow the instructions there. After installation you have to configurate according to your pleasure. A documentation you'll find (via onclick) for each parameter inside the webinterface.
5. Start the TSN Ranksystem Bot via the webinterface. To be sure, the Bot is 24/7 connected, create a cronjob (here described for debian/ubuntu) for the worker.php file to keepalive the Bot (only relevant in case of connection lost or crash):
Login in to your server via ssh.
Enter the command "crontab -e" (In vim you have to press "i" to be able to edit the text)
Paste the following line in a new line (you have to edit the path):
*/10 * * * * sudo -u www-data php /path/to/your/websever/path/to/Ranksystem/worker.php check >/dev/null 2>&1
Replace www-data with your webuser! If you want, you can edit the interval. Here it is every 10 minutes.
Save and quit the crontable.
The Script is now ready to work!!! Open the "//yoursite.url/Ranksystem/stats/" to see some informations and what happens next.
1. Unzip the downloaded file "ranksystem x.x.x.zip".
2. Upload the whole unzipped folder to a directory on your webspace and grant permissions to the webuser.
3. Open the "install.php" on your Webbrowser and follow the instructions there. After installation you have to configurate according to your pleasure. A documentation you'll find (via onclick) for each parameter inside the webinterface.
4. Start the TSN Ranksystem Bot via the webinterface. To be sure, the Bot is 24/7 connected, open the task sheduler and create a new task (windows help) with following option (only relevant in case of connection lost or crash):
C:/path/to/php.exe -f C:/path/to/Ranksystem/worker.php check
The Script is now ready to work!!! Open the "//yoursite.url/Ranksystem/stats/" to see some informations and what happens next.
Have any problems to get the Ranksystem running? Then please have a look here on GitHub!
Be sure, you have followed the installation instructions first. After starting the Bot, a Query-User will connect to your TS3 server and collect all needed information. This Bot will stay continuously there and will give/remove the server groups, which you have defined. You can also interact with them by chat commands. For this write "!help" in private or channel chat to get a list of possible commands.
To be sure the Bot is really 24/7 connected, we created a startscript, which you can use on command line or via cronjob/task.
This file starts and stops the Bot. For a list of possible paramter run it without parameter. For a cron/task the default should be the "check" parameter, which checks the Bot is still running, if not it will be started. For a cron/task example have a look to the installation instructions above.
On the web fronted you will find the following sub pathes under the installation point of the TSN Ranksystem.
This is the site to administrate the TSN Ranksystem. Here you can config the main core of the TSN Ranksystem and also the style of part of the TSN Ranksystem stats page.
The stats-page is the access point for the user. Here they find some information about the server, information about their own rank and much statistics. On this section there is also a list, which shows the next rankups for all user.
This HowTo is to update from 1.00, 1.0.1, 1.0.2, 1.1.0, 1.1.1, 1.1.2 or 1.1.3 to version 1.2.0. If you still using 0.13-beta, you should first update to 1.00 and then update to the latest release.
1. Download and unzip "ranksystem_x.x.x.zip".
2. Backup the database, the webspace and also the whole TeamSpeak server!
3. Delete the "other/dbconfig.php", "other/phpcommand.php" and the "install.php" in your unzipped folder (not on your webspace).
4. Upload the unzipped folder to the your webspace and grant permissions to the webuser. Example for linux:
chown -R www-data:www-data /var/www/Ranksystem
5. Restart the TSN Ranksystem Bot (via webinterface or command). Example for linux:
sudo -u www-data php worker.php restart
This list should help you with optimizing your system environment. This can bring much more performance and/or saves resources (especially CPU load) on your host machine. On some machines we saw already an improvement of factor 5-10! But we do not give any warranty it will help. It is always dependent on the respective system environment. Also you should check before you change anything, other on your system running applications will support that changes!
1. Update your PHP to the newest version.
Here a documentation how to install the actual version and activate this on your system.
2. Update your database system to the newest version. If you are using MySQL change to MariaDB or be sure to using MySQL 8.
Here a tutorial to save your old databases, remove the MySQL after (full) and then install the MariaDB and restore your databases.
3. Optimize your database.
Here we found an nice tutorial what database paramter could/should be changed. Each one is described short but enough to understand the important things. It will help you on MySQL and threfore also on MariaDB.
4. Optimize PHP by using PHP-FPM to optimize the web-frontend.
Here a documentation how to install PHP-FPM.
5. Optimize the site load (web-frontend) due changing the webserver from apache to nginx.
HowTo remove an old apache installation.
- Event-System: Assign servergroup(s) automatically, if an user is online between a specified time (e.g. eastern 2017)
- Multiple "Assign servergroups" - Mulitple definitions for the function "Assign servergroups" (e.g. 1. Gaming, 2. Country, 3. Male/Female)
- Online Streaks - Gifts for online streaks (e.g. 12h online streak -> boost group)
- Repair-Mode: Detects user, which have not the actual servergroup (measured on their collected time). This user should get their actual group. This check should automatically runs once an hour or perhaps if an user joins the server (on join event)
- Function to reset the Ranksystem (clear all user data)
- Function to delete a single user out of the Ranksystem (resets his time)
- Add on webinterface an easy-mode with the importants function. All other will only be visible with expert-mode
- Second kind of rank up, which contains servergroups, that doesn't get removed on next rank up; so they'll stay forever
- Make the rankup definition more easy to handle/config
- Backup/Restore function for the database for the important things (user & times)
- Make stats page customizeable: Pageicon, Pagetitle & GoogleAnalytics?
- Give user himself the possibilty to except them for the Ranksystem
- More statistics: value for peak user count month, week & ever; value for avg. user count
- Highlight user on rankup list, if user could found on TS3 server; perhaps also focus this line on opening the rankup List
- Permission system: be able to create user to administrate the Ranksystem with editable permission roles
- Check on restart button, all required fields are filled; do not show the restart button, if not so
- Plugin to create a perm. channel on the TS3 server?
- Increase the boost field to 2000 signs? Then also dynamic boosts would be possible (Level 1 -> 5x, Level 2 -> 4x, Level 3 -> 3x [..])
- Customizable default sorting on rankup list (e.g. lastseen ASC)
- Single activation for each language on stats page?
- Different choosable styles for the stats page
- Add a needed time to the function assign Servergroups, before an user can give himself the defined group
- Award for the Top user(s) of the week/month as servergroup. Know this given groups and the user to remove it for the next turn
- Welcome message: Welcome message to an user on joining the TS3 server with information about the next rank
- you have more ideas? leave us an issue about github and perhaps we will implement it with the next release.
Please report bugs or features preferred on GitHub.
You can also try to get (hands-on) support on our public TS3 server ts-n.net. Contact an admin there (Servergroup: Ranksystem - Support). Please understand that we do not always react immediately; please give us at least 10-15 minutes to response, before you leave.
You do not fulfill the requirements to host the TSN Ranksystem for yourself? We can host the TSN Ranksystem on our server for you, sponsored (without any costs for you). If you are interested, then contact us and ask for a sponsored hosting. Donations, which will be used to pay our server, are welcome for sure! ;-)
How to get a sponsored Hosting?
Join on our TS3: ts-n.net and contact an admin there (Servergroup: Ranksystem - Support) or send us a short message about our contact form (ask for a free hosting of the Ranksystem). We need only your mail address, where we can send all information to you. With our response (mail), you'll get the access data to install and configure your hosted Ranksystem.
With the hosting we take the part of the requirements of the webspace, the database and the job sheduler. You need still a TeamSpeak 3 server query account and an opened / allowed connection from our IP addresses (126.96.36.199 + 188.8.131.52) to your TS3 server query. Please check this before you request a hosting! To configure the hosted Ranksystem you should have your TeamSpeak 3 connection data handy (TS3 server address (IP or DNS), TS3 voice port, TS3 query port, TS3 query username, TS3 query password). Be sure, the query account has the described permissions.
We want to add more languages to the TSN Ranksystem. For this we need your help!
If you are interessted and you speaks a language, which is missed in the TSN Ranksystem, then you are the one we need! ;-)
How you can do this?
2) Translate these file to your language
We will add your translation directly to the next release.
Really thx to all Supporters!!
Each Translator will take a place on the /stats/info.php site!
Second Voting (Feb-2017) - Result
We are still working to improve the system and are currently focused on fixing bugs. Sure, we know you are looking for new features and they will come in future :)
But good working new features needs a good base. The current status should be ~70% finished with improving things.
First Voting (Nov-2016) - Result
The automatic update function is a component part of the release version 1.2.0.
The statistics are a component part of the release version 1.2.1.
The function to assign groups are intended to the release version 1.2.2.
! Note - (bigger) change you should notice of; in some cases there are things to do
* Information - some information, but there is nothing to do for you; changed something works in background
+ Feature - new feature added or enhance a feature
- Bugfix - fixed a bug or correct something
1.2.12 (2018-XX-XX) - NOT YET RELEASED
+ added new option 'fast hashing' to the IP hash function; this do not deceases the perfomance of the statistics page so much as it does the still existing 'secure hashing'
* optimized version check for command !version and on some other places
* optimized some help texts on the webinterface (leading english and german); also cleaned up the language files
* updated russian translation; thx to bykidi
* removed 2nd TS3 queryname; is no more needed with server version 3.4.0 or above
+ added support for new connect parameter 'client_nickname' which comes with version 3.4.0; this allows setting the nickname of query clients before they become visible on the virtual server
+ added cleaning tables admin_addtime and addon_assign_groups due Ranksystem update process
+ added database table for CSRF token; with that multiple siteswitches are possible without getting an CSRF error
+ added message to Ranksystem admin user, when a servergroup gets deleted, which is configured to the Ranksystem
+ added new check the HSTS header is already sent; on some webservers got a problem, which already sent this information
+ added sticking display size of group- and servericons on the stats page to 16x16 pixel
! new PHP extension PHP-SSH2 is needed (only when you are using a secure (ssh) connection to your TS3 server, requires TS3 server version 3.3.0 or above)
* improved handling on worker.php for a higher compatibility on windows
* improved handling on cleaning Ranksystem database due query command "clientdblist" got very slow with server version 3.3.0 in some cases; bot hangs on "Get TS3 Clientlist...", timed out and needs a restart; now the Bot sends dummy requests to the database to hold the connection
* improved handling on install.php when database credentials are correct but permissions to database fails; only write out the credentials, if all database stuff was created correctly
* updated TS3 PHP Framework (version 1.1.33 from August 21, 2018)
* minor improvement of the Ranksystem.log
* updated polish translation; thx to isseihere
+ added SSH support, which is avaiable since TS3 server version 3.3.0; THIS FEATURE IS IN BETA STATUS!! (There are known ?TeamSpeak? bugs -> random connection losts)
+ added logging for login attempts on the webinterface inside the ranksystem log
- fixed bug on admin function (add / remove time), when using the filer "hide excepted clients"
- fixed problem with verify process; removed CSRF check here for the moment, cause there are no problem in case of faking data (token matchs or not..)
Show all other changelog entries: (Show/Hide)
! new TS3 permission b_serverinstance_version_view needed
* added warning, when changing hashing of IP addresses (user needs new connection to TS3 server)
+ added function to remove time from a user (possibility to punish / justice)
- fixed file encryption of core_ru.php (russian language), which caused the statistic graph not to be shown
- fixed problem with verify process, when multiple users are connected with the same IP address (which arised with version 1.2.8)
- fixed some display issues on stats page
* increased session security by activating HSTS-header
* updated russian translation; thx to bykidi
* secured from pishing for all external links due hiding the referrer
* improved some code to reduce notices/warnings on stats page
- fixed XSS vulnerability with TS3 Client name; thx to FarisDev
- fixed changing language on install.php were not working
- fixed error with donut chart on stats page, when the database still have not enough different values for all stats
! hashing of ip-address (reason EU-GDPR) as option (webinterface -> other); TS user needs to reconnect to the TS3 server to be able to verify with stats page after
! added support for MySQL 8.0 and MariaDB >= 10.3
* increased session security
* increased security on stats/ page; thx to JVMerkle
* increased performance on stats page; it is shitty fast now :-)
* updated TS3 PHP Framework (version 1.1.33 from April 18, 2018)
* updated portuguese translation; thx to Pasha
* modified check on worker.php, if a process is already running
* minor code optimizations, also removed april fool (was only valid on 1st April)
+ added support for special characters (utf-8 mb4), which came with TS server version 3.2.0; before we had it for servergroup names, now for all other needed (among other things: user nicknames)
+ added polish translation; thx to DoktorekOne
+ added CSRF token for protection against Cross-Site-Request-Forgery and replay attacks
- fixed "lost update" problem on manual adding time to an user (function about the webinterface)
- fixed problem, when timezone had a very long name; now all timezone will be supported
- fixed connection problems, when the TS3 query username or password contains special characters
* increased performance (vs. 1.2.4 again in avg. ~25% better now); saves CPU time and memory (RAM)
* updated bootstrap-select to the actual version; bigger selections are now much more faster; thx to caseyjhol the lead developer of it
* changed startup process to be sure the auto updater will runs before the config check
* changed log file rotation; the Bot did a restart on rotation before, now it will stay connected to the TS3 server
* removed unneeded update info check; update notification will now be sent to the admin ID (webinterface -> other), which is multiple since 1.2.4; reworked update notification, which will now be sent on startup after an update
* updated italian translation; thx to jacopomozzy
+ added czech translation; thx to KeviN
- fixed bad config check (servergroup not found); if a servergroup is missed, the Ranksystem will first sync all ts3 servergroups and after that check again the config; only if the config is still bad, it will stop
- fixed wrong ascending/descending sorting, if the site were changed about the pagination
- fixed cross site scriptig vulnerability on stats/list_rankup.php
- fixed problem with special characters inside the server group name; 4 byte chars (utf8mb4) where not possible to save before and run into a database error inside the Ranksystem log
! disable update support for versions under 1.2.0; when you are using a version below 1.2.0 and want to update, we recommend to do a fresh installation
* changed order of Bot startup procedure; now the update process will be done before the config check; this will make sure the update process will runs also, if the config is wrong
- fixed wrong values in the column nextup on the stats page for user, which are offline
- fixed empty lines in log file on updating the Ranksystem; will take note with updates above 1.2.5
- fixed problem on correction boost, when a wrong server group were configured inside; the configure check prevented the new value from being saved
- fixed problem "not enough data..." for the top user of the month; with version 1.2.4 has been added a new deletion method of unused stuff and the old one has been forgotten to be removed
- fixed special case, if no user was online for at least 1 second for more then one week, the server stats could not be saved correctly
! changed parameter 'check' for the worker.php (startscript). Now this parameter will only start the Ranksystem, if it was crashed. In case the Ranksystem was stopped with 'stop' parameter, it will not start the Ranksystem with 'check' parameter.
! you need to define a verification channel ID to the webinterface -> core; the needed channel has to be set up manually on your TS3 server; for more information read also the online help inside the webinterface at this parameter
* increased performance: on bigger databases it will run much faster (valuable on response speed of chat commands). on smaller databases it will reduce needed resources (CPU)
* improved memory handling (RAM)
* optimized session handling on stats page and webinterface; now the Ranksystem don't touch other sessions from the same domain (relevant to multiple Ranksystem installations or other systems on the same domain, which are also using sessions)
* optimized logs preview on webinterface (site load is much faster; now all lines will be shown, also array outputs on SQL errors; error and critical entries are now red colored)
* send a little more information about Ranksystem instance to ts-n.net like total_user, user_week_ total_online_week [..] (will be sent on update check; normally 2 times a day); there will not be sending any personal data of any user, it is only instance information! also, this information will never be shared without your agreement with third ones or published to be able to associate it with your instance; our plan is to build a summary of stats (of all instances) and perhaps we will share this sometime on a website
+ made the field "admin ID" multiple (unique client ID of the admin of the Ranksystem); multiple admin uuids can be entered comma separated; note that other admins are also be able to reset the password for the webinterface
+ added new chat command "!clean" to the Ranksystem Bot; the cleaning will run at least once a day; with this command you can force to make it instant
+ added a link to the verification process with that it is possible to redeem the token automatically (before it must be entered manually)
+ added new verification step, when the users IP between website and TS3 server differs; at this point the user can register himself also with a token; to protect from spams the user need to join a verification channel, where he will be able to choose himself to be able to receive the token
+ added a few more cleaning checks; now old avatars of deleted users will be deleted from the web space
+ added percentage column for lists of nations, platforms and versions
+ added update notification on stats page and webinterface, when an update was done the last few days ago; appears once a time per browser session
+ added new validation check on TS3 host address to prevent entering a port inside, which would be wrong placed here
+ added new validation check on defined servergroup IDs (rankup definition, servergroup exception, boost); the check will be done at 3 points:
1) saving a wrong ID inside the webinterface
2) on starting the Ranksystem Bot
3) on the Bots job to update the servergroups, when one group gotten removed
+ added check when removing the server icon on the TS3 server; then it will now also remove the icon from the Ranksystem
+ added check when removing an icon of a servergroup on the TS3 server; then it will now also remove the icon from the Ranksystem
+ added check for slow running Ranksystem instance and offer suggestions to optimize the environment
+ added check to top user sites of the week and month; if there are not enough data collected, on this sites will be shown the message "not enough data..." instead of wrong results
- fixed wrong sorting of the column 'next servergroup' on List Rankup (stats page)
- fixed the nations list; full name wasn't showing for some languages, even though they were available
- fixed link to the webinterface on the stats page (and vice versa), which was not working when the website port was not default (80 or 443)
! changed location of folder "icons" to "tsicons" due problems with default apache config (personal note to me: apache sucks)
! increased site load on stats/index.php and decrease needed ressources for the Ranksystem Bot, due lost of database index on some installations
* renamed combined_stats.css and combined_stats.js files due some adblocker blocks them
* corrected italian translation; thx to jacopomozzy
* corrected russian translation; thx to bykidi
* corrected english translation; thx to M0V3
* corrected some minor other texts on language files
* optimized value checks inside the webinterface to avoid user error
* optimized some minor code stuff; so it gets minimize better performance
+ added new parameter to messages (rankup notification & command !nextup) with the name of the user (recipient)
+ added new check on install process for windows; the COM_dotnet extension of PHP need to be enabled or the installation will be stopped
+ added new check on install process; when MySQL was choosen on install.php (step 1), it will be checked if PHP MySQL is installed & correct enabled
+ added a button to restart the Ranksystem to success message by saving a change inside the webinterface
+ added two more slowmodes (2 seconds and 5 seconds) for low level server; use it only, if you have trouble with cpu load
+ added portuguese translation; thx to Pasha
- fixed problem on saving ts voice port (which comes with database optimization 1.2.1), when it is over 32767; now full port range 65535 is available
- fixed problem with addon 'assign Servergroups'; servergroups couldn't be given/removed when 'Rank up notification' was disabled
- fixed error on editing dateformat inside the webinterface; new value got saved but not changed on view (reload of site fixed the problem)
- fixed wrong link to the netherlands (nl) language on stats, webinterface and installation page
- fixed error 'calc_serverstats 8', which appears in ranksystem.log; it happened on the special case, if no user with a country flag were on the TeamSpeak server online on a fresh (empty user table) Ranksystem installation (only user over localhost are connected)
* Added support for PHP 7.1
* Fixed TS3 PHP Framework library for PHP 7.1 support
+ optimized site loading stats/index.php for servericon.png; change from classic image to embedded data
+ optimized site loading for stats/ and webinterfac/ due merging the css and js files
+ added lines for active times on stats/my_stats.php (it can take a day until all clients are calculated)
+ added function avatar delay; delays the download of new avatar files; define the time inside the webinterface - teamspeak
+ added free text filter for ranksystem log on webinterface/bot.php
+ added french translation; many thx to Quentinti
+ added restart after update process; will take effect with versions > 1.2.2
+ added addon "assign Servergroups"
- fixed wrong stats on exception mode 'reset time'; remove now also the history of the count/idle to build correct stats (stats/my_stats.php)
- fixed message next up, when user is excepted; with version 1.2.1 was the exception changed and until this the user get only the message (excepted) if he was excepted by the channel. This is wrong, the user should get the message (excepted) on group or client exception and not on the short point of a channel exception.
- fixed database field for TS3 query port; the field was not unsigned, so there was 32767 as highest value possible (now is the highest value 65535)
* optimize database structure; increase the database perfomance
+ added statistics based on lastseen (clients online 24h, last 7d, last 30d, last 90d)
+ added full list for nations, versions and platforms with user count (linked on stats/index.php)
+ unset https warning on install.php if an error occurred; to focus the main problem
- fixed syntax error on italian translation
! php-zip (package) is needed on the webserver (see requirements)
! with new update process this is the last update you need to do manually
* changed handling for the update interval; the update info message will now be sent instant after receiving an update and so long till one use could reached
* moved libraries to folder 'libs'
* allow boost factor 0 (no time gets counted) for misused punishing group, which gets removed automatically
+ added automatically update function (more informations on GitHub)
+ added other/phpcommand.php to define a different php command (when you have more then one PHP version on your system); default is 'php'
+ added exception mode; define how to handle the time for excepted (for more take care about the description inside the webinterface)
+ added notify register for channel and server chat; bot commands are now also via channel or server chat possible
+ added dutch translation (initiate already the half); thx to 0x0539
+ redirect webinterface/ respectively webinterface/index.php to TeamSpeak config, if session is already active
+ added check in webinterface on logpath; must end with a slash or backslash
+ added check on startup if files on webspace are writeable (needed for update function)
- solved list_rankup.php when scrolling the table header column width changed due fixing on top
- fixed on command "!nextup" with mode "active time" a wrong time was given back
+ added check php-curl is available on install.php and on bot startup
+ added check on startup if logpath exists and is writeable
+ added new mode for bot command "!nextup"; for more see description in webinterface
- fixed error on command "!nextup" (message for each rank - issue 154)
! new TeamSpeak permission "b_virtualserver_notify_register" required (for bot commands via text message)
! php-curl (package) is needed on the webserver - for linux "apt-get install php-curl"
+ added check to worker.php; if user is root -> show warning
+ added commands "help", "version", "restart", "shutdown"; TeamSpeak user can write the command to the Ranksystem bot via private text message; "shutdown" only for the Ranksystem admin
+ added command "!nextup"; TeamSpeak user can write the command to the Ranksystem bot via private text message and will get their needed time for the next rank up
+ added function to reset the password of the webinterface access
+ added function to change the password of the webinterface access
+ added function to add online time to user (reimplent due lost of version 1.1.0)
+ added function to hide the navigation on stats page (webinterface - stats page - show site-navigation)
+ added timestamp of getting the last servergroup (only those, which are given by the Ranksystem), which can be shown on the stats/list_rankup.php
+ added a check that simpleXML (linux package php7.0-xml) is available to the install.php (is needed with PHP7 for the TS3 PHP Framework)
+ added link on stats page (only for admin) to the webinterface and reverse
+ added "connect TS3" link on menu bar on stats page, if visitor is not connected to the ts3 server
* store filter selection on Ranksystem log (inside webinterface) in session
* added missed text passages on stats page to the language file
- fixed problem with continuously download of icons
- fixed wrong calculation of the versions donut-chart on stats/index.php
- fixed on webinterface that https info message overwrites an error message on failed login
! updated TS3 PHP Framework to version 1.1.24
+ added IPv6 support
+ added a few checks to the install.php to valid the requirements are fulfilled
+ added questionmark icon to webinterface on hover a form field to indicate the online help
+ added check for the boost function, that boost factor can't be 0
+ added filter function for log-level inside the webinterface
+ disabled showing rank on list_rankup.php and on my_stats.php for clients, which are excepted (cause they are no part of the rank)
+ added server news to webinterface; the server-news files is obsolete now. The text can be changed inside the webinterface.
+ added index.php on root directory, which redirects to the "stats/" page
+ minor code improvements
* drop table job_log, which is no more needed -> ranksystem.log
- fixed client was not showing in list_rankup.php when client was in highest group and was excepted but 'excepted client' and 'Clients in highest level' was active
- fixed representation on list_rankup.php for excepted clients on column 'next rank up' and 'next servergroup'
! PHP with version >= 5.5.0 required; If PHP version is to old, the TSN Ranksystem will stops directly after startup and log this into ranksystem.log!
! fixed security vulnerability by replacing webinterface; Please be sure the old webinterface.php got deleted after update!
! reworked webinterface; its now in bootstrap look like the stats site. To open the webinterface use subfolder "webinterface/" instead of "webinterface.php"
! updated bootstrap to version 3.3.7
+ added brute force protection to the webinterface
+ encrypt the password for the webinterface inside the database
+ added function ingore idletime; idle time of an user will be ignored (counted as active time), if it is under a predefined value
+ added possibility to except channel
+ added arabic translation (already a small part); thx to DeStRoYzR
+ added romanian translation (already a small part); thx to SakaLuX
+ performed update function; new version will now stored in database. So update info interval could be now more often then 1800 seconds.
+ added a few syntax checks inside the webinterface, which valid entries of fields like 'rank up definition'
+ added new filter country
+ added new filter lastseen
+ described filter functions on stats/list_rankup.php
+ optimized handling of client IP for session handling my_stats.php
- fixed serverlist report with ip address 127.0.0.1
! windows support is back (for the webspace); the COM extension for PHP is required (extension=php_com_dotnet.dll -> only Windows!)
! check ts3 permission "b_client_remoteaddress_view" is set for query account
* initiate log level; log entries now have a log category
+ added log rotation; ranksystem.log will be rotate on filesize of 5 MiB
+ added italian translation; many thx to ZanK
+ added filter function on list_rankup.php; filter are usable about the search field (filters are: "filter:excepted:", "filter:nonexcepted:", "filter:online:", "filter:nononline:", "filter:actualgroup:GROUPID:"); documentation on a info box will follow
+ color online users on column "last seen" on list_rankup.php
+ increase perfomance for siteload on stats/index.php, when TSN Ranksystem already longer runs
+ added progress bar for next rankup on my_stats.php
+ the parameter "Idletime" will now be consided on calculation for the rank (i.a. on list_rankup.php?sort=rank)
- fixed wrong labeling on Top User sites for "active time" / "online time"; depending on the parameter "Idletime"
- fixed ip 127.0.0.1 were shown on stats/index.php instead of the external address
- fixed wrong subtraction of online time of already deleted users on "Online time of all user / week" and "Online time of all user / month"; in special cases it could come to minus values
- fixed wrong info in log for needed file permissions on folders (avatars, icons, logs)
- fixed wrong update notification after first run with new version
- fixed ts3 server address on stats/index.php; when ts3 address is localhost and the URL contains "www.", the "www." will be removed out of the showing ts3 address
! changed the way to update the database. Its now part of the "bot.php". So no run of an update-files is needed any more. Please check the ranksystem.log for possible errors!
+ improved needed ressources for smaller server (based on count of TeamSpeak User)
+ added option to choose language on stats sites; default is what has been set about the webinterface
* in some case the "virtualserver_created" date of teamspeak is zero (perhaps a ts server bug); catch this instead of showing 01/01/1970
- optimized the restart function; now it should also work with the slowmode "high delay" and doesn't come to multiple parallel running TSN Ranksystem instances
- fixed error in stats/index.php on line 253; change code to enable support for 5.2.1 or above (before a part of it needs 5.4 or above)
- fixed progress bar on my_stats.php; percentage value was missed in some case
- fixed timzone wasn't taken correctly
- fixed repeatedly download of the servericon
- fixed servergroup exceptions wasn't consided on Top User sites
! lost Windows support (for the webspace) at the moment; TeamSpeak server is still supported with Windows!
! changed the way the TSN Ranksystem works. The TSN Ranksystem connects now 24/7 to the TeamSpeak server and not each minute again. It get therby more precise, but also needs more ressources (on ressource problems, try to activate the slowmode). The worker.php is now needed to check the Bot is still connect to the server, if not it has the job to restart it. A logfile, what the bot does and also very helpful in error case, you find on "logs/ranksystem.log".
! changed the column rank on list_rankup.php; this column show now the real rank and not only a consecutive number
+ added a new site, reachable as subfolder "stats". There are some informations / stats about the TeamSpeak server and the TSN Ranksystem. There is to much to describe all, so perhaps take a look to it
+ added search (filter) function on list_rankup.php
+ added option on list_rankup.php to limit the entries
+ added column actual servergroup in list_rankup.php as option
+ added function "boost"; You can define a servergroup for the TSN Ranksystem as boost group. There is also to define how much the boost should count (factor) and how long it should be grant (time). User in the specified servergroup get rated their online time by the factor. The higher the factor, the faster an user reaches the next higher rank. Is the time expired, the boost servergroup get automatically removed from the concerned user.
- correct error by hiding column next servergroup on list_rankup.php
* fullfilled russian translation; many thanks to sergey
- corrected problem by saving icons (PHP Warning: file_put_contents[..])
- corrected wrong array shift by clean TSN Ranksystem database (get error like: parse/syntax error)
- complemented some missed database options with update 0.12-beta
+ added option to show clients in highest group in list_rankup.php (not even in adminlist)
+ added function to clean TSN Ranksystem database; this deletes clients, which doesn't exist any more in the TeamSpeak database. You can also use the perfectly with the ClienCleaner together (//ts-n.net/clientcleaner.php)
+ added servergroupicon to the column next servergroup in list_rankup.php; servergroup icons get downloaded with worker.php to the subfolder "icons"
- correct count on feeter in list_rankup.php (sitegen needs to be enabled)
! changed database connection from MySQLi to PDO; Within this also other databases (e.g. MS SQL, Oracle ..) are possible
+ added slowmode to prevent against bans in case of flood
+ added function for renew the servergroups; can be helpful, when user are not in the servergroup, they should be at the defined online time
+ added link inside the webinterface with an admin overview for the list_rankup.php with all fields/columns
+ added variable language support for list_rankup.php -> list_rankup.php?lang=en
+ added column rank number to list_rankup.php as option
+ added column last seen to list_rankup.php as option
+ added new menu to the webinterface to edit the database configuration
* smaller other improvements
- fixed bug, that the SQL statements failed with an error, when a client is using a backslash in its name or a servergroup contains a special sign
- fixed bug; clients with | character in his username couldn't be use for the "selective clients functions", cause the uuid couldn't be dissolving
- fixed bug; fixed wrong update information, when update server is not reachable
- fixed bug; year 2038 problem (max. integer 2147483647) solved, 64-bit system required; for old entries could stand a wrong ip address "127.255.255.255" in database
+ added russian translation; many thanks to sergey
+ added option to remove client out of the servergroup (which was given by TSN Ranksystem), by deleting clients out of the TSN Ranksystem database
+ added function to delete one or multiple selected clients out the TSN Ranksystem database
+ added function to set manual a summary online time for one or multiple selected clients
+ added the most important colors to the webinterface; to define it there
+ added column next servergroup in list_rankup.php as option; new TeamSpeak permission required (b_virtualserver_servergroup_list)
+ added option to hide the site generation at the end of the site
+ added client count to the site generation
* relaunched the webinterface; separate the different settings and functions in own sectors, which are foldable
- fixed bug; add a check, when a servergroup was manually given to a client, which is relevant for the TSN Ranksystem. This clients will not until add to a servergroup, they reached the time for the next higher rank.
- fixed bug; sorting on list_rankup.php for the column 'next rank up' is now correct
+ added time format as value
+ added column with active time to list_rankup.php
+ hide excepted clients or rather groups in list_rankup.php as option
+ hide each column in list_rankup.php as separate option
* check version after predefined time, not with every run the worker.php, to save traffic
- fixed bug of wrong sorting for next rankup; the time for next rankup of offline users will now calculate new with every run the worker.php
- fixed bug of countdown the next rankup time in list_rankup.php of offline users
- fixed bug with header problems by saving options in the webinterface.php
- fixed bug that a "reseted" user do not gets an update for his new cldbid
! initial release
Download: Version 1.2.11 (2018-09-27)
also available on GitHub
You like this tool? Then you might want to sponsor a beer for the developer.
This enables him to develop new functions more smoothly.
01-Artikelsystem © 2006-2018 by 01-Scripts.de