Commit graph

100 commits

Author SHA1 Message Date
Marcin Kurczewski
6af3a0e42b SQL overhaul: introducing tree-like queries
Reason: until now, PostSearchService was using magic to get around the biggest
limitation of SqlQuery.php: it didn't support arbitrary order of operations.
You couldn't join with something and tell then to select something from it.
Additionally, forging UPDATE queries was a joke. The new Sql* classes replace
SqlQuery completely and address these issues. Using Sql* classes might be
tedious and ugly at times, but it is necessary step to improve model layer
maintainability.

It is by no menas complete implementation of SQL grammar, but for current needs
it's enough, and, what's most important, it is easily extensible.

Additional changes:
* Added sorting style aliases
  - fav_count
  - tag_count
  - comment_count
* Sorting by multiple tokens in post search is now possible
* Searching for disliked posts with "special:disliked" always yields results
  (even if user has disabled showing disliked posts by default)
* More maintainable next/prev post support
2014-02-22 19:40:10 +01:00
Marcin Kurczewski
1624fd5f63 Tag and user list: a-z order is case insensitive 2014-02-21 20:24:06 +01:00
Marcin Kurczewski
705e3dfba1 Changed LOWER(?) to ? COLLATE NOCASE 2014-02-20 21:32:07 +01:00
Marcin Kurczewski
b86aaf90a3 Fixed and simplified tag autocompletion 2014-02-18 21:26:54 +01:00
Marcin Kurczewski
1352aba438 Fixed saving post original file name to DB 2014-02-18 18:35:58 +01:00
Marcin Kurczewski
532fe9f7e6 Added pagination to tag list 2014-02-16 20:10:38 +01:00
Marcin Kurczewski
18bfd6605d Searching: more robust entity counting 2014-02-16 20:10:38 +01:00
Marcin Kurczewski
c99596d12b Added last login date to users 2014-02-13 09:10:24 +01:00
Marcin Kurczewski
b22e74c0e9 Closed #72 2014-02-05 08:35:24 +01:00
Marcin Kurczewski
ac1997d4d0 Refactored search case sensitivity support 2014-02-01 09:54:46 +01:00
Marcin Kurczewski
d085ffe39a Closed #70 2014-02-01 09:51:37 +01:00
Marcin Kurczewski
100303173e Added comment editing support
In other news, editing a post doesn't reload page anymore
(yay for editing tags for Youtube posts)
2014-01-25 16:39:09 +01:00
Marcin Kurczewski
fd9433a2e3 Edit tokens moved to model 2014-01-25 15:09:20 +01:00
Marcin Kurczewski
56622b8e9d Last comments respect safety choice 2014-01-04 12:55:59 +01:00
Marcin Kurczewski
4a9cc4b3bc Fixed invalid SQL in some circumstances 2014-01-04 12:55:03 +01:00
Marcin Kurczewski
b1fb329fc7 Fixed silly bug
Statistics for each user in user list showed comment count instead of post
count.
2013-12-23 16:43:12 +01:00
Marcin Kurczewski
306c6478b4 Micro optimalizations
Saved 0.015s on various things, mostly thanks to new chibi-core caching
2013-12-23 10:10:03 +01:00
Marcin Kurczewski
8cfc2aeb2a Fixes for MySQL driver 2013-12-18 17:49:22 +01:00
Marcin Kurczewski
5607cfc353 Models rewrite; removed RedBeanPHP; misc changes
Pages load 1.5-2x faster
Exception trace in JSON is now represented as an array
Fixed pagination of default favorites page in user pages
Fixed thumbnail size validation for non-square thumbnails
2013-12-18 15:17:49 +01:00
Marcin Kurczewski
5b25250209 Optimalizations 2013-12-14 14:50:30 +01:00
Marcin Kurczewski
c7c5cde2b6 Fixed removing from favorites 2013-12-14 12:51:11 +01:00
Marcin Kurczewski
5d45d6da2c Support for MySQL 2013-12-14 12:51:08 +01:00
Marcin Kurczewski
40e70c4305 User settings: new option to hide disliked posts 2013-12-05 22:21:15 +01:00
Marcin Kurczewski
0001d38699 Further tweaks to model
- Fixed broken negative searches
- Faster search by tag / comment / submit / favorites (useless nested joins
  replaced to entity prefetch). Side effect: searching for nonexistent tags,
  users etc yields informative errors instead of "no posts to show")
