* vastly improved input validation
* content and type validation occurs when filter is created
* contextual filters like itemTypes are now only applied in context
* 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
- removed web-setup
- new CLI parameters
--account : create initial account(s)
--siteconfig : edit php/aowow config values
--dbconfig : set up db connection
--sql : create db content from world/dbc-tables
--firstrun : [NYI] step by step initial setup
- some fixes by the wayside
* display required arena bracket for extendedCost
* achievement chains are searchable again
* category trees for factions should now be correct
* trainer tab on spell detail page reapeared
* userMenu item 'Settings' no longer breaks the page
* display abilities of shapeshift in tab on spell detail page
* corrected reading ?_sourcestrings for titles
* fixed error on race detail page
* added simple descriptions to skill detail page
* fixed tab "reward from" (achievement) on title detail page
* fixed alphabetical order of some filter-dropdowns
* fixed skill colors for spells
* fixed power display for rune-based spells, that also cost mana
* added more information to zones
* also check mail_loot_template for achivements
* fixed bug, where loot_template-ids would be reused for multiple templates
* display sourcemore for pvp-sources
- implemented Memcached (untested though (tough luck trying to get it to run using win))
- added config value to select caching method (default: filecache; setting debug to 1 will still disable caching)
- implemented url-param 'refresh' to clear cache for this page
- reviewed and used objects PageTemplate and Locale
- removed associated workarounds
- replaced ~12k tabs with ~48k spaces
- fixed some localization errors
- whoops, forgot to update some Util::$pageTemplate calls to $this
- unified lv handling
* data should always be in the same structure now
* use of tabs is determined by the template, unless forced)
- Currency: fixed path on detail page
- Profiler: fixed use of dataKey
- Util::alphaMapCheck() 'images/' was removed long ago..; alphaMaps are now in 'cache/'
- Item: REALLY fixed markdown in tooltips
- readded quest/quests, zones
- delayed filter-evaluation, also linked filterObj to page to be applied to cacheKey
- added check for modulo calculation with floats (fixes "0 years" - duarions)
Quests:
* added category-locales
* creating objectives shouldn't be quite as intensive anymore
- rewrote currencies, achievements, events, factions
- GenericPage:
* moved more checks from Util
* structured and commented GenericPage to be easier to comprehend
* added GenericPage::postCache() to modify cached data before display (e.g. update time for events)
- fixed:
* parsing events from markdown (e.g. articles)
* huge padding of minibox headings (css)
* Loot passing jsGlobals to template
* ItemList::getExtendedCost passing jsGlobals to template
* categories for factions
* conflicting GenericPage::$subject when displaying 'notFound'
* load of typos
- added relTabs to detail page
achievements:
- implemented event-filter
- filter will now always apply
- years are now one day shorter (and time formating will no longer bug out)
- some filter are still missing
- didn't bother with the mapper yet
- zoneOrSort is still inconsistent for instances
- merged all queststarter/-ender into one single table
- removed $template-parameter from addGlobalsToJscript and access it through Util
- dropped error.tpl and 404.tpl and moved the error-text to aowow_articles
- misc improvements here and there
groupable
- force profile.lastupdated to new Date; trial and aerror on
raid-progress; remove 'profile=summary' from generated pages (is generated by
jscript)
- fixed some misc errors
detail and listview for NPCs (without spawns, spells and some filters)
forcing the template to be more generic
- noticed, that the loot display is off. It happens with different modes
on a creature, that has the same loot but different chances or quantities
... analyzing
- do not display serverside events in calendar
- include gems in item comparison .. also parse their stats in setup
- filters use conditions and are more restrictive
- changed DBSimple version so it uses mysqli (mysql is deprecated as of php 5.5)
- moved each filter class to matching type; file for baseType and BaseFilter
- baseType querys are somewhat modular, trying to avoid ridiculous joins that WILL occur sometimes (especially with items) as far as possible
- rewrote BaseType::iterate() to be a generator and yield references (requires php 5.5)
- reduced usage of bandaid BaseType::reset()
- removed Util::getIdFieldName() which was even more of a bandaid
- discovered DBSimple::selectPage() and consequently removed $matchQuery as they are now obsoloete
Util:
- added trainerTemplate lists for future use with trainers and trained spells
misc. forgotten and/or broken stuff here and there
- consequentially prepended $WH to those functions (since i do have issues with regEx, some errors may occur)
* simplified including required JS and CSS files per page
* replaced old Menu-class with (almost) current version. Since it relies heavily on jQuery it is also loaded.
I'm not overly happy with passing the templateObject to each typeObject, but it works .. for now.
Effectively this should reduce db-lookups as each type should be looked up only twice at max (once for relevant data on the page and maybe again to get related jsGlobals for the template)
also removed BaseType::addRewardsToJscript() get it with BaseType::addGlobalsToJscript() and the appropriate addMask
* added ListviewHelper::getSetFields() wich is more appropriate in some cases (like reagents for spells should be shown even if they are all the same)
* load bricks as needed, removed the if-blocks (maybe add the filename to every TypeClass..?)
- plus food and talents, minus zones (those are just madning)
- also addes some bc/classic information on pet scaling
* mucked about the modelviewer, always uses high quality version .. should muck about some more to add animation-info and remove the java-option
* fixed some minor issues in spell maxaffectedtaregs in spell is displayed properly and erronous adding all classes/races to globals if none where selected
* created own table for creatures which unifies creature_template, locales_creature, creature_template_addon and some creatureDisplayInfo.dbc information
* more work against listviews and general structure in global.js .. should probably split this file by class and reassemble it for use
- preparing tooltips (locks to Util & localization)
quests & npcs:
- implemented tooltips
spells:
- fixed tooltip-header
- stat gain inclued periodic healing auras (item: 17743 for example) and spellHeal no longer applies spellPower
achievements:
- path is less prone to errors
events:
- disabled tab as it was causing js-errors
obligatory cleaning up everywhere
- added some more lasses for (for now) static use
Achievements:
- moved setup to separate file (not included yet (and shouldn't have been))
- unified use of the infobox.tpl
Items:
- Tooltip-layout changes, when used as standalone or incorporated in other tooltips. This can now be considered.
Util:
- added utf8-safe Util::ucFirst()
- added Lang::getRequiredItems() for use with spell - equippedItem[Sub]Class
Templates:
- minor wording fix (link -> links)
Markup:
- [class=X], [race=X], [money=X] added (i really shouldn't have done this)
- [color=X] now also accepts r1 - r4 as parameter
obligatory minor stuff here and there
- dropped property "names" and changed getField to return localized Fields if specified. Dropped stupid getNameFieldName() in the process as it was now obsolete.
- made property "matches" private. Access through getMatches() that will execute the query _only_ when needed (which is basically always anyway (so much for optimization))
SpellList: parsing
- ""fixed"" behavior of the amount-switch $l when used on russian text. It has 3 options instead of 2, no idea what the last one is for though
- fixed extra leading whitespace occuring when parsing formulas
Lang:
- removed offset from getMagicShools(), apparently it is unneeded :o
Util:
- changed the output of formatTime() in the long version to be more correct in layout
- initialized values in parseTime() to prevent empty strings returned by formatTime()
- added asBin() and asHex() - helper to improve display of bitmasks (Spells are coming!)
- update Spell-Effects/Auras and added misc strings to display different MiscValue-content
Filter:
- removed escapes from $_POST-handler. If the input is erronous it should be corrected/ignored/noted by the $_GET-handler
Smarty:
- added optinal parameter to saveCache(), loadCache() to better handle filter variables
Search:
- changed $maxResults to 10 for OpenSearches in an effort to lower execution time and appied limits to all queries
- changed result calculation for OpenSearch. It should now stick to it's limit of 10 results for the list
- simplified WorldEvent search
global.js:
- backported function to parse title-tag of dfn-elements into mouseover-tooltips
- shortened document.getElementByTagName(x) calls to gE(document, x)
- make offset optional, when converting list to mask
Items:
- fixed display of inventory type for robes and ranged weapons
Spells:
- parsing: $charLevel and $interactive are now properties of spell.
- parsing: fixed durations, passing the time-unit seperately to allow for evaluation of the actual value
- parsing: fixed gender-specific formating [ >male/female< to <male/female>]
- parsing: usage of is_numeric() instead of (float) as 0 is a fucking valid numeric (caused some formulas to not be evaluated *grrr*)
- parsing: lastValue-references now skip to the next previous \d instead of being stopped by random \w (like time units)
- implemented forgotten display of runes for spellCost
- fixed castTimes for most hunter shots (they are -1000 for some reason)
- fixed display of required stances (sometimes they are not actually required but show, when you are _allowed_ to use a spell in certain forms)
- improved formating of tooltips-js (no visual change)
ListViews:
- pass '_truncated' separately. there are nough cases in which 'note' gets send without truncated results
misc changes here and there
this allows for better flag matching i.e. [(flags & 0x4) = 0]
furthermore it is now possible to group conditions to a subset with a different link
* hasDiffCategories() -> hasDiffFields(array $fields)
now returns a bitmask of the array keys what field does diff