* detatch from User and Util and move to its own enum class
* added definitions for all locales the 12340 client could in theory have
* this is incompatble with the Intl extension
* version bump and php requirement bump
* fixed several deprecation notices and warnings from MySQL8, most notably:
- SQL_CALC_FOUND_ROWS: stopped using DBSimple::selectPage and query 'SELECT COUNT(*) ...' separately where needed
- ON DUPLICATE KEY UPDATE ... VALUES(): use row alias for new values instead of VALUES function
- boolean shorthands to long form (&& -> AND, etc)
* spell: resolve MiscValue for SPELL_AURA_MOD_INVISIBILITY
* search: do not double escape page title
* profiler: fixed typo, causing shaman spirit weapons to be applied _everywhere_
* convert configuration from list of constants to object
* fixes config changes not applying on cli whithout closing and reopening again
* config variables are no longer embedded in localization text
* have creature emotes in the same system (on a negeative index) as SAI links were uselessly pointing to player emotes before
* player emotes are now gendered
* display two more cases of who points at whom when using a player emote
* use and link event sound from emote
* display more misc info
* append a filemtime timestamp to js/css files to work around browser caching after update
* shuffle script handling around a bit
* also user pages cant have community content
* also fix breadcrumbs on items page
* colAddins should be null if not in use
* fix index warnings in search + profiler
* cast url param 'locale' to int for all uses
* fix breadcrumbs for sounds page
* fix determining actionOwner for SmartAI
* moving commonly used strings to defines
* moving commonly reused/similar page generation functions to the parent
* generally using consistent return types, more type hints and less strings
* prevent browser context menu when right clicking on UI elements with their own context menus
* fixed menu path for icons
* vastly improved input validation
* content and type validation occurs when filter is created
* contextual filters like itemTypes are now only applied in context
* display db-entries as disabled or unavailable if appropriate
* affects now achievements and quests in addition to spells
* flag items without source as unavailable
* flag quests without starter als unavailable
Privileges
* i guess i forgott to add the template...
...among other things
Client sounds are cross-referenced with as many other DB-Types as possible. Including, but not limited to:
* Character VOs (Errors, Emotes)
* Creature VOs (Boss Dialogue)
* Zone Music and Ambience
* Sounds triggerd by spells
* Sounds from general item/spell usage, creature behavior
Restrictions:
* only one locale is supported. Choose wisely!
* added forgotten mapper strings for esES, ruRU, frFR
* readded default name for screenshots and videos tab
* fixed referencing not set $id in opensearch (wich now displays icons once again)
* fixed referencing a long removed variable in admin=screenshots, preventing delete operations
* removed most templates by sensibly restructuring lvTab-data. Util::toJSON() does the rest.
* taught Util::toJSON() to recognize values prefixed with $ as js-code
* use Util::toJSON whenever possible
* misc
- mail attachments are displyed again
- always show all currency rewards on Quest-LVs
- suppress an error, when encountering unused ItemMods
* replaced some more uses of string functions with multibyte equivalents where it might matter
note: i didn't touch the spell-tooltip parser as it seems to work as intended regardless
* added markdown [enchantment=123] and [emote=456]
* updated item_stats to accomodate enchantments
* updated tables for community content to handle emotes and enchantments
Spells:
* getStatGain() now reads aura 123 as Spell Penetration
* fixed error in tooltips when displaying effect ranges (e.g. 10 - 10 damage)
* display the miscValue of aura 50, 102, 131 and 180 human readable
Emote:
* no longer displays empty quickInfo on detail page
* detail page no longer pretends to be a pet
Setup:
* sync no longer regenerates all tables/files, when the supplied world-table affects nothing
* fixed dependancy of ?_source from ?_achievment (damn plural-s)
Misc:
* FireFox doesn't understand <node>.innerText, use <node>.textContent instead
please refresh the affected tables and files
php aowow --sql=itemenchantment,item_stats
php aowow --build=enchants,gems
* added emotes to DB .. why? just because!
* also added to search
* cross-linked achievements and emotes
* data is generated via: php aowow --sql=emotes
* setup requires GlobalStrings.lua (see README.md)
fixed sql-error in manager
Comments:
no longer appear as upvoted for anonymous user
can be voted on, again
Class detail page:
removed default limit on class ability query (300). now shows all spells
Filter/Items:
added missing table-prefix; fixed search for iconString
Spells/Search:
display triggered player abilities as misc. spells. (previously hidden)
Misc:
removed some obscure piece of old config
* replaced error-suppressions with proper checks
* log php errors to db
* use __callStatic() to access localization and thus handle erronous keys
- Setup:
* fixed some erronous filenames when generating icons
* increased alpha threshold for spawn maps (should improve spawn points)
- disentangled DB::Aowow and DB::World. Aowow should now be able to run
with DB::World being on a different server
- added missing faction transfer pendants (title/quest/faction/..)
- fixed extended costs for specific vendors
- implemented secondary tooltips with spawnPoints
- merged Mapper.js back into global.js
* fixed wrong id for Nexus Instance
* the ToC Dungeon no longer has a second layer
- fixed displaying waypoints as spawns
- images in pageText are now PNG instead of JPG to accomodate for transparency
* added customFlags to infoBox
Misc:
* moved no-cache header to separate utility function
* pages may now require the user to be authed as he can be authed AND
have no userGroups simultaneously
* minor changes to announcements
* show terms in quicksearch-box, when performing searches
* use trim() after urldecode() to catch urlencoded whitespaces
* check for empty search terms (wich occur with multiple adjacent whitespaces)