- Fixed duplicated column in order clause ("ORDER BY id DESC, id DESC")
2013-11-30 19:07:39 +01:00
Marcin Kurczewski
992b9ba5ac Restored previous entity retrieval
Using temporary tables turned out to be more expensive on bigger databases.
Restoring two queries version.
2013-11-30 18:13:46 +01:00
Marcin Kurczewski
31ccb9a281 Optimalization: changed entity retrieval 2013-11-30 14:23:53 +01:00
Marcin Kurczewski
d7cb024f24 Refactored pagination queries 2013-11-30 13:59:29 +01:00
Marcin Kurczewski
c9a8f99f6a Optimization: preloading moved back to controllers
- Nearly twice faster page load
- Query count greatly dropped
2013-11-30 01:10:58 +01:00
Marcin Kurczewski
1e954bb815 Optimalization: faster but dirty row retrieval 2013-11-30 01:10:55 +01:00
Marcin Kurczewski
2a625db683 Added support for backets in tag names 2013-11-29 10:42:56 +01:00
Marcin Kurczewski
c683fa3b0f User settings: added opt-in tags in post thumbs 2013-11-25 22:23:48 +01:00
Marcin Kurczewski
20022ea4ab Next/prev links are bound to latest search query 2013-11-25 22:23:45 +01:00
Marcin Kurczewski
d461a88001 Refactor to query builder; added triggers
Instead of recomputing comment/fav/tag count from scratch on every request,
store it in DB as *_count columns that get updated with proper triggers.
2013-11-24 21:41:38 +01:00
Marcin Kurczewski
0ef5f1b46d Absolute paths used where necessary
- No random chdir() calls
- No more exceptions when executing scripts from dirs other than root
- find-posts.php prints absolute paths making piping more useful
2013-11-23 20:52:41 +01:00
Marcin Kurczewski
c5292580ce Post edit: added custom thumbnail indicator 2013-11-23 17:29:08 +01:00
Marcin Kurczewski
f8e19779a0 Cosmetic change to property model 2013-11-23 17:29:01 +01:00
Marcin Kurczewski
3b532532d1 Post edit: post content can now be replaced 2013-11-23 17:27:56 +01:00
Marcin Kurczewski
d274f1c044 Fixed featured post quirks
- fixes for empty database
- when post was deleted, new one is selected automatically
2013-11-23 16:03:40 +01:00
Marcin Kurczewski
18f7fff21f Uploading: empty files yield better error message 2013-11-23 15:39:19 +01:00
Marcin Kurczewski
d8997edc57 Refactor of controllers and models
- Most of model-related code moved from controllers to model classes, much
  fewer calls to R::whatever() in controllers
- Post editing and uploading shares the same code, thus making implementing
  stuff easier in the future
- Added support for default bean wiring, no more calls to R::preload() all over
  the place
- More robust concurrent post editing detection
2013-11-23 15:39:13 +01:00
Marcin Kurczewski
95b2eec461 Search queries: added search by likes/dislikes 2013-11-23 15:39:08 +01:00
Marcin Kurczewski
0bbeb4604f Introducing tag list sort styles
Also, increased margin in /users
2013-11-23 13:54:13 +01:00
Marcin Kurczewski
6e62a46110 Search queries: fixed broken order 2013-11-22 00:26:05 +01:00
Marcin Kurczewski
909026ae0f User names: removed case sensitivity 2013-11-22 00:26:05 +01:00
Marcin Kurczewski
c8fb9c20c6 Search queries: removed case sensitivity 2013-11-22 00:26:05 +01:00
Marcin Kurczewski
6549237dda Mass tag: fixed tag case sensitiveness bug 2013-11-22 00:25:59 +01:00
Marcin Kurczewski
a892410f5d Search queries: added new feature - "comment:x" 2013-11-21 22:32:49 +01:00
Marcin Kurczewski
3c41940142 Closed #57 2013-11-17 14:53:21 +01:00
Marcin Kurczewski
da63c0fd19 Closed #61 2013-11-17 14:53:17 +01:00
Marcin Kurczewski
bb01ae7fca Closed #62 2013-11-16 19:24:50 +01:00