In order to reset seed for order:random, one had to specify at least one
order token. Most of pages didn't, effectively rendering random order
too persistent across navigation. This change makes sure that seed is
reset even if one doesn't specify any order token.
URLs of stylesheets and scripts are appended with current engine
version. This forces browsers to aggressively refresh the assets
regardless of any caching settings, whenever new version comes out.
- Jobs specify main privilege and sub privileges separately
Rationale: increase maintenance, restrict what can be done runtime
- Renamed ChangeUser* to EditUser* (consistency with EditPost*)
- Simplified enum names and configuration reading
- IJob interface members must be explicitly implemented
Rationale: reduce chances of forgetting something, or typos in
inherited method names
- Invalid privileges names in configuration yield exceptions
- False booleans were serialized as NULLs, which lead to problems with
queries like 'SELECT ... WHERE NOT x'
- Fixed anonymous uploads
- More robust integer and boolean parsing in jobs
- Moved thumbs folder to public_html/
- Users can supply custom thumbs of any size and the system will treat
them like normal image
- Removed distinction between various thumb sizes in file system
- Introduced custom rewrite rule, which isn't exactly good-looking, but
its benefits far outweigh its shortcomings
- Loading up to 75 times faster (was: 100-300ms, is: 4-10ms on my
machine) thanks to removal of PHP proxying