* Migrations up down
* Add forum model
* Syntactic sugar for db structure changes
* Refactor migrations with $up & $down
* Fix migrations upgrade and downgrade
+ Add option to disable auto migrate
* Add migrate:to command
Usage: php aac migrate:to x (x - database version)
* Show error when mail is not enabled
* Fixes regarding to init.php
* Add migrate command to manually upgrade db, incase auto migrate is disabled
* Fixed rest of the migrations
* Limit max version of database
* Don't allow minus number
* Option to clear specified plugin settings by name
* Version is required
* Fix PHPStan errors
* Unset $up after migration, to prevent executing same migration twice
* Add database version to output
* This is not needed
* Update 5.php
* Set database_auto_migrate on install
* Set blank & color only if current db version supports it
* Fix duplicate function declaration
Priority description: (lower number - higher priority)
1-99 Highest priority - overrides everything, even pages from database, use with caption
100 - default for pages in database
101-999 - recommended range for plugins
1000 - default value for plugins if no other specified
1001 - 9999 - no usage currently
10000 - default myaac routes
Usage:
php ma list
php ma cache:clear
php ma plugin:install guild-wars.zip
More sophisticated:
echo "Hello, this is hello world message" | php ma mail:send test@test.com --subject "This is subject"
Also: custom commands can be added via Plugins: just need to return new class instance that extends \MyAAC\Commands\Command in plugins/*/commands folder
* wip
* wip
* wip
* wip
* wip
* fix: reusing pdo connection from pot
* wip
* wip
* wip
* wip
* move files
In future, all classes will be in src/ folder
* Replace namespace name, for future
* Remove duplicated exception
* Fix towns from db
* Fix spells page
* Add default FAQ question + FAQ model
* feat: reset colors in menus
* Add confirm + save button at the top (menus)
* Do not insert duplicated FAQ on install
* Refactor install menus
* Fix changelogs showing
* Fix menu update, only with specified template name
* Fix account create -> missing compat
* Fix bans_per_page
* banned_by is player_id. type = 2 is namelock in tfs 0.3
* Add getPlayerNameById, fix getPlayerNameByAccount
* Change link name
* Order by lastlogin
* fix: query optimize
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Refactor notepad.php, class was useless
* This is showing error, if the updated rows = 0
* Fix success & error class (bootstrap)
* Uncomment require migrate.php
* Some distro have owner_id
* Update Player.php
---------
Co-authored-by: slawkens <slawkens@gmail.com>
* New admin panel Pages: Options + Config [WIP]
* Forgot the plugin example of options
* Rename to settings.php
* Add Settings Class
* New myaac_settings table
* Add $limit parameter to $db->select method
* Add $member var annotation
* Remove useless title_separator from config
* Move $menus to menus.php
Also fix active link when menu item has subpage
* Settings [WIP]
New Settings class
New Plugins::load() method
Move config.php to settings.php
MyAAC Settings will have plugin_name = 'core'
Add compat_config.php
* Change options.php to settings.php
* Change name to settings
* Add Settings menu
* Add Sections + Add setting($key) function
Reorganisation
* Add email + password fields as type
* Update 33.php
* add settings migration
* php 8 compatibility
* add missing hook
* Add categories in tabs, move more settings, revert back getPluginSettings
Categories and sections are now not numbered
Remove example settings plugin
* fix typo
* Update .gitignore
* Add 36th migration for settings table
* Execute migrations just after db connect
* Update plugins.php
* [WIP] Some work on settings
Add hidden settings
New method: parse, to parse settings from array
Move base html to twig template
Remove vocation loading from .xml, instead use predefined voc names
* Rename
* Fix path
* [WIP] More work on settings
Move more config to settings (mainly mail_* + some other)
Remove mail_admin, wasnt used anywhere
Add return type to some functions
Add Twig settings(key) function
Possibility to save setting to db
* Add min, max, step to number field option
* Re-enable plugin if disabled and already installed
* Add Settings menu, including all plugins with settings
One change included in previous commit, due to missclick
* Nothing important
* Better boolean detection
* More detailed error message in settings
* Lets call it settings.name instead
* Add new function: only_if, to hide fields when they are not enabled [WIP]
Not fully finished yet
* guild_management: show_if
* Hide section title on show_if
* Fix: check on page load if radio button is checked
* Add: show_if - account_mail_verify
* nothing important
* Rename team_* variables + add to deprecated
* Change variable name
* Extract Settings:save function
* Add settings.callbacks.get
* Move forum config to settings
* Move status config to settings
* Remove whitespaces
* More config to settings: account_types, genders, highscores, admin
* Move signature config to settings
* Move news config to settings
* Rename variable
* Save config.php in Settings
Egg and hen problem solved :)
* Test database connection on save settings -> prevents from making website unusable if connection is wrong
* Test server_path -> same
There is no config.php anymore, just config.local.php, which can be edited manually and also from admin panel
* Remove configs from previous commit
* Fix create account, if account_create_character_create is enabled
* Add more deprecated configs
* Add more info into comment
* Update 5-database.php
* Fix menu highlighting & opening
* Update template.php
* Enable script option
* Reword email settings + move two new settings
* add last_kills_limit + move shop
* google_analytics_id
* add mail_lost_account_interval
* Create character blocked words (by @gpedro), just moved to settings
* Fix google_analytics
* create character name config moved to settings
* Fix for install warning - min/max length
* New create character checks configurable: block monsters & spells names
* fixes
* Improve character npc name check
* New setting: donate_column + move donate config to settings
* Add super fancy No Refresh saving with a toast
* Add new possibility: to deny saving setting if condition is not met
* Move database settings to separate category
* Fix default value displaying
* Add database_hash setting
* add last_kills_limit to compat config
* Move create character blocked names down
* Every setting needs to have default
* Move rest of config to settings
Remove config.php completely
Add new settings category: Game
Fix account_login_by_email
Min textarea size = 2 + adjusted automatically
Account: Cannot change name, comment, gender
+ Cannot be deleted if owns a guild
Guilds: Cannot create, cannot be invited, cannot accept invite, cannot be passed leadership to
* Part 1
Removing closing tags when no HTML or other output comes after the last PHP codeblock.
* Further removals
* nothing
---------
Co-authored-by: slawkens <slawkens@gmail.com>
* Part 1
Removing closing tags when no HTML or other output comes after the last PHP codeblock.
* Further removals
* nothing
---------
Co-authored-by: slawkens <slawkens@gmail.com>
* [UPDATE] Adding monster looks to db
* small adjustments
add into schema.sql + change position in table
* add DEFAULT = ''
---------
Co-authored-by: slawkens <slawkens@gmail.com>
* Remove unneeded escape
* Fix guild back buttons (change logo & motd)
* small adjustment in news.php
* Fix create character when admin (any case is allowed now)
* Fix forum table style (boards & thread view)
* Small improvement to plugins.enabled check
* [WIP] nikic/fast-route implementation
I will describe it more in Pull Request
* Optimisations & fixes.
* Fix path - should not be absolute
* Add PLUGINS to Twig path
* Don't hide "Install Plugin" Box by default
* Update package-lock.json
* nothing important, just early exit & fixes
Fix creature display
* fix premium_ends_at for tfs 1.3+
* Move pages
* Move pages tbc
* $db->select: make $where parameter optional, allows to get all records
* Add some error box to error
* fix parse error
* Rewriting the router v2
To be more flexible
* small fixes
* fix & add admin icons
* Move mass_* pages to correct folder
* fix logout hook 2
* Delete accountmanagement.php
* This code wasn't used
* Add missing var
* Add redirect_from && redirect_to to router options
+ Also add * for all methods shortcut
* Remove comments
Not allowed in normal json
* Allow admin pages included into plugins dir
* block access to some files
* Fix admin logout
* Fix#178
* feature: mail confirmed reward
Suggested by @EPuncker
# Conflicts:
# system/hooks.php
* remove misleading comment
* adjust required version according to composer.json
* fix duplicated word
* Adjustments & fixed to mass actions
* Add password confirm, and change text type to password
* Add list of Open Source Software MyAAC is using
* Fix signature
* Show First, Second instead of numbers
* fix base dir detection
* fix double ACTION define + undefined URI in template
* new function> escapeHtml + fix css in admin menus
* fix changelog add
* fix news adding, rename const to NEWS_*
* Add verify to pages, add messages, limits, fix add
* fix "Please fill all input"
* add required input to admin pages
* shorten some expressions with ??
* shorten code + fix conversion (int)
* Move account_types to config, account.web_flags to common.php
* Update example.json
* feature: router aliases
* shorten some code + const convert
* remove wrong char
* fix signature on custom basedir
* fix: mass teleport position validation (#214)
* fix: mass teleport position validation
* fix: max position
* Fix execute in CLI
* fix warning in reload cache in dev mode
* Configurable admin panel folder
* feature: plugin require more options with comma
* $config_account_salt -> USE_ACCOUNT_SALT
* fix forum show_thread
* Update show_thread.php
---------
Co-authored-by: Gabriel Pedro <gpedro@users.noreply.github.com>
Unified all tinyMCE instances used across AAC, now they are initiated in one single file
+ added option to upload images within editor (CTRL-C CTRL-V)
+ there is new folder: user/, which will be used for all user generated data, like image uploads, guild images, etc.
* [WIP] New GoogleReCAPTCHA code
Support for v3
v2-invisible doesn't work yet
* Add some notice about recaptchas versions
* Lets support only ReCaptcha v3
Too much mess ;)
* Fixes
* skip premdays and lastdays calculation when premdays = 65535 (gratis premium in TFS)
* TFS consider 65535 as gratis premium account and PHP_INT_MAX does not assume this value
* adds condition of premdays=65535 and standardize the label "gratis premium account" with tibia client
* adjust the label "days" when there is only one day of premium account
* adjusted premium account status
* Some small adjustment
* Sorry, typo.
Co-authored-by: slawkens <slawkens@gmail.com>
(cherry picked from commit 9d7854dda62468e420c26a6e531bacf47351f499)
-Admin menu updates
-Moved getchangelogtype/where to functions file and added to twig
-Added changelog editor to admin panel and updated changelog page
-Renamed the changelog md reader to clmd and edited the version file.
Updates the creature pages to show more information.
You will need to reload your creatures.
-modifies database with migration 31
-small customisations are allowed via config file.
-functions added, getMonsterLink, getItemRarity, getCreatureImgPath, left, right,
-added functions to twig.
-view elements, immunities, summons, voices, loot, pushables, canpush, canwalk, runonhealth,hostile,attackable,rewardboss,defense,armor
-filter bosses
-show list as picture preview or names list
Checks if page exists in template directory and loads that page first instead of system/pages/
This allows users to make their own changes without modifying the original files for when doing updates.
* Add a brand new charming installation
* Fix alert position in setup requirements validation
* Add some missing definitions
* A distinction between bootstrap CSS classes and myaac classes
For CSS-styled messages
* Remove unused functions for messages
Co-authored-by: slawkens <slawkens@gmail.com>
Fixed link to next page on first visit default highscores
Fixed position of "No records yet."
Also count pages is starting from 1 now (not from 0 like before)
I noticed if the datatables files wasn't cached some pages that didn't use it would take slightly longer to load whilst it downloaded it.
This will only write the js and css files onto the page if $use_datatable = true; is set on the page.
See accounts/news/players pages for examples.
It wasn't a massive performance loss for the user but not needed if those pages are hardly ever used.
* Move highscores to twig
* Add highscores frags for TFS 1.x
* Change $config to config()
* Cache highscores
The most asked and long awaited feature? :>
* Fix highscores_per_page and rename configurable
* Fix next page link (some typo)
* Fix too many players being shown
* Fix when changing config.highscores_per_page
* Update system/pages/highscores.php
Co-authored-by: whiteblXK <krzys16001@gmail.com>
Co-authored-by: whiteblXK <krzys16001@gmail.com>
system/logs and system/cache are required to be writable
config.local.php, images/guilds and images/gallery are optionally writable, without them some feature will not work
* Update characters.php
* Update config.php
* Variable name change, better use LIMIT in query instead in loop
* Just to be sure. Security first :)
* use config function
Co-authored-by: slawkens <slawkens@gmail.com>
(cherry picked from commit dc536f0fc01862f052d5edee29ac188ac63fcf66)
-As requested the datatables and bootstrap files have been moved into the tools folder
-Fixed spells and creatures datatable.
-Double space in name fix.
- Updated Admin Panel to Bootstrap 4.
- Code cleanup
- Rewrote menu generation code
- Added top 10 coins, top 10 premium points, last 10 logins to modules page.
- Added full account list to Account editor
- Added load outfits from XML to player editor and lists all enabled outfits in editor (will default to textbox if array of outfits do not exist)
- Added tabs to account editor - account, characters,store history, bans(this is based off the bans.php page so will not work on TFS 0.2/1.0)
- Updated datepickers to display the actual date rather than unix time.
- Added last 10 posts to player editor
It exports from git now, so no removing files is required cause it uses export-ignore from .gitattributes
It also allows edits before release is packed
Usage: ./release.sh prepare
Then:
./release.sh pack
Usage:
echo message | php send_email.php account_name_or_id|player_name|email subject
Real example:
echo "Hello, this is my test email" | php send_email.php "God Slawkens" "Hello world E-Mail"
* Fixed some bugs at last install screen (unset country and HTTPS protocol definition)
* Correction: allow_url_fopen is not to make any distinction between HTTP/HTTPS
* Black skull bug when joining serverInfo
* * latin is good but utf8 is better
* also changed ENGINE to InnoDB
* * use curl as alternative option for reporting install
* * you forgot this
* * fix typo
* Revert "* fix typo"
This reverts commit 6f24509dd659032c65c3ccbdf5b5bb3b25cffd72.
* * fix typo
* * this is the correct way to hide that notice
Fix when there is no account name, just accoun tid
Fix when group and secret column does not exist
Fix save premium days on TFS 1.2
Remove lastlogin - should not be possible to change
This fixes some stranges errors with javascript being triggered on website
for example: not working color changes on Menus page when clicking on Add New button
* Updates
+added account editor country list
+added account editor website access flag editor.
+added player blessing1-8 editor
+added fav icon
+added $account->setLastLogin
+added $player->checkBlessings (for blessings 1-8)
+bug fixes
* Blessing Fix
Should now detect the amount of blessings if blessings1 onwards exists.
* Updates
+Added missing images
+Added report viewer as requested by icekis
-Code cleanup
if strict db, need to set spell to null run
ALTER TABLE `myaac_spells` CHANGE `spell` `spell` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL;
* Admin Panel
* fixes
-Code Clean Up
-Remove dist folder and merged into tools.
* Use Acc Name
Use Acc Name fix for login.
* Pull fix
* Dashboard fix
- Fix coins table
- Fix points table
* updated background-artwork to the latest version, removed other ones
* removed signature background.PSD (instead of an empty background.jpg
is provided - almost the same)
* removed arial.ttf font, instead arialbd.ttf is used for mango template
* added .gitignore file
* installation will be now done with AJAX request (jQuery), that will instaltly notify about the status of the installation (no waiting without clue anymore)
* install items & weapons on installation (before monsters)
* caused player.vocation to be resetted when saving player, for example:
on change name, accept invite to guild, leave guild
* fixed empty success message on leave guild
* (internal) using $player->getVocationName() where possible instead of
older method
* fixed some warning in guild show
* changed tableExist and fieldExist to $db->hasTable(table) +
$db->hasColumn(table, column)
* new configurable: database_log - can log database queries and show in
website source when logged as super admin
* removed debug_level configurable, enabled by default when logged on
super admin
* added OTS_Account:getCountry()
* added posibility to load OTS_Player partially, and without skills
* (internal) changed depracated $ots->createObject() functions with
their OTS_ equivalents
* (internal) removed unused code
* show user position (group) in forum posts
* replaced forum actions links (move, remove, edit, quote) with images
* redirect directly to the thread on user login (on new reply)
* fixed account login redirect with special chars (like '&' and '?')
* add support for defining max myaac version in plugin.json file
* you can now require other plugin to be installed before yours
* added German translation
* fixed faq containing html code
* fix when config.local.php doesn't exist
* fix when reinstalling aac with samples already installed
* some optimisations to installation script
* forgot to fclose on config.local.php
* when dir system/cache is not writable by the webserver, then show some
nice notice to the user about it instead of http 500 error
* remember client version and usage stats checkbox in session on install
* fixed some small warning introducted yesterday about
highscores_ids_hidden
* updated TODO
* fixed hidding shop system menu on tibiacom template when disabled in
config
* some changes to sample characters: chanced town_id to 1, posx: 1000,
posy: 1000, posz: 1000 and default group_id to 1 so you can change
in-game outfits and they will be used
* fixed account.login redirect not working on tibiacom template
* installation: warn about wrong admin account name/id and password
* (internal) removed some duplicated code on install finish
* (internal) renamed installation step files to be in correct order
* added TODO file
* bumped version to 0.7.3
* fixed changing comment of characters with space and other special
characters in name (#29)
* fixed viewing guilds with space and other special characters in name
(#29)
* (kathrine template) fixed displaying menu when no URI is set (URI =
'/')
* added some additional checks for Validator guildName and rankName if
name is empty
* (internal) new twig filter: urlencode, which is using urlencode php
function
* log some error info when mail cannot be send on account create
* fixed some weird include possibilities with forum and account actions
(verify action name)
* twig getLink function will now return with full url (BASE_URL
included)
* fixed some changelog PHP Notice warning
* (internal) shortened message functions
* added anonymous usage statistics reporting
* (fix) don't show templates that doesn't exist in Menus option in Admin Panel
* (fix) menu ordering by category
* (fix) showing changelog with urls in Admin Panel
* (internal) moved uninstall logic to Plugins class
* added networks (facebook and twitter) and highscores (top 5) boxes to tibiacom template, configurable in templates/tibiacom/config.php
* fixed polls box in tibiacom template
* (internal) moved tibiacom boxes to separate directory
* (internal) renamed constant TICKET -> TICKER
* you can edit them in Admin Panel under 'Menus' option.
* you can also add custom links, like http://google.pl
* removed videos pages, as it can be easily added using custom Menus and Pages with insert Media
* removed bug_report configurable, its now enabled by default
* save monster loot in database in json format instead loading it every time from xml file
* store monster voices and immunities in json format
* removed useless monsters.gfx_name field from database
* convert item name to item id in loot in monsters.xml loader
* after changing template you will be redirected to latest viewed page
* display gallery add image form only on main gallery page
* fixed displaying monster loot when item.name in loot is used instead of item.id
* (intern) added new function getItemNameById($id)
* (intern) renamed database field monsters.hide_creature to hidden
* removed useless spells.spell column that was duplicate of spells.words
* Usage_Statistics reports now plugin version too
* (internal) removed $hook_types array, using defined() and constant() functions now
* (internal) optimized Spells class
* this requires loaded items - go to admin panel and select Items menu, then reload
* added items.xml loader class and weapons.xml loader class
* load also runes into spells table
* (internal) changed spells.vocations database field to store json data instead of comma separated
* (internal) renamed existing Items class to Items_Images
* can be used to install plugins from command line. Usage: "php install_plugin.php path_to_file"
* fixed if HTTP_HOST not set in common.php when executed from command line
* Added 'Are you sure?' popup when uninstalling plugin
* Moved plugin install logic to a new class: Plugins
* added some warnings when plugin json file is incomplete
* added new indicator icons for create account, create character and change character name
* attempt to fix incorrect views counter behavior (its resetting to 0 in some cases)
* moved check_* functions to class Validator
* from now all validators ajax requests will fire onblur instead of onkeyup
* ajax requests returns now json instead of xml
* added 404 response when file is not found
* fixed gallery
- fixed some bugs with installlation & characters & houses
[0.2.0 - 21.05.2017]
- added option to change character sex for premium points
- moved site_closed to database, now you can close your site through admin panel
- added option to admin panel: clear cache
- added experiencetable_rows configurable
- optimized OTS_Account->getGroupId(), now its using like 20 queries less
- optimized OTS_Player->load($id) function, should be much faster now
- fixed displaying on highscores special outfits
- fixed skull images displaying
- fixed displaying unlimited premium account
- fixed bug where players.lookaddons doesn't exist (OTHire etc.) (https://otland.net/threads/myaac-v0-0-1.251454/page-6#post-2442407)
- fixed signature tibian for OTHire and other servers that doesnt use accounts.premdays field
- fixed when player name in signature containst space
- don't show "Create forum thread" when editing
- fixed red color table after create account
- updated download links, as clients.halfaway.net isn't working anymore
- fixed some bugs while installing when field `email_next` or `hidden` already exist
- fixed movies unexpected comment
- added template_place_holder('center_top') to kathrine template
[0.1.5 - 13.05.2017]
- fixed bug with "Integrity constraint violation: 1048 Column 'ip' cannot be null"
[0.1.4 - 13.05.2017]
- added outfit shower, in characters, online, and highscores
- updated database to version 2
- fixed item images (now using item-images.ots.me host by default)
- fixed news ticket and posting long newses (https://otland.net/threads/myaac-v0-0-1.251454/page-5#post-2442026)
- news body limit increased to 65535 (mysql text field)
- removed some unused code from my old server
- added spells & monsters to kathrine template
[0.1.3 - 11.05.2017]
- this is just release to update version number
[0.1.2 - 11.05.2017]
- forgot to update CHANGELOG and MYAAC_VERSION
[0.1.1 - 11.05.2017]
- fixed updating myaac_config with database_version to 1
- fixed database updater
[0.1.0 - 11.05.2017]
- added new feature: change character name for premium points (disabled by default, you can enable it in config under account_change_character_name in config.php)
* feat: admin-pages (can add admin pages through plugins) (https://github.com/slawkens/myaac/commit/ceaa0639e66d31e8177ff90791463470367aa45d)
* just place the page in admin-pages folder in the plugin
* Also, possibility to overwrite default myaac admin pages
* Add db->hasTableAndColumns(table, columns), credits to @opentibiabr Team (https://github.com/slawkens/myaac/commit/82a533d88c8a342076891d132b4b409ed9a1fe72)
* Add noSubmit option to buttons.base (https://github.com/slawkens/myaac/commit/64f6d3abcada3bf9fd7599f50d2fac0a1367f383)
### Fixed
* Fix: display 404 error instead of 500 when page has been removed from filesystem (https://github.com/slawkens/myaac/commit/c2bf94fb2370d2009a2eb907f818955132cf8611)
* Fix headline.php: change image format to .png cause of black background (https://github.com/slawkens/myaac/commit/b618084d50918539d9a70abd97e764137b966067)
* Clear cache on plugin enable/disable, fixes some issues with plugin pages being cached (https://github.com/slawkens/myaac/commit/1d0c173e7d000aecbd432800941fc3e38a0e50f2)
* Do not autoload sub-folders if autoload pages is disabled (https://github.com/slawkens/myaac/commit/d47195a7878095336f9c9edc6f96244257f67eec)
* Pages in theme/template folder will now have precedence over normal pages (https://github.com/slawkens/myaac/commit/6d8f4718a1d349fba8f0ebc39cfd3a1a84d104b0)
* Small changes in account.login.html.twig (https://github.com/slawkens/myaac/commit/f40b986b59d4c8fa89ab4745731bf366f8619976)
* Plugin name is required, version is optional (https://github.com/slawkens/myaac/commit/e6f05a2731c61d931be49e121c068e49c0ad5e01)
## [1.3.3 - 04.04.2025]
### Fixed
* Fix uninstall plugin when plugin is disabled (https://github.com/slawkens/myaac/commit/6c568fd36a271270684fc412ccd556b230273a6d)
### Changed
* Display more useful info when error parsing config.lua (https://github.com/slawkens/myaac/commit/fa6b6aa153ffc131e0d1631a4dcd9012a5850c2e)
### Other
* Small adjustments (https://github.com/slawkens/myaac/commit/35e2483de86e295bdf089cceffa25842eeb2e34c, https://github.com/slawkens/myaac/commit/ae639d65b0bfa491e747e907e2ebc77f83f47981)
## [1.3.2 - 01.04.2025]
### Fixed
* Fix debugBar/admin panel menu when using custom base_dir (https://github.com/slawkens/myaac/commit/65696f63e3aac02ff952ea81279e7cb2fa7570fb)
### Changed
* Settings: Show/hide IP Ban Protection options depending on the value (enabled/disabled) (https://github.com/slawkens/myaac/commit/dbf73d0b61b45601ae95e51b23c051c2704169c5)
* Do not require init.php in cache:clear command (https://github.com/slawkens/myaac/commit/d25c71857f767834239bbffacd00fdc671adb157)
* Small adjustments (https://github.com/slawkens/myaac/commit/6fac883659f581baac1361826d046410156f1e58, https://github.com/slawkens/myaac/commit/4a6896b4469968b9904292734cf6c14ba5eeef14)
## [1.3 - 10.03.2025]
### Changed
* Use latest outfit-images host from @gesior (https://github.com/slawkens/myaac/commit/529bdcf016dd0f9dffbc34d81f99a046a9ddb70d)
* Change monster link to $_GET ?name= (https://github.com/slawkens/myaac/commit/4c5cc8b573b2b3e7ec00a22b7ede30a68083a924)
### Fixed
* Fixed house links (https://github.com/slawkens/myaac/commit/887b5068ad11c4cdab614afd34525caba785ce13)
* Fixed long title on headline.php (https://github.com/slawkens/myaac/commit/3e3f4bb5a514158ec8777684ca6c7f1c2a37bed5)
* Fixed menu colors once again, plus add !important tag (https://github.com/slawkens/myaac/commit/aa52df6e2ec92cafc25b655ae907bf2e1746d9cc)
* Fix: add possibility to remove all menu items in admin panel (https://github.com/slawkens/myaac/commit/00fe1adc15ea7646596d755f6e6e1f7854ffc1d5, https://github.com/slawkens/myaac/commit/9239a4f4198c3ad260802ac3b47e9c41b80b754e)
## [1.2 - 09.02.2025]
### Added
* Twig session(key) function + reworked session functions to accept multi-array like in Laravel (https://github.com/slawkens/myaac/commit/b46ddb43d03ef7e5fc34e555e92e856bdc905691)
* add template_name to twig variables (https://github.com/slawkens/myaac/commit/ae1161d77050bda181802b4496c9de920a7bb1bc)
* add HOOK_INIT, executed just after $hooks are loaded (https://github.com/slawkens/myaac/commit/19686725dc810f63a07f049f82c66cf336d90ca6)
### Changed
* settings: password input hide/show, enable Save button only if changes has been made, save settings in transaction (https://github.com/slawkens/myaac/commit/4fda4f643b60a151179e5dd4f04912fb2618d98f, https://github.com/slawkens/myaac/commit/28fef952f857b79d64bc7495ffa5e1999e68e192, https://github.com/slawkens/myaac/commit/4b6024dc451accadb6c469fa282a9a764c1c0a81)
* rework menus: Different categories can have different colors + Option to reset menus (https://github.com/slawkens/myaac/commit/73de93a561f6b13111e019075724357d8a617249, https://github.com/slawkens/myaac/commit/3da3e62c5b12390d75de9b3320729bcca6e0b458)
### Fixed
* highscores: Fix online status + vocation for TFS 0.x (https://github.com/slawkens/myaac/commit/ea51ad27c38be88d86514cb979bb394fcfbef1f0)
* clear cache button in admin bar needed to be clicked twice until it worked (https://github.com/slawkens/myaac/commit/ea51ad27c38be88d86514cb979bb394fcfbef1f0)
* tibiacom account & news menu links not auto expanding
### Updated (Thanks dependabot)
* twig from ^2.0 to ^3.11
* tinymce from ^6.8.3 to ^7.2.0
* cypress from ^12.12.0 to ^13.17.0
* nesbot/carbon from 2.72.5 to 2.72.6
## [1.0 - 12.01.2025]
First stable release in the v1.0 series.
Minimum PHP 8.1 is required.
Changes since RC.2:
### Added
* feature: migrations up/down. Allows to downgrade/upgrade database to specified version (https://github.com/slawkens/myaac/commit/3f6ff3a3326b0475d28d11ffd7fff51f362d799f)
* new hooks for news management (https://github.com/slawkens/myaac/commit/011a85d8ae34283ded6999882833f9d4797028ec, https://github.com/slawkens/myaac/commit/36bd3eb846e829b45313e10f7568dc4e95841143)
* None Vocation to highscores (can be changed to RookStayer in Admin Panel) (https://github.com/slawkens/myaac/commit/a4a248099521bb5b8b2aa5bd592138debd2f19d5)
* support for button_color (green, red, blue) (https://github.com/slawkens/myaac/commit/d8b6b749ee62e88b6af4a05d3d7557f90b94d94e)
* add $whoopsHandler as variable, can be used by plugins (https://github.com/slawkens/myaac/commit/b0c8cf2ecda23045d725aaf43cfb3852ed766a4b)
* support for selecting plugin themes in Admin menus.php (https://github.com/slawkens/myaac/commit/77a2c1cec343ffe4be5c2c2503ee81bc32a14ca1)
### Changed
* schema: Change character set to utf8mb4 (support for Emojis in Menus/Pages/News/Forum etc.) (https://github.com/slawkens/myaac/commit/27c44f1bdfb6234cf0c9d5b4b491123bb205b08f)
* prefer get_browser_real_ip() over REMOTE_ADDR (https://github.com/slawkens/myaac/commit/941846605c00cee83168d2f916410b8ba8d4b7b9)
* automatically set selected current one on highscores filters (https://github.com/slawkens/myaac/commit/e96227fbe41ae281783b2d49edb169a603601813)
* allow OTS_Player to be passed as object to getPlayerLink (https://github.com/slawkens/myaac/commit/84d37c5a8f2c4535a41c8aa8264752969d3f3a3d)
* do not clear menus by default on install (https://github.com/slawkens/myaac/commit/12d8faa3eda5e798f97b71e941c035187daad96e)
* display warning in admin panel - plugins - if zip extension is not installed (https://github.com/slawkens/myaac/commit/e3ffe5d9e11d78ab064a370d8541bac351c9bcd9)
* set default_socket_timeout for ipinfo.io checkup to 5 seconds (https://github.com/slawkens/myaac/commit/783d96fc6568a607d3198b832fed3a0dd06c4ebb)
* refactor getTopPlayers function (support for balance) (https://github.com/slawkens/myaac/commit/c769962e39fe8dfb72ecd5be1864e145696be794)
### Fixed
* XSS in forum (https://github.com/slawkens/myaac/commit/c2b7286d20d4b579171540f7a774e8a0995d5e8f, https://github.com/slawkens/myaac/commit/8fb643596f9586005976e7bdb484a541a9d8715e)
* price deducted when changing sex (https://github.com/slawkens/myaac/commit/16671ea40b72dcf74037c359ad572f9eb825edf9)
* move_thread by unauthorized user (https://github.com/slawkens/myaac/commit/d6c40c836a53cb1710f911f77f45f28b54ea1b54, thanks @anyeor)
* TFS 1.4.2 where conditions is NULL (https://github.com/slawkens/myaac/commit/b8396d4c8482e951da538b13f2296123732c4545)
* do not show forum new thread show button if not logged in (https://github.com/slawkens/myaac/commit/507402171ba3b6e7ee184bd7fa73e0d55e0cad7a, @anyeor)
* login if limiter is disabled (https://github.com/slawkens/myaac/commit/a0f1971583f0f790013e2145fb5ac573c59fbdef)
* fixes to installMenus function (https://github.com/slawkens/myaac/commit/a2fadc5945fe0a5e39f740827f6ffbda1bb501e2)
* many PHP exceptions in different places
* fixes to tibiacom menus ActiveSubmenuItem
### Removed
* bugtracker SQL table code as the page has been removed/moved to plugins (https://github.com/slawkens/myaac/commit/5782772b901b05fb814bc718d062f6e2cd71df8c)
## [1.0-RC.2 - 25.10.2024]
Still waiting for your reports about bugs found in this release. We are very close to stable release.
* Make autoload of pages, commands and themes configurable (https://github.com/slawkens/myaac/commit/c1d4b4f80cd6bb85507ee9471e47013955a26a91)
* Fraggers in characters page for TFS 1.x and canary (https://github.com/slawkens/myaac/commit/42f99c3edc8de39cccc5632cb42e88b24579c5a6)
* New hooks: HOOK_INSTALL_FINISH, HOOK_ACCOUNT_CREATE_CHARACTER_* (https://github.com/slawkens/myaac/commit/08ac8ebade106521a5c7396faa5ce7006e629f7c, https://github.com/slawkens/myaac/commit/45dda5e834ff2059faea6ef9be2efa76f1723cbd)
### Changed
* Allow account_create_character_create even if account_mail_verify is activated (https://github.com/slawkens/myaac/commit/203e411b626fe62401a4b74a48420769e512aa39)
* Create guild_rank entries, in case MySQL trigger not loaded (https://github.com/slawkens/myaac/commit/d9c1b2507c81f306970642b35e4bf5f7cc04a6f2, https://github.com/slawkens/myaac/commit/47a19e85dd84e9f3b39a1b29cfc2c04b004832b9)
* Set Admin Account verified by default (https://github.com/slawkens/myaac/commit/cd49dfc79942f3301ce9c0b8d899b9f39bda9a41)
* Refactor account routes into sub folders (https://github.com/slawkens/myaac/commit/bdc0c43d3fd3a51030c3e916bdb9f008468f5ecd)
* Order towns by id (https://github.com/slawkens/myaac/commit/9ea2a5067fc4b75de395f381577b18914132ad84)
* Do not create news about myaac, if any news already exist (on installation (https://github.com/slawkens/myaac/commit/504242fb846b73b56b87bc1e39d070687ad7f5b4)
### Fixed
* Not working google recaptcha plugin (https://github.com/slawkens/myaac/commit/a1bcb217ecf4e21fd58da4ba491da1852029898a)
* Not working account create if account_country is disabled (https://github.com/slawkens/myaac/commit/933b681a9fcdbb6283e0469b3806d2ded492d232)
* Account verify - do not allow login without verified email (Thanks @anyeor, https://github.com/slawkens/myaac/commit/fcb13f3c0fb8ceafda0bd614a229a26a269432bd)
* Detect tools/ext exists on install to prevent broken installs (https://github.com/slawkens/myaac/commit/10a739773c4f2911876bc802a0ee0537c3e00a92)
* Cache reloading each time page refreshes (https://github.com/slawkens/myaac/commit/ec96985872057340112f65073efc0c4bf86dddb0)
* Highscores frags for TFS 1.x and canary (https://github.com/slawkens/myaac/commit/a04d186c22912915f0a7873dfe677ef3b5a23c79)
* Monsters page: monster not found exception (https://github.com/slawkens/myaac/commit/ef79b99b8acc179f14b8475547347d9daca27512)
* Fixed bug if \<flags\> are not present in monster.xml (https://github.com/slawkens/myaac/commit/57b47ab7983f625c7c0ef4f5303a4d07ef172786)
* new Admin Bar showed on top when admin logged in
* new page: Server Data, to reload server data
* Towns, NPCs & Items are stored in permanent cache
* new pages: mass account & teleport tools
* changelogs editor
* revised Accounts & Players editors
* option to add/modify admin menus with plugins
* option to enable/disable plugins
* better, updated TinyMCE editor (v6.x)
* with option to upload images
* list of open source libraries used in project page
* auto-loading of themes, commands & pages from plugins/ folder. You need just to place them in correct folder and they will be loaded automatically - this allows better customization, without interfering with core AAC folders. This will allow in the future automatic updates for plugins as well the AAC as whole.
* config.php moved to Admin Panel -> Settings page
* new console script: aac - using symfony/console
* usage: `php aac` (will list all commands by default)
* replace POT Query Builder to Eloquent ORM. Not 100% yet - in some places there is still old $db approach used (@gpedro) (https://github.com/slawkens/myaac/pull/230)
* brand new charming installation page (by @fernandomatos)
* using Bootstrap
* new pages router: nikic/fast-route, allowing for better customisation
* Plugin cronjobs: central control of the cronjobs
* Guild Wars support (available as plugin)
* support for login and create account only by email (configurable)
* with no need for account name
* Google ReCAPTCHA v3 support (available as plugin)
MyAAC is a free and open-source Automatic Account Creator (AAC) and Content Management System (CMS) written in PHP. It is a fork of the [Gesior](https://github.com/gesior/Gesior2012) project. It supports only MySQL databases.
# [MyAAC](https://my-aac.org)
MyAAC is a free and open-source Automatic Account Creator (AAC) written in PHP. It is a fork of the [Gesior](https://github.com/gesior/Gesior2012) project. It supports only MySQL databases.
Official website: https://my-aac.org
### REQUIREMENTS
[](https://github.com/slawkens/myaac/actions)
| 0.9.x | Not developed anymore | 0.9 | PHP >= 7.2.5 |
| 0.8.x | Active support | 0.8 | PHP >= 7.2.5 |
| 0.7.x | End Of Life | 0.7 | PHP >= 5.3.3 |
The recommended version to install is 1.x, which can be found at releases page - [https://github.com/slawkens/myaac/releases](https://github.com/slawkens/myaac/releases).
### Documentation
* [docs.my-aac.org](https://docs.my-aac.org)
* [my-aac.org - FAQ](https://my-aac.org/faqs/)
### Requirements
- PHP 5.2.0 or later
- MySQL database
- PDO PHP Extension
- XML PHP Extension
- ZIP PHP Extension
- (optional) mod_rewrite to use friendly_urls
- PHP Extensions: pdo, xml, json
- (optional) apache2 mod_rewrite (to use friendly_urls)
- (optional) zip PHP Extension (to install plugins)
die('Setup detected that <b>install/</b> directory exists. Please visit <a href="'.BASE_URL.'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
throw newRuntimeException('Setup detected that <b>install/</b> directory exists. Please visit <a href="'.BASE_URL.'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
$accounts_db=$db->query('SELECT `id`, `'.$nameOrNumberColumn.'`'.($hasTypeColumn?',type':($hasGroupColumn?',group_id':'')).', email FROM `accounts` ORDER BY `id` ASC');
$bans=$db->query('SELECT * FROM '.$db->tableName('bans').' WHERE '.$db->fieldName('active').' = 1 AND '.$db->fieldName('id').' = '.$account->getId().' ORDER BY '.$db->fieldName('added').' DESC LIMIT 10');
<label><inputclass="blank-checkbox"type="checkbox"<?phpecho($menu['blank']==1?'checked':'')?>/><span title="Open in New Window">New Window</span></label>
<button type="submit" onclick="return confirm('Are you sure that you want to clear cache?');" class="btn btn-danger" title="Clear Cache"><i class="fas fa-clear"></i>Clear cache</button>
$posts=$db->query('SELECT `author_guid`,`section`,`first_post`,`post_text`,`post_date`, `post_topic`,`post_html`,`post_smile`,`'.TABLE_PREFIX.'forum_boards`.`name` AS `forum_Name` FROM `'.
TABLE_PREFIX.'forum` LEFT JOIN `'.TABLE_PREFIX.'forum_boards` ON `'.
TABLE_PREFIX.'forum`.section = `'.TABLE_PREFIX.'forum_boards`.id WHERE `author_guid` = "'.$player->getId().'" ORDER BY `post_date` DESC LIMIT 10');
defined('MYAAC')ordie('Direct access not allowed!');
$title='Plugin manager';
csrfProtect();
$use_datatable=true;
if(!setting('core.admin_plugins_manage_enable')){
warning('Plugin installation and management is disabled in Settings.<br/>If you wish to enable, go to Settings and enable <strong>Enable Plugins Manage</strong>.');
}
else{
$pluginUploadEnabled=true;
if(!\class_exists('\ZipArchive')){
error('Please install PHP zip extension. Plugins upload disabled until then.');
$error.=' - file too large (limit of '.ini_get('upload_max_filesize').' bytes). You can enlarge the limits by changing "upload_max_filesize" in php.ini';
success('Woah, seems you\'re using newer version as latest released one! MyAAC latest released version is '.$myaac_version.', and you\'re using version '.MYAAC_VERSION.'.
thrownewRuntimeException('The vendor folder is missing. Please download Composer: <a href="https://getcomposer.org/download">https://getcomposer.org/download</a>, install it and execute in the main MyAAC directory this command: <b>composer install</b>. Or download MyAAC from <a href="https://github.com/slawkens/myaac/releases">GitHub releases</a>, which includes Vendor folder.');
'server_path'=>'',// path to the server directory (same directory where config file is located)
'template'=>'kathrine',// template used by website (kathrine, tibiacom)
'template_allow_change'=>true,// allow users to choose their own template while browsing website?
'vocations_amount'=>4,// how much basic vocations your server got (without promotion)
// what client version are you using on this OT?
// used for the Downloads page and some templates aswell
'client'=>1098,// 954 = client 9.54
'friendly_urls'=>false,// mod_rewrite is required for this, it makes links looks more elegant to eye, and also are SEO friendly (example: http://my-aac.org/guilds/Testing instead of http://my-aac.org/?subtopic=guilds&name=Testing). Remember to rename .htaccess.dist to .htaccess
'gzip_output'=>false,// gzip page content before sending it to the browser, uses less bandwidth but more cpu cycles
// gesior backward support (templates & pages)
// allows using gesior templates and pages with myaac
// might bring some performance when disabled
'backward_support'=>true,
// head options (html)
'meta_description'=>'Tibia is a free massive multiplayer online role playing game (MMORPG).',// description of the site
'meta_keywords'=>'free online game, free multiplayer game, ots, open tibia server',// keywords list separated by commas
'debug_level'=>0,// 0 - disabled, 1 - show load time, 2 - show db query counter, 3 - both, 4 - memory usage, 5 - load time & memory usage, 6 - queries & memory usage, 7 - all
'language'=>'en',// default language (currently only 'en' available)
'language_allow_change'=>false,
'visitors_counter'=>true,
'visitors_counter_ttl'=>10,// how long visitor will be marked as online (in minutes)
'views_counter'=>true,
// cache system. by default file cache is used
'cache_engine'=>'auto',// apc, eaccelerator, xcache, file, auto, or blank to disable.
'cache_prefix'=>'myaac_',// have to be unique if running more MyAAC instances on the same server (except file system cache)
// database details (leave blank for auto detect from config.lua)
'database_host'=>'',
'database_port'=>'',// leave blank to default 3306
'database_user'=>'',
'database_password'=>'',
'database_name'=>'',
// multiworld system (only TFS 0.3)
'multiworld'=>false,// use multiworld system?
'worlds'=>array(// list of worlds
//'1' => 'Your World Name',
//'2' => 'Your Second World Name'
),
// items
'outfit_images_url'=>'http://outfit-images.ots.me/outfit.php',// set to animoutfit.php for animated outfit
'item_images_url'=>'http://item-images.ots.me/960/',// set to images/items if you host your own items in images folder
// account
'account_management'=>true,// disable if you're using other method to manage users (fe. tfs account manager)
'account_mail_verify'=>false,// force users to confirm their email addresses when registering account
'account_mail_unique'=>true,// email addresses cannot be duplicated? (one account = one email)
'account_premium_days'=>0,// default premium days on new account
'account_premium_points'=>0,// default premium points on new account
'account_welcome_mail'=>true,// send welcome email when user registers
'account_mail_change'=>2,// how many days user need to change email to account - block hackers
'account_country'=>true,// user will be able to set country of origin when registering account, this information will be viewable in others places aswell
'account_country_recognize'=>true,// should country of user be automatically recognized by his IP? This makes an external API call to http://ipinfo.io
'account_change_character_name'=>false,// can user change their character name for premium points?
'account_change_character_name_points'=>30,// cost of name change
'account_change_character_sex'=>false,// can user change their character sex for premium points?
'account_change_character_sex_points'=>30,// cost of sex change
'characters_per_account'=>10,// max. number of characters per account
// mail
'mail_enabled'=>false,// is aac maker configured to send e-mails?
'mail_address'=>'no-reply@your-server.org',// server e-mail address (from:)
'mail_admin'=>'your-address@your-server.org',// admin email address, where mails from contact form will be sent
'mail_signature'=>array(// signature that will be included at the end of every message sent using _mail function
'recaptcha_site_key'=>'',// get your own public and private keys at https://www.google.com/recaptcha
'recaptcha_secret_key'=>'',
'recaptcha_theme'=>'light',// light, dark
//
'generate_new_reckey'=>true,// let player generate new recovery key, he will receive e-mail with new rec key (not display on page, hacker can't generate rec key)
'generate_new_reckey_price'=>20,// price for new recovery key
'send_mail_when_change_password'=>true,// send e-mail with new password when change password to account
'send_mail_when_generate_reckey'=>true,// send e-mail with rec key (key is displayed on page anyway when generate)
// genders (aka sex)
'genders'=>array(
0=>'Female',
1=>'Male'
),
// new character config
'character_samples'=>array(// vocations, format: ID_of_vocation => 'Name of Character to copy'
//0 => 'Rook Sample',
1=>'Sorcerer Sample',
2=>'Druid Sample',
3=>'Paladin Sample',
4=>'Knight Sample'
),
// town list used when creating character
// won't be displayed if there is only one item (rookgaard for example)
'character_towns'=>array(1),
// list of towns
'towns'=>array(
0=>'No town',
1=>'Sample town'
),
// guilds
'guild_management'=>true,// enable guild management system on the site?
'guild_need_level'=>1,// min. level to form a guild
'guild_need_premium'=>true,// require premium account to form a guild?
'guild_image_size_kb'=>80,// maximum size of the guild logo image in KB (kilobytes)
'guild_description_chars_limit'=>1000,// limit of guild description
'guild_description_lines_limit'=>6,// limit of lines, if description has more lines it will be showed as long text, without 'enters'
'guild_motd_chars_limit'=>150,// limit of MOTD (message of the day) that is shown later in the game on the guild channel
'quests'=>array(),// quests list (displayed in character view), name => storage
'signature_enabled'=>true,
'signature_type'=>'tibian',// signature engine to use: tibian, mango, gesior
'signature_cache_time'=>5,// how long to store cached file (in minutes)
'team_style'=>2,// 1/2 (1 - normal table, 2 - in boxes, grouped by group id)
'team_display_status'=>true,
'team_display_lastlogin'=>true,
'team_display_world'=>false,
// bans page
'bans_limit'=>50,
'bans_display_all'=>true,// should all bans be displayed? (sorted page by page)
// highscores page
'highscores_vocation_box'=>true,// show 'Choose a vocation' box on the highscores (allowing peoples to sort highscores by vocation)?
'highscores_vocation'=>true,// show player vocation under his nickname?
'highscores_frags'=>false,// show 'Frags' tab (best fraggers on the server)? Only 0.3
'highscores_outfit'=>true,// show player outfit?
'highscores_country_box'=>false,// doesnt work yet! (not implemented)
'highscores_groups_hidden'=>4,// this group id and higher won't be shown on the highscores
'highscores_length'=>100,// how many records per page on highscores
// characters page
'characters'=>array(// what things to display on character view page (true/false in each option)
'level'=>true,
'experience'=>false,
'magic_level'=>false,
'balance'=>false,
'marriage_info'=>true,// only 0.3
'outfit'=>true,
'creation_date'=>true,
'quests'=>true,
'skills'=>true,
'equipment'=>true,
'frags'=>false
),
// news page
'news_limit'=>5,// limit of news on the latest news page
'news_ticker_limit'=>5,// limit of news in tickers (mini news) (0 to disable)
'news_date_format'=>'j.n.Y',// check php manual date() function for more info about this
'news_author'=>true,// show author of the news
// gifts/shop system
'gifts_system'=>false,
// support/system
'bug_report'=>true,
// forum
'forum'=>'site',// link to the server forum, set to "site" if you want to use build in forum system, otherwise leave empty if you aren't going to use any forum
'forum_level_required'=>0,// level required to post, 0 to disable
'forum_post_interval'=>30,// in seconds
'forum_posts_per_page'=>20,
'forum_threads_per_page'=>20,
// last kills
'last_kills_limit'=>50,// max. number of deaths shown on the last kills page
// status, took automatically from config file if empty
'status_ip'=>'',
'status_port'=>'',
// other
'email_lai_sec_interval'=>60,// time in seconds between e-mails to one account from lost account interface, block spam
'google_analytics_id'=>'',// e.g.: UA-XXXXXXX-X
'experiencetable_columns'=>5,// how many columns to display in experience table page. * experiencetable_rows, 5 = 500 (will show up to 500 level)
'experiencetable_rows'=>100,// till how many levels in one column
'date_timezone'=>'Europe/Berlin',// more info at http://php.net/manual/en/timezones.php
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.