Commit Graph

52 Commits

Author SHA1 Message Date
Sarjuuk
557638b3fe PHP8/Misc
* reduce redundancy after merge
2021-10-24 17:33:47 +02:00
jackpoz
f9584f09b5 Handle is_callable returning false with instance methods on static types since PHP 8
See https://php.watch/versions/8.0/non-static-static-call-fatal-error
2021-10-24 17:15:26 +02:00
Sarjuuk
6cabfd3864 Misc/Cleanup
* 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
2020-05-24 15:04:42 +02:00
Sarjuuk
fd04e9f977 Implemented new type: mail
* display and link clientside mails to other types and events
 * fixed favorites menu for new types
 * fixed sorting column triggered spells in enchantment listview
 * some misc cleanups
2020-02-14 00:36:41 +01:00
Sarjuuk
d9cd24026c PHP/Core
* enforced v7.1 compliance, preparations for v7.2
 * removed deprecated usage of each()
 * prefer array deconstruction via [] instead of calling list()
 * try to catch failed session_start()
 * prefer ... - Token instead of calling func_get_args() func_num_args()
 * enforce return types in AjaxHandler
 * revision push
2018-11-29 00:45:19 +01:00
Sarjuuk
e0150feda6 implemented type areatrigger
* staff only
2018-07-16 21:08:18 +02:00
Sarjuuk
81335ad6dc Profiler/Reputation
* add missing base values for each race/class
2018-04-02 15:18:28 +02:00
Sarjuuk
0ff0e5b59e Profiler/Frontend
* add pages and templates to display arena teams, guilds and chars
2018-03-22 18:17:16 +01:00
Sarjuuk
959d0ace0b ListPages/Filter
* vastly improved input validation
 * content and type validation occurs when filter is created
 * contextual filters like itemTypes are now only applied in context
2017-04-23 20:20:34 +02:00
Sarjuuk
ee568da6ec IconDB
* initial implementation
 * this includes a complete reindexing of everything touching icons
 * this also means, no linking to red-rocket-site though, they index them differently
2017-03-29 21:48:14 +02:00
Sarjuuk
9516affde5 topUsres
* implemented top users overview
 * w/o achievements, uploads, forum posts, yadda yadda
2017-03-21 16:22:17 +01:00
Sarjuuk
5360b09d0f Articles
* distinguish between articles for dbpage and other articles
 * can be served by url instead of arbitrary picked type/typeId-pair
 * save access to article in db (not used yet)
 * serve correct g_pageInfo if on article-page

SiteReputation/Privileges
 * implemented info pages
2017-03-19 23:41:49 +01:00
Sarjuuk
20a1829317 implementation of Sound DB
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!
2017-03-06 15:16:34 +01:00
Sarjuuk
99fdad29dd AjaxHandler
* separated into appropriate subclasses
* unified sanitizing of $_GET and $_POST data using build in filter_input()
* index now always tries to resolve page calls with ajaxHandler first and as a page last

minor bug-fixes to bugs that wre not reported yet, because they didn't occur yet
(e.g.: nobody tried to compose a comment with >7500 characters yet)
2015-11-08 23:14:17 +01:00
Sarjuuk
7f08708555 added enchantments to DB
* 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
2015-08-03 20:05:39 +02:00
Sarjuuk
6f59afe8e6 DB/Emotes
* 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)
2015-07-21 01:07:21 +02:00
Sarjuuk
0cb5d6b896 CLISetup
* added msg-level INFO
  * changed some WARN-level messages to INFO
Util
  * added function to handle directories aowow wants to write to / read from
SiteConfig
  * group options to be less cluttered
  * allow empty strings (numerical values must still at least be 0)
  * renamed account related config values to be make more sense
  * make cache path configurable
  * make session save path configurable - use this to avoid the garbage collect cron job on Debian or Ubuntu, that cleans sessions and only depends on your php.ini (NOTE: putting this inside a web-enabled directory is a risk!)
