userinfo is served from a 30s session cache (Session::PopulateVar), so a
freshly saved preference (e.g. the large-map checkbox) only reflected after
the cache expired or a re-login — the box appeared unchanged on OK.
Invalidate the per-user session cache after saving so the redirected page
reloads the values from the DB right away.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The ft=p2 handler (Profile::updatePreferences) only saved the language
column, so the large-map checkbox — and v1-v6 / timezone / tformat — never
persisted: the box reverted to unchecked on OK. The full save block in
preference.tpl was dead code (the handler header()+exit before it runs).
Persist the whole preferences form in the handler (checkboxes as 0/1,
timezone/tformat as validated ints) so the Large map preference actually
sticks. The other fields are stored now and applied in-game in later
steps of #198.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fix some error programing code and redesign special medals, tribe medals, mh medals, taskmaster medals, natars medals, nature medals, protection medals, etc. Add some language code in Profile.php and preference.tpl. Change some description in struct database for Nature and Taskmaster
Incremental Refactor Automation (starvation split in more methods) & Database (cache & checkAllianceEmbassiesStatus refactor), Fix a bug in Alliance.php (now you cannot kick alliance leader)
Profiles can't be hacked anymore, added some security control and
removed those malicious "hidden uid"
Errors now are now shown correctly while editing the profile
The level of the research you're doing in the Blacksmith/Armoury is now
displayed in the research queue
Hugely fixed the battle system, a big thanks to kirilloid for helping me
by providing his formulas :)!
Some general clean-up and bug fixing of little errors
Added some string constants to the language file (en.php)