From 779dd003dd6eb1e017f479734b8c40b26b36ec0f Mon Sep 17 00:00:00 2001 From: slawkens1 Date: Tue, 19 Dec 2017 00:01:59 +0100 Subject: [PATCH] * update to 0.7.3 * better solution for hidding samples (configurable) * removed players.is_sample field --- CHANGELOG | 589 ++++++++++++++++++----------------- TODO | 1 + common.php | 2 +- install/steps/5-database.php | 11 +- install/steps/7-finish.php | 49 ++- system/functions.php | 2 +- system/init.php | 5 + system/pages/highscores.php | 10 +- 8 files changed, 359 insertions(+), 310 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 94f8d161..7b1dd5a4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,351 +1,366 @@ +[0.7.3 - 18.12.2017] + * auto generate myaac cache & session prefix on install to be unique accross installations + * fixed hidding shop system menu on tibiacom template when disabled in config + * prevent adding duplicated newses with installation + * 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 + * added version 772 constant to install client choose (OTHire) + * better solution for hidding samples (configurable) - highscores_ids_hidden + * fixed account.login redirect not working on tibiacom template + * installation: warn about wrong admin account name/id and password + * fixed last menu closing in tibiacom template + * updated polish locale (translation) on install + * (internal) removed some duplicated code on install finish + * (internal) renamed installation step files to be in correct order + * added TODO file + [0.7.1 - 13.12.2017] - - added changelog menu item to kathrine template - - fixed some php short tag in changelogs page - - fixed guild change description back button - - removed duplicated "Support List" menu item from tibiacom template - - changed some notice when version check is failed - - (internal) moved changelog to twig + * added changelog menu item to kathrine template + * fixed some php short tag in changelogs page + * fixed guild change description back button + * removed duplicated "Support List" menu item from tibiacom template + * changed some notice when version check is failed + * (internal) moved changelog to twig [0.7.0 - 20.11.2017] - - moved template menus to database, they're now dynamically loaded - - added anonymous usage statistics reporting (only if user agrees, first usage report will be send after 7 days) - - you can edit them in Admin Panel under 'Menus' option - - you can also add custom links, like http://google.pl - - added networks (facebook and twitter) and highscores (top 5) boxes to tibiacom template, configurable in templates/tibiacom/config.php - - added news ticker for kathrine template - - added featured article to tibiacom template (you can add them with add news button) - - added tinymce editor to 'Pages' in admin panel - - added links to edit/delete/hide custom page directly from page - - update forum post after editing news (when forum post has been created) - - enabled code plugin for tinymce which enabled raw html code editing - - 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 - - log some error info when mail cannot be send on account create - - twig getLink function will now return with full url (BASE_URL included) - - verify install post values directly on config page and display error - - updated tinymce to version 4.7.2 (from 4.7.0) - - updated phpmailer to version 5.2.26 (from 5.2.23) - - (#30) (fix) recovering account on servers that doesn't support salts - - (fix) account email confirm function - - (fix) showing changelog with urls in Admin Panel - - (fix) uninstalling plugin - - (fix) polls box in tibiacom template - - (fix) remove hooks from db on plugin deinstall - - (fix) some weird include possibilities with forum and account actions (verify action name) - - (fix) loading hooks from plugin installed from command line - - (fix) some changelog PHP Notice warning - - (internal) moved uninstall logic to Plugins class - - (internal) moved tibiacom boxes to separate directory - - (internal) moved news tickers to twig template - - (internal) moved Forum class to separate file - - (internal) moved deprecated functions to compat.php - - (internal) added some compat functions that are used by shop system - - (internal) renamed constant TICKET -> TICKER - - (internal) shortened message functions + * moved template menus to database, they're now dynamically loaded + * added anonymous usage statistics reporting (only if user agrees, first usage report will be send after 7 days) + * you can edit them in Admin Panel under 'Menus' option + * you can also add custom links, like http://google.pl + * added networks (facebook and twitter) and highscores (top 5) boxes to tibiacom template, configurable in templates/tibiacom/config.php + * added news ticker for kathrine template + * added featured article to tibiacom template (you can add them with add news button) + * added tinymce editor to 'Pages' in admin panel + * added links to edit/delete/hide custom page directly from page + * update forum post after editing news (when forum post has been created) + * enabled code plugin for tinymce which enabled raw html code editing + * 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 + * log some error info when mail cannot be send on account create + * twig getLink function will now return with full url (BASE_URL included) + * verify install post values directly on config page and display error + * updated tinymce to version 4.7.2 (from 4.7.0) + * updated phpmailer to version 5.2.26 (from 5.2.23) + * (#30) (fix) recovering account on servers that doesn't support salts + * (fix) account email confirm function + * (fix) showing changelog with urls in Admin Panel + * (fix) uninstalling plugin + * (fix) polls box in tibiacom template + * (fix) remove hooks from db on plugin deinstall + * (fix) some weird include possibilities with forum and account actions (verify action name) + * (fix) loading hooks from plugin installed from command line + * (fix) some changelog PHP Notice warning + * (internal) moved uninstall logic to Plugins class + * (internal) moved tibiacom boxes to separate directory + * (internal) moved news tickers to twig template + * (internal) moved Forum class to separate file + * (internal) moved deprecated functions to compat.php + * (internal) added some compat functions that are used by shop system + * (internal) renamed constant TICKET -> TICKER + * (internal) shortened message functions [0.6.6 - 22.10.2017] - - fixed some php fatal error on spells page - - changed spells.vocations field in db size to 300 - - please reload your spells after this update! + * fixed some php fatal error on spells page + * changed spells.vocations field in db size to 300 + * please reload your spells after this update! [0.6.5 - 21.10.2017] - - fixed displaying custom pages - - fixed adding new group forum board + * fixed displaying custom pages + * fixed adding new group forum board [0.6.4 - 20.10.2017] - - reverted OTS_Account::getLastLogin() cause its used by tibia11-login plugin + * reverted OTS_Account::getLastLogin() cause its used by tibia11-login plugin [0.6.3 - 20.10.2017] - - fixed creating account - - fixed viewing thread without being logged - - fixed showing premium account status + * fixed creating account + * fixed viewing thread without being logged + * fixed showing premium account status [0.6.2 - 20.10.2017] - - added forums for guilds and groups - - added nice looking menu for my account page in default template - - new command line tool: install_plugin.php - can be used to install plugins from command line. Usage: "php install_plugin.php path_to_file" - - added new tooltip to view characters equipment item name and monster loot - - added items.xml loader class and weapons.xml loader class - - minimum PHP version to install AAC is now 5.3.0 cause of Anonymous functions used by Twig - - Added 'Are you sure?' popup when uninstalling plugin - - added some warnings when plugin json file is incomplete - - fixed showing in characters ban expires when is unlimited - - fixed displaying monster loot when item.name in loot is used instead of item.id - - load also runes into spells table - - display plugin uninstall option only if its possible - - after changing template you will be redirected to latest viewed page - - display gallery add image form only on main gallery page - - (internal) moved most of guilds html-in-php code to twig - - (internal) moved spells page to twig template - - (internal) removed useless spells.spell column that was duplicate of spells.words - - (internal) save monster loot in database in json format instead loading it every time from xml file - - (internal) store monster voices and immunities in json format - - (internal) moved buttons to separate template - - (internal) moved online search form to twig - - (internal) added new function getItemNameById($id) - - (internal) Moved plugin install logic to a new class: Plugins - - (internal) changed spells.vocations database field to store json data instead of comma separated - - (internal) removed $hook_types array, using defined() and constant() functions now - - (internal) removed useless monsters.gfx_name field from database - - (internal) renamed database field monsters.hide_creature to hidden - - (internal) renamed existing Items class to Items_Images - - (internal) optimized Spells class - - (internal) new function: OTS_Guild::hasMember(OTS_Player $player) - - (internal) new function: Forum::hasAccess($board_id) + * added forums for guilds and groups + * added nice looking menu for my account page in default template + * new command line tool: install_plugin.php - can be used to install plugins from command line. Usage: "php install_plugin.php path_to_file" + * added new tooltip to view characters equipment item name and monster loot + * added items.xml loader class and weapons.xml loader class + * minimum PHP version to install AAC is now 5.3.0 cause of Anonymous functions used by Twig + * Added 'Are you sure?' popup when uninstalling plugin + * added some warnings when plugin json file is incomplete + * fixed showing in characters ban expires when is unlimited + * fixed displaying monster loot when item.name in loot is used instead of item.id + * load also runes into spells table + * display plugin uninstall option only if its possible + * after changing template you will be redirected to latest viewed page + * display gallery add image form only on main gallery page + * (internal) moved most of guilds html-in-php code to twig + * (internal) moved spells page to twig template + * (internal) removed useless spells.spell column that was duplicate of spells.words + * (internal) save monster loot in database in json format instead loading it every time from xml file + * (internal) store monster voices and immunities in json format + * (internal) moved buttons to separate template + * (internal) moved online search form to twig + * (internal) added new function getItemNameById($id) + * (internal) Moved plugin install logic to a new class: Plugins + * (internal) changed spells.vocations database field to store json data instead of comma separated + * (internal) removed $hook_types array, using defined() and constant() functions now + * (internal) removed useless monsters.gfx_name field from database + * (internal) renamed database field monsters.hide_creature to hidden + * (internal) renamed existing Items class to Items_Images + * (internal) optimized Spells class + * (internal) new function: OTS_Guild::hasMember(OTS_Player $player) + * (internal) new function: Forum::hasAccess($board_id) [0.6.1 - 17.10.2017] - - fixed signatures loading - - new configurable: session_prefix, to allow more websites on one machine (must be unique for every website on your dedicated server!) - - better error handling for monsters and spells loader (save errors to system/logs/error.log) - - check if file exist before loading (monsters and spells) - - (internal) Account::getAccess() = Account::getGroupId() - - (internal) moved account actions (pages) to account/ directory - - (internal) moved forum actions (pages) to forum/ directory - - (internal) moved forum.edit_post to twig templates + * fixed signatures loading + * new configurable: session_prefix, to allow more websites on one machine (must be unique for every website on your dedicated server!) + * better error handling for monsters and spells loader (save errors to system/logs/error.log) + * check if file exist before loading (monsters and spells) + * (internal) Account::getAccess() = Account::getGroupId() + * (internal) moved account actions (pages) to account/ directory + * (internal) moved forum actions (pages) to forum/ directory + * (internal) moved forum.edit_post to twig templates [0.6.0 - 16.10.2017] - - added faq management - add/edit/move/hide/delete from website - - new account.login view for tibiacom template - - monsters and spells are now being loaded at the installation of the AAC - - fix for php versions under 5.5 where empty() function supported only variables - - added missing change email and change info buttons to account.management default template - - added new indicator icons for create account, create character and change character name - - fixed config loader when some inline comments are present - - fixed editing page in admin panel that contains some html code - - fixed forum new post on mac os and some specific mysql versions - - attempt to fix incorrect views counter behavior (its resetting to 0 in some cases) - - enabled cache http headers for signatures - - check if monster file exist before loading it - - fixed if plugin zip file name contains dot (.) - - renamed screenshots to gallery and movies to videos - - moved install pages to twig - - fixed Account::getGuildAccess function - - removed never used library from sources - dwoo - - 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 + * added faq management - add/edit/move/hide/delete from website + * new account.login view for tibiacom template + * monsters and spells are now being loaded at the installation of the AAC + * fix for php versions under 5.5 where empty() function supported only variables + * added missing change email and change info buttons to account.management default template + * added new indicator icons for create account, create character and change character name + * fixed config loader when some inline comments are present + * fixed editing page in admin panel that contains some html code + * fixed forum new post on mac os and some specific mysql versions + * attempt to fix incorrect views counter behavior (its resetting to 0 in some cases) + * enabled cache http headers for signatures + * check if monster file exist before loading it + * fixed if plugin zip file name contains dot (.) + * renamed screenshots to gallery and movies to videos + * moved install pages to twig + * fixed Account::getGuildAccess function + * removed never used library from sources - dwoo + * 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 [0.5.1 - 11.10.2017] - - fixed forum add/edit board - - new configurable: highscores_length, how much highscores to display - - fixed highscores links (ALL, previous and next page) - - update templates cache when installing/uninstalling plugin - - moved character deaths and frags table generation to twig - - fixed some bug when you uninstall plugin and then try to install again on the same page - - check if plugin exist before uninstalling - - fixed some warning in OTS_Base_DB + * fixed forum add/edit board + * new configurable: highscores_length, how much highscores to display + * fixed highscores links (ALL, previous and next page) + * update templates cache when installing/uninstalling plugin + * moved character deaths and frags table generation to twig + * fixed some bug when you uninstall plugin and then try to install again on the same page + * check if plugin exist before uninstalling + * fixed some warning in OTS_Base_DB [0.5.0 - 10.10.2017] - - moved .htaccess rules to plain php (index.php) - - updated tinymce to the latest (4.7.0) version, you can now embed code, for example youtube videos - - added option to uninstall plugin - - added option to require specified myaac, php or database version for plugins, without that plugin won't be installed - - change accountmanagement links to use friendly_urls - - fixed creating new forum thread - - sample characters are now assigned to admin account and have group_id 4 to not be shown on highscores - - added links loaded from database to admin panel - for future plugins - - print some info to error.log when can't find config.lua - - some fixes in account changecomment action - - show info when account name/number or password is empty on login - - fixed showing account login errors - - added few characters hooks - - fixed some kathrine template js bug when shop is disabled - - you can now use slash '/' in custom pages loaded from database - - added new twig function getLink that convert link taking into account config.friendly_urls - - internalLayoutLink -> getLink + * moved .htaccess rules to plain php (index.php) + * updated tinymce to the latest (4.7.0) version, you can now embed code, for example youtube videos + * added option to uninstall plugin + * added option to require specified myaac, php or database version for plugins, without that plugin won't be installed + * change accountmanagement links to use friendly_urls + * fixed creating new forum thread + * sample characters are now assigned to admin account and have group_id 4 to not be shown on highscores + * added links loaded from database to admin panel - for future plugins + * print some info to error.log when can't find config.lua + * some fixes in account changecomment action + * show info when account name/number or password is empty on login + * fixed showing account login errors + * added few characters hooks + * fixed some kathrine template js bug when shop is disabled + * you can now use slash '/' in custom pages loaded from database + * added new twig function getLink that convert link taking into account config.friendly_urls + * internalLayoutLink -> getLink [0.4.3 - 05.10.2017] - - better config loader taken from latest gesior, you can now include files in your config by doing dofile('config.local.lua') - - fixed country detection in create account - - fixed showing of character deaths and frags - - fixed https://otland.net/threads/myaac-v0-0-1.251454/page-13#post-2466303 - - fixed https://otland.net/threads/myaac-v0-0-1.251454/page-13#post-2466313 - - fixed rook sample, which will now have level 1, 150 health, 0 mana, and 400 cap. - - fixed samples being deleted by tfs 1.0+ cause of 'deletion' field set to 1 - - pages loaded from database have higher priority than normal .php pages, so they will be loaded first if they exist - - moved many pages to twig templates - - change download client links from clients.halfaway.net to tibia-clients.com - - added bugtracker to kathrine template - - added CREDITS file + * better config loader taken from latest gesior, you can now include files in your config by doing dofile('config.local.lua') + * fixed country detection in create account + * fixed showing of character deaths and frags + * fixed https://otland.net/threads/myaac-v0-0-1.251454/page-13#post-2466303 + * fixed https://otland.net/threads/myaac-v0-0-1.251454/page-13#post-2466313 + * fixed rook sample, which will now have level 1, 150 health, 0 mana, and 400 cap. + * fixed samples being deleted by tfs 1.0+ cause of 'deletion' field set to 1 + * pages loaded from database have higher priority than normal .php pages, so they will be loaded first if they exist + * moved many pages to twig templates + * change download client links from clients.halfaway.net to tibia-clients.com + * added bugtracker to kathrine template + * added CREDITS file [0.4.2 - 14.09.2017] - - updated version number + * updated version number [0.4.1 - 13.09.2017] - - fixed log in to admin panel - - fixed File is not .zip plugin upload error + * fixed log in to admin panel + * fixed File is not .zip plugin upload error [0.4.0 - 13.09.2017 - - added option to add/edit/delete/hide/move forum boards - - moved some of HTML-in-PHP code to Twig templates - - added bug_report configurable which can enable/disable bug tracker - - log errors instead of showing them to users with system directories - - fix when $_SERVER['HTTP_ACCEPT_ENCODING'] is not set - - when it fails to load config.lua it will output error also to error.log - - automatically detect json file in .zip instead of basing on filename (admin panel - plugins) - - hopefully fixed the error with "The file you are trying to upload is not a .zip file. Please try again." - - fixed wrong name of table in bugtracker - - fixed some bugs in bugtracker - - added report bug link in templates - - fixed some rare error when user is logged in for longer than 15 minutes and tries to login again - - fixed some grammar errors - - some small improvements - - fixed some separators in kathrine template + * added option to add/edit/delete/hide/move forum boards + * moved some of HTML-in-PHP code to Twig templates + * added bug_report configurable which can enable/disable bug tracker + * log errors instead of showing them to users with system directories + * fix when $_SERVER['HTTP_ACCEPT_ENCODING'] is not set + * when it fails to load config.lua it will output error also to error.log + * automatically detect json file in .zip instead of basing on filename (admin panel - plugins) + * hopefully fixed the error with "The file you are trying to upload is not a .zip file. Please try again." + * fixed wrong name of table in bugtracker + * fixed some bugs in bugtracker + * added report bug link in templates + * fixed some rare error when user is logged in for longer than 15 minutes and tries to login again + * fixed some grammar errors + * some small improvements + * fixed some separators in kathrine template [0.3.0 - 28.08.2017] - - added administration panel for screenshots management with auto thumbnail generator and image auto-resizing - - added Twig template engine and moved some html-in-php code to it - - automatically detect player country based on user location (IP) on create account - - player sex (gender) is now configurable at $config['genders'] - - fixed recovering account and changing password when salt is enabled - - fixed installing samples when for example Rook Sample already exist and other samples not - - fixed some mysql error when character you trying to create already exist - - fixed some warning when you select nonexistent country - - password change minimal/maximal length notice is now more precise - - added 'enabled' field in myaac_hooks table, which can enable or disable specified hook - - removed DEFAULT '' for TEXT field. It didn't worked under some systems like MAC OS X. - - minimum PHP version to install the MyAAC is now 5.2.0 cause of pathinfo (extension) function - - removed unused admin stylish template - - removed some unused cities field from myaac_spells table - - moved news adding at installation from schema.sql to finish.php - - some optimizations + * added administration panel for screenshots management with auto thumbnail generator and image auto-resizing + * added Twig template engine and moved some html-in-php code to it + * automatically detect player country based on user location (IP) on create account + * player sex (gender) is now configurable at $config['genders'] + * fixed recovering account and changing password when salt is enabled + * fixed installing samples when for example Rook Sample already exist and other samples not + * fixed some mysql error when character you trying to create already exist + * fixed some warning when you select nonexistent country + * password change minimal/maximal length notice is now more precise + * added 'enabled' field in myaac_hooks table, which can enable or disable specified hook + * removed DEFAULT '' for TEXT field. It didn't worked under some systems like MAC OS X. + * minimum PHP version to install the MyAAC is now 5.2.0 cause of pathinfo (extension) function + * removed unused admin stylish template + * removed some unused cities field from myaac_spells table + * moved news adding at installation from schema.sql to finish.php + * some optimizations [0.2.4 - 09.06.2017] - - fixed invite to guild - - added id field on monsters, so you can delete them in phpmyadmin - - fixed adding some creatures with ' and " - - fixed when there are spaces at beginning of the file (creatures) - - fixed when file is unable to parse (creatures) - - fixed typo loss_items => loss_containers - - more elegant way of showing message on reload creatures and spells + * fixed invite to guild + * added id field on monsters, so you can delete them in phpmyadmin + * fixed adding some creatures with ' and " + * fixed when there are spaces at beginning of the file (creatures) + * fixed when file is unable to parse (creatures) + * fixed typo loss_items => loss_containers + * more elegant way of showing message on reload creatures and spells [0.2.3 - 31.05.2017] - - fixed guild management on OTHire 0.0.3 - - set default skills to 10 when creating new character - - fixed displaying of "Create forum thread" in newses - - fixed deleting guild on servers that use players.rank_id field - - fixed phpmailer class loading (https://otland.net/threads/myaac-v0-0-1.251454/page-8#post-2445222) - - fixed displaying vocation amount on online page - - better support for custom vocations, you just need to set in config vocations_amount to yours. - - fixed huge space in player name (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444328) - - fixed Undefined variable (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444034) - - fixed Undefined offset (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444035) + * fixed guild management on OTHire 0.0.3 + * set default skills to 10 when creating new character + * fixed displaying of "Create forum thread" in newses + * fixed deleting guild on servers that use players.rank_id field + * fixed phpmailer class loading (https://otland.net/threads/myaac-v0-0-1.251454/page-8#post-2445222) + * fixed displaying vocation amount on online page + * better support for custom vocations, you just need to set in config vocations_amount to yours. + * fixed huge space in player name (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444328) + * fixed Undefined variable (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444034) + * fixed Undefined offset (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444035) [0.2.2 - 22.05.2017] - - added missing cache/signature directory - - fixed https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2443868 + * added missing cache/signature directory + * fixed https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2443868 [0.2.1 - 21.05.2017] - - added Swedish translation by Sizaro - - fixed some bugs with installlation & characters & houses + * added Swedish translation by Sizaro + * 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 + * 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" + * 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 + * 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 + * this is just release to update version number [0.1.2 - 11.05.2017] - - forgot to update CHANGELOG and MYAAC_VERSION + * 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 + * 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) - - added automatic database updater (data migrations) - - renamed events to hooks - - moved hooks to database - - now you can use hooks in plugins - - set account.type field to 5 on install, if TFS 1.0+ - - added example plugin - - new, latest google analytics code - - fixed bug with loading account.name that has numbers in it - - fixed many bugs in player editor in admin panel - - added error handling to plugin manager and some more verification in - - file has been correctly unpacked/uploaded - - fixed Statistics page in admin panel when using account.number - - fixed bug when creating/recovering account on servers with - - account.salt field (TFS 0.3 for example) - - fixed forum showing thread with html tags (added from news manager) - - new, latest code for youtube videos in movies page - - fixed showing vocation images when using $config['online_vocations_images'] - - many fixes in polls (also importing proper schema) - - fixed hovering on buttons in kathrine template (on accountmanagement page) - - fixed signatures (many fixes) - - added missing gesior signature system + * 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) + * added automatic database updater (data migrations) + * renamed events to hooks + * moved hooks to database + * now you can use hooks in plugins + * set account.type field to 5 on install, if TFS 1.0+ + * added example plugin + * new, latest google analytics code + * fixed bug with loading account.name that has numbers in it + * fixed many bugs in player editor in admin panel + * added error handling to plugin manager and some more verification in + * file has been correctly unpacked/uploaded + * fixed Statistics page in admin panel when using account.number + * fixed bug when creating/recovering account on servers with + * account.salt field (TFS 0.3 for example) + * fixed forum showing thread with html tags (added from news manager) + * new, latest code for youtube videos in movies page + * fixed showing vocation images when using $config['online_vocations_images'] + * many fixes in polls (also importing proper schema) + * fixed hovering on buttons in kathrine template (on accountmanagement page) + * fixed signatures (many fixes) + * added missing gesior signature system [0.0.6 - 06.05.2017] - - fixed bug while installing (https://otland.net/threads/myaac-v0-0-1.251454/page-3#post-2440543) - - fixed bug when creating character (not showing errors) (one more time) - - fixed support for TFS 0.2 series - - added FAQ link + * fixed bug while installing (https://otland.net/threads/myaac-v0-0-1.251454/page-3#post-2440543) + * fixed bug when creating character (not showing errors) (one more time) + * fixed support for TFS 0.2 series + * added FAQ link [0.0.5 - 05.05.2017] - - fixed bug when creating character (not showing errors) - - Fixed characters loading with names that has been created with other AAC - - fixed links to shop in default template - - fixed some weird PHP 7.1 warnings/notices - - Fixed config loading with some weird comments - - fixed bug with status info utf8 encoding (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440259) - - fixed when ip in log_action is NULL (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440357) - - fixed bug when guild doesn't exist on characters page (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440320) - - disabled friendly_urls by default - - fixes when $config['database_*'] is set - - added CHANGELOG + * fixed bug when creating character (not showing errors) + * Fixed characters loading with names that has been created with other AAC + * fixed links to shop in default template + * fixed some weird PHP 7.1 warnings/notices + * Fixed config loading with some weird comments + * fixed bug with status info utf8 encoding (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440259) + * fixed when ip in log_action is NULL (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440357) + * fixed bug when guild doesn't exist on characters page (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440320) + * disabled friendly_urls by default + * fixes when $config['database_*'] is set + * added CHANGELOG [0.0.3 - 03.05.2017] - - Full support for OTHire 0.0.3 - - added support for otservers that doesn't use account.name field, instead just account number will be used - - fixed encryption detection on TFS 0.3 - - fixed bug when server_config table doesn't exist - - (install) moved admin account creation to new step - - fixed news comment link - - by default, the installer creates now the Admin player, for admin account - - fixed installation errors - - fixed config.lua loading with some weird comments + * Full support for OTHire 0.0.3 + * added support for otservers that doesn't use account.name field, instead just account number will be used + * fixed encryption detection on TFS 0.3 + * fixed bug when server_config table doesn't exist + * (install) moved admin account creation to new step + * fixed news comment link + * by default, the installer creates now the Admin player, for admin account + * fixed installation errors + * fixed config.lua loading with some weird comments [0.0.2 - 02.05.2017] - - updated forum links to use friendly_urls - - some more info will be shown when cannot connect to database - - show more error infos when creating character - - fixed forum link on newses - - fixed spells loading when there's vocation name instead of id - - fixed bug when you have changed template but it doesn't exist anymore - - fixed vocations with promotion loading - - fixed support for gesior pages and templates - - added function OTS_Acount:getGroupId() + * updated forum links to use friendly_urls + * some more info will be shown when cannot connect to database + * show more error infos when creating character + * fixed forum link on newses + * fixed spells loading when there's vocation name instead of id + * fixed bug when you have changed template but it doesn't exist anymore + * fixed vocations with promotion loading + * fixed support for gesior pages and templates + * added function OTS_Acount:getGroupId() [0.0.1 - 01.05.2017] This is first official release of MyAAC. diff --git a/TODO b/TODO index d8a0c650..7baa22ab 100644 --- a/TODO +++ b/TODO @@ -12,6 +12,7 @@ * database towns table support for TFS 1.3 * players.is_sample is waste, better save in config.php array of ignored ids * add some notice to the user that installing step "Import Schema" will take some time + * remember client version in session on install 1.0: * i18n support (issue #1 on github) diff --git a/common.php b/common.php index a96c9f91..bee8d578 100644 --- a/common.php +++ b/common.php @@ -26,7 +26,7 @@ session_start(); define('MYAAC', true); -define('MYAAC_VERSION', '0.7.3-dev'); +define('MYAAC_VERSION', '0.7.3'); define('DATABASE_VERSION', 19); define('TABLE_PREFIX', 'myaac_'); define('START_TIME', microtime(true)); diff --git a/install/steps/5-database.php b/install/steps/5-database.php index 580eaa6d..56f7912c 100644 --- a/install/steps/5-database.php +++ b/install/steps/5-database.php @@ -11,7 +11,8 @@ if(!isset($_SESSION['var_server_path'])) { } if(!$error) { - $content = " $value) { if(strpos($key, 'var_') !== false) @@ -218,11 +219,6 @@ if(!$error) { if(query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL;")) success($locale['step_database_adding_field'] . ' players.comment...'); } - - if(!fieldExist('is_sample', 'players')) { - if(query("ALTER TABLE `players` ADD `is_sample` TINYINT(1) NOT NULL DEFAULT 0;")) - success($locale['step_database_adding_field'] . ' players.is_sample...'); - } } if(!$error && (!isset($_SESSION['saved']))) { @@ -248,9 +244,6 @@ if(!$error) { $content .= PHP_EOL; $content .= '$config[\'cache_prefix\'] = \'myaac_' . generateRandomString(8, true, false, true, false) . '\';'; $content .= PHP_EOL; - $content .= '// place for your configuration directives, so you can later easily update myaac'; - $content .= PHP_EOL; - $content .= "?>"; $file = fopen(BASE . 'config.local.php', 'a+'); if($file) { diff --git a/install/steps/7-finish.php b/install/steps/7-finish.php index 75d974ba..7e41f44d 100644 --- a/install/steps/7-finish.php +++ b/install/steps/7-finish.php @@ -52,7 +52,12 @@ else { } else { $new_account = new OTS_Account(); - $new_account->create($account); + if(USE_ACCOUNT_NAME) { + $new_account->create($account); + } + else { + $new_account->create(null, $account_id); + } $new_account->setPassword(encrypt($password)); $new_account->setEMail($_SESSION['var_mail_admin']); @@ -113,37 +118,53 @@ else { if(fieldExist('deletion', 'players')) $deleted = 'deletion'; - $insert_into_players = "INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `lastlogout`, `balance`, `$deleted`, `created`, `hidden`, `comment`, `is_sample`) VALUES "; + $insert_into_players = "INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `lastlogout`, `balance`, `$deleted`, `created`, `hidden`, `comment`) VALUES "; $success = true; + $highscores_ignored_ids = array(); $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Rook Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Rook Sample', 1, " . getSession('account') . ", 1, 0, 150, 150, 4200, 118, 114, 38, 57, 130, 0, 0, 0, 0, 100, 1, 1000, 1000, 7, '', 400, 1, 1255179613, 2453925456, 1, 1255179614, 0, 0, UNIX_TIMESTAMP(), 1, '', 1);")) + if(!query($insert_into_players . "(null, 'Rook Sample', 1, " . getSession('account') . ", 1, 0, 150, 150, 4200, 118, 114, 38, 57, 130, 0, 0, 0, 0, 100, 1, 1000, 1000, 7, '', 400, 1, 1255179613, 2453925456, 1, 1255179614, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; + else { + $highscores_ignored_ids[] = $db->lastInsertId(); + } } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Sorcerer Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Sorcerer Sample', 1, " . getSession('account') . ", 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 0, UNIX_TIMESTAMP(), 1, '', 1);")) + if(!query($insert_into_players . "(null, 'Sorcerer Sample', 1, " . getSession('account') . ", 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; + else { + $highscores_ignored_ids[] = $db->lastInsertId(); + } } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Druid Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Druid Sample', 1, " . getSession('account') . ", 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 0, UNIX_TIMESTAMP(), 1, '', 1);")) + if(!query($insert_into_players . "(null, 'Druid Sample', 1, " . getSession('account') . ", 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; + else { + $highscores_ignored_ids[] = $db->lastInsertId(); + } } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Paladin Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Paladin Sample', 1, " . getSession('account') . ", 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 0, UNIX_TIMESTAMP(), 1, '', 1);")) + if(!query($insert_into_players . "(null, 'Paladin Sample', 1, " . getSession('account') . ", 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; + else { + $highscores_ignored_ids[] = $db->lastInsertId(); + } } $query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Knight Sample')); if($query->rowCount() == 0) { - if(!query($insert_into_players . "(null, 'Knight Sample', 1, " . getSession('account') . ", 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 0, UNIX_TIMESTAMP(), 1, '', 1);")) + if(!query($insert_into_players . "(null, 'Knight Sample', 1, " . getSession('account') . ", 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 1, 1000, 1000, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 0, UNIX_TIMESTAMP(), 1, '');")) $success = false; + else { + $highscores_ignored_ids[] = $db->lastInsertId(); + } } if($success) { @@ -171,6 +192,20 @@ else { error(Spells::getLastError()); } + $content = PHP_EOL; + $content .= '$config[\'highscores_ids_hidden\'] = array(' . implode(', ', $highscores_ignored_ids) . ');'; + $content .= PHP_EOL; + + $file = fopen(BASE . 'config.local.php', 'a+'); + if($file) { + fwrite($file, $content); + } + else { + $locale['step_database_error_file'] = str_replace('$FILE$', '' . BASE . 'config.local.php', $locale['step_database_error_file']); + warning($locale['step_database_error_file'] . '
+ '); + } + $locale['step_finish_desc'] = str_replace('$ADMIN_PANEL$', generateLink(ADMIN_URL, $locale['step_finish_admin_panel'], true), $locale['step_finish_desc']); $locale['step_finish_desc'] = str_replace('$HOMEPAGE$', generateLink(BASE_URL, $locale['step_finish_homepage'], true), $locale['step_finish_desc']); $locale['step_finish_desc'] = str_replace('$LINK$', generateLink('http://my-aac.org', 'http://my-aac.org', true), $locale['step_finish_desc']); diff --git a/system/functions.php b/system/functions.php index 422e31df..8cb6f2b0 100644 --- a/system/functions.php +++ b/system/functions.php @@ -971,7 +971,7 @@ function getTopPlayers($limit = 5) { if(fieldExist('deletion', 'players')) $deleted = 'deletion'; - $players = $db->query('SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` < ' . $config['highscores_groups_hidden'] . ' AND `is_sample` = 0 AND `' . $deleted . '` = 0 AND `account_id` != 1 ORDER BY `experience` DESC LIMIT 5')->fetchAll(); + $players = $db->query('SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` < ' . $config['highscores_groups_hidden'] . ' AND `id` NOT IN (' . implode(', ', $config['highscores_ids_hidden']) . ') AND `' . $deleted . '` = 0 AND `account_id` != 1 ORDER BY `experience` DESC LIMIT 5')->fetchAll(); $i = 0; foreach($players as &$player) { diff --git a/system/init.php b/system/init.php index 3a29aa37..0067c7d4 100644 --- a/system/init.php +++ b/system/init.php @@ -148,6 +148,11 @@ else $config['data_path'] = $tmp; unset($tmp); +// new config values for compability +if($config['highscores_ids_hidden'] == null) { + $config['highscores_ids_hidden'] = array(); +} + // POT require_once(SYSTEM . 'libs/pot/OTS.php'); $ots = POT::getInstance(); diff --git a/system/pages/highscores.php b/system/pages/highscores.php index c262a3c6..57f78029 100644 --- a/system/pages/highscores.php +++ b/system/pages/highscores.php @@ -121,16 +121,16 @@ if($skill <= POT::SKILL_LAST) { // skills POT::SKILL_FISH => 'skill_fishing', ); - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . $outfit . ', ' . $skill_ids[$skill] . ' as value FROM accounts,players WHERE players.is_sample = 0 AND players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND accounts.id = players.account_id ORDER BY ' . $skill_ids[$skill] . ' DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . $outfit . ', ' . $skill_ids[$skill] . ' as value FROM accounts,players WHERE players.id NOT IN (' . implode(', ', $config['highscores_ids_hidden']) . ') AND players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND accounts.id = players.account_id ORDER BY ' . $skill_ids[$skill] . ' DESC LIMIT 101 OFFSET '.$offset); } else - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',value,level,vocation' . $promotion . $outfit . ' FROM accounts,players,player_skills WHERE players.is_sample = 0 AND players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND players.id = player_skills.player_id AND player_skills.skillid = '.$skill.' AND accounts.id = players.account_id ORDER BY value DESC, count DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',value,level,vocation' . $promotion . $outfit . ' FROM accounts,players,player_skills WHERE players.id NOT IN (' . implode(', ', $config['highscores_ids_hidden']) . ') AND players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND players.id = player_skills.player_id AND player_skills.skillid = '.$skill.' AND accounts.id = players.account_id ORDER BY value DESC, count DESC LIMIT 101 OFFSET '.$offset); } else if($skill == 666 && $config['otserv_version'] == TFS_03) // frags { $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . $outfit . ',COUNT(`player_killers`.`player_id`) as value' . ' FROM `accounts`, `players`, `player_killers` ' . - ' WHERE players.is_sample = 0 AND players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id = player_killers.player_id AND accounts.id = players.account_id' . + ' WHERE players.id NOT IN (' . implode(', ', $config['highscores_ids_hidden']) . ') AND players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id = player_killers.player_id AND accounts.id = players.account_id' . ' GROUP BY `player_id`' . ' ORDER BY value DESC' . ' LIMIT 101 OFFSET '.$offset); @@ -138,10 +138,10 @@ else if($skill == 666 && $config['otserv_version'] == TFS_03) // frags else { if($skill == POT::SKILL__MAGLEVEL) { - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',maglevel,level,vocation' . $promotion . $outfit . ' FROM accounts, players WHERE players.is_sample = 0 AND players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY maglevel DESC, manaspent DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',maglevel,level,vocation' . $promotion . $outfit . ' FROM accounts, players WHERE players.id NOT IN (' . implode(', ', $config['highscores_ids_hidden']) . ') AND players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY maglevel DESC, manaspent DESC LIMIT 101 OFFSET '.$offset); } else { // level - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,experience,vocation' . $promotion . $outfit . ' FROM accounts, players WHERE players.is_sample = 0 AND players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY level DESC, experience DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,experience,vocation' . $promotion . $outfit . ' FROM accounts, players WHERE players.id NOT IN (' . implode(', ', $config['highscores_ids_hidden']) . ') AND players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY level DESC, experience DESC LIMIT 101 OFFSET '.$offset); $list = 'experience'; } }