2015-07-09 21:04:00 +02:00
Sarjuuk
72c4cb2e8b CLISetup:
- access setup via 'php aowow'
 - index.php is now strictly for page display
2015-06-02 23:37:33 +02:00
Sarjuuk
ebc7a9bee8 implemented user page
well .. most of it anyway
2015-05-20 22:36:42 +02:00
Sarjuuk
929cb95bcd - removed now obsolete sql-updates
- set revision to 1
2015-05-13 17:19:34 +02:00
Sarjuuk
51f2828f6f - moved shared setup functions from FileGen to new CLISetup
- 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
2015-05-11 22:44:54 +02:00
Sarjuuk
acbe969b8d Setup:
- setup can now be run from CLI. Use "> php index.php --help" to start off
- updated logging for use with CLI
- added generators for client imagery (icons, maps, talents, ect)
DBC:
- parsed DBCs are now expected in the Aowow-DB, prefixed with dbc_* (they are joined with
  these tables, so its easier to have them here altogether)
- setup/db_setup_3.zip may be reapplied (optionally)
- alternatively aowow will now extract you own DBCs alongside your textures.
  They will be parsed and saved to DB, as needed.
Misc:
 * HOST_URL and STATIC_URL will now be determined automaticly once and
 * then saved to ?_config (setup by CLI requires these to be set)
Spell:
 * added glyph-symbol to infobox for glyph-related spells
2015-01-20 23:17:37 +01:00
Sarjuuk
0b46d15a2a - implemented screenshot handling, inclding
* editing after upload
  * reputation gain for approved uploads
  * moderator interface (albeit a bit wonky)

I still do not speak French, Spanish or Russian, so translations are
appreciated
2014-11-12 20:28:46 +01:00
Sarjuuk
f413089328 Admin:
* added pages config and phpinfo
 * config can also set php-vars (restrictions apply)
 * commented menu items that will not be implemented in near future
Misc:
 * deleted a greedily grabbed icon, unrealated to aowow
2014-11-10 18:30:31 +01:00
Sarjuuk
ba151fefcd - check for required extensions at startup
- die hard if the php version is too low (otherwise syntax errors will occur)
2014-11-09 20:29:20 +01:00
Sarjuuk
feaee59cd0 - converted articles for MorePages to use STATIC_URL (also neutralized some self-references)
- added config-option to restrict available locales
- fixed opensearch suggestions by generating strict json
- include TalentCalc.css as lowerCase (fixes display under *nix)
- some minor formating
- Setup:
 * added some additional files to be generated (they required STATIC_URL or HOST_URL to be set)
 * moved class Locale from global.js to own template and generate it with CFG_LOCALES
 * changed urlParam (?build=script): may be empty (builds everything) or specific scriptNames chained together with ; (?build=script1;script2)

you are required to run the following command to regenerate files affected by these cahnges
?build=demo;power;realmMenu;searchboxBody;searchboxScript;searchplugin;locales
2014-09-13 23:26:01 +02:00
Sarjuuk
1dfc469d43 - implemented comments (in general and as preview on account page & latest comments)
- partially implemented site reputation (required to grant privileges to comments)
- reworked 'home'-page (the news-box is now as configurable as you want)
- removed some ancient compatibility-code for IE67 (srsly, its 2014!)
- dropped associated stylesheets, reviewed the rest
- split some user-restrictions to trigger on insufficient siteRep
- added text-page: Markup-Guide
- implemented new class to handle Markup

- bugfixes [TM]

- also you will need to reapply the db-dumps (you may want do save account*, news,
reports, ..)
2014-07-30 22:10:34 +02:00
Sarjuuk
6acee41e3d Javascript:
- 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
2014-07-24 17:52:46 +02:00
Sarjuuk
0af712a8ff removing smarty - part XIV (only one more..)
- added some forgotten account-srings
- fixed an error handling ItemFilter /w upgradeItems + markdown appearing in tooltips
- relaxed session-regeneration (only regenerates on status changes (signin/-out)), fixes losing the session, when opening multiple tabs at once
- striped smarty from profiler (only cleanups remaining)
- moved profiler-ajax to AjaxHandler
- created a (dummy, for now) ProfileClass to handle Chars and Profiles
2014-07-17 16:48:05 +02:00
Sarjuuk
a82aa2b6ae removing smarty - part XIII (almost there)
- reimplemented Utilities-Page and Account-Page
- moved account-ajax to ajaxHandler
- AjaxHandler::handle() can no longer call itself, if the parameter is empty
- cache is now compressed (has a negligible delay)
- revisited User-Class / Accounts:
 * implemented mail-confirmation (be sure to configure your server appropriately)
 * implemented recovery of password or username
 * there are now 3 options to auth against: 1) aowow-DB (default); 2)
   wow-auth-DB; 3) user-defined script (SOAP or similar exotic methods)
 * dropped the aowow-cookie, it relies on php-sessions now
 * reworked how bans are handled (can now also ban from upload, rate, comment)
- fixed enhancements on itemTooltips

account related localization for FR, ES and RU is lacking (help is appreciated)
_account and _account_banned have changed and are incompatible with the prvious version
2014-07-13 12:10:20 +02:00
Sarjuuk
ec5589f323 removing smarty - part X
readded spell/spells
- changes to Lang, since it can no longer access the template
- set required php-version to 5.5.0 (generators were added and are essential to aowow)
- display stats in footer to staff only
2014-07-02 20:19:57 +02:00
Sarjuuk
56934dbe51 removing smarty - part IV
- readding TalentCalc, PetCalc, CompareTool, Maps, More-Pages
2014-06-17 21:29:20 +02:00
Sarjuuk
a5ae244216 removing smarty - part III
- convert first pages to extend GenericPage (Race/s; Class/es; Main)
- added new stack-rule from TC to spells
2014-06-15 23:16:10 +02:00
Sarjuuk
23e831be25 - removed fixed fields in lv-bricks; title sources and achievement rewards thus are working again
- moved search to /pages
- moved g_dataKey to header.tpl and apply it on nessecary pages (restores TalentCalc)
- Events: fixed relTabs with arbitrary data, when holidayId was 0
- CharClass: get heroClass-status through flags; dropped related DB-field
- Achievements: fixed some criteria not being displayed in tooltips
- Community: applied long forgotten changes to tplVars and use of uppercase ids
- Titles:
 * exclude unused titles from listview
 * restored 'links'-button on detail-page
- Quests:
 * added 'slain' fro proxy-npcs
 * use more wflags (&1 needs more research)
- Factions:
 * fixed order of categories
 * fixed params to QuestList for relTabs
- Profiler:
 * enabled 'profiles that have this char as source' in Profiler
 * removed the exampelChar from project
 * further documented more expected variables; includes/excludes-handling still not entirely clear
 * created datasets for reference data (create with ?build=profiler)
- Localzation:
 * localized profiler for loc3
 * corrected some single words
 * localized custom reward rate - table in factions
- AjaxHandler:
 * new handler for ajax-requests *duh*
 * dropped data.php (index.php now calls to AjaxHandler for these cases)
- moved reading of static files to own function Util::loadStaticFile()
2014-04-13 23:39:34 +02:00
Sarjuuk
7af4931b58 implemented details, lists and filters on quests
- 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
2014-04-05 22:04:27 +02:00
Sarjuuk
93cc42407c menu more and tools
- items: allow 'upg' to be an array
- filter: fixed logic error in checks
- Markup: prevent handling of [menu], as PageTemplate is nyi
- Power: advanced features (hide reagents or sellprice; recoloring,
  renaming, iconizing of links)
- search: side-icon for titles
- smarty: added template-vars to cache (has to be fixed sooner or later)

- identify as HTML5 (fixed a strange bug with displaced list-pegs)
- removed several typos
2014-03-22 20:39:16 +01:00
Sarjuuk
3718ca6b86 moved config to databse (except databse credentials of course)
added overlooked changes to template or typos
2014-03-19 00:15:58 +01:00
Sarjuuk
f2ff2346fa fixups required for successfull setup 2014-03-15 01:05:52 +01:00
Sarjuuk
63895e838b implemented 'serverside cookies'
minor:
 - icons in summary-dropdown menu
 - improved handling of non-standard specs for weight-presets (mostly due
   to Profiler)
 - probably some things i forgott... :x
2014-03-14 16:13:30 +01:00
Sarjuuk
edaaba6139 internalErrors renamed; can now also be set to apply to certain userGroups 2013-12-15 23:49:07 +01:00
Sarjuuk
5e785d6c78 omgishouldntbedoingthis 2013-11-24 23:15:15 +01:00
Sarjuuk
2d736fc785 item another one >.< 2013-10-09 21:30:28 +02:00
Sarjuuk
360f2e6878 - work agains items + some random fixes .. use own item-table
- 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
2013-09-22 18:20:47 +02:00
Sarjuuk
684b2f2778 - Tooltip class from global.js to basic.js (added nessecary prefix)
- miscTools:
    * implemented random DB-Page
    * others are placeholder (at least no errors are generated)
- Articles / Infobox:
    * dropped aowow_article_items, parse nessecary globals directly from article or infobox
    * articles default back to english if no target articles is absent
    * quickinfo from db is only used if no auto-generated info is available
- CharClass:
    * implemented detail-page
    * added basic articles per class (english only)
- generic lv-page
    * now accepts multiple listviews (as required by miscTools)
    * can display text and title
- Markup.js:
    * exchanged to current version (yet to be looked over, but basic articles are displayed properly for now)
    * removed some hacks that were nessecary for the old Markup / Menu
- Listview
    * made some more code readeable, no major changes
    * calendar-template is now functional (WorldEvents use it)

...squashing bugs left and right
2013-09-01 15:37:40 +02:00
Sarjuuk
e834f1aee3 * moved duplicate utility/dom-functions from global.js to basic.js
- 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.
2013-08-03 21:09:23 +02:00
Sarjuuk
732226b44a BaseType:
- 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)
2013-04-26 17:02:35 +02:00
Sarjuuk
77889459b5 setup script for itemsets
a few things to consider:
 - the virtual Itemset-Ids will not be the same as wowheads. Which dosn't really matter imho..
 - the Arena-Sets all have their base names. I've to admit, i'm not too fond of the idea to collect 40 prefix-strings and attach them manually. But i see no other option.
 - availability for players is not supported. I dread the thought of crawling through vendor and loot-tables for every .. single .. item!
2013-03-23 16:40:47 +01:00
Sarjuuk
58316679bf ordered bricks somewhat
simple listview-pages now use one shared template (instead of having the same file multiple times)

some bug fixing here and there
 - achievement: faction is no longer out of range (need to reparse the faction :/)
 - item: quality is prepended to the name again and wont be left out in case of heirlooms (is 0)
 - general: forgot to change some error()-calls in index
 - and some more wich i forgot..
2013-03-23 13:40:15 +01:00
Sarjuuk
edd0ff5209 search: initial implementation
currently searchable are:
 - classes
 - races
 - titles
 - currencies
 - items
 - itemsets
 - achievements

directly or as &opensearch

&json is yet to come, yes that means ?compare cant find any items
2013-03-05 22:28:15 +01:00
Sarjuuk
8dc836f91d batch changes
- TYPEID_* => TYPE_
- AddSelfToJScript => AddGolbalsToJScript
- require, require_once, include with or without brackets => require <file>;
2013-01-25 18:02:05 +01:00