summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-10 13:56:42 +0300
committerAndrew Dolgov <[email protected]>2010-11-10 13:56:42 +0300
commitb3990c92e7dc4dc051aac0a444e8f6e13777ecc6 (patch)
tree3139367e48e8235d557e15b61adffc84f0bcf759
parent5414ad4c80e5bb5c973d2299aa5500623ce07452 (diff)
add option to sort headlines by feed-specified date (bump schema)
-rw-r--r--backend.php18
-rw-r--r--functions.php18
-rw-r--r--modules/pref-prefs.php2
-rw-r--r--sanity_check.php2
-rw-r--r--schema/ttrss_schema_mysql.sql5
-rw-r--r--schema/ttrss_schema_pgsql.sql5
-rw-r--r--schema/versions/mysql/73.sql8
-rw-r--r--schema/versions/pgsql/73.sql8
8 files changed, 53 insertions, 13 deletions
diff --git a/backend.php b/backend.php
index 8b1454ad7..5cef094d6 100644
--- a/backend.php
+++ b/backend.php
@@ -313,28 +313,34 @@
$override_order = false;
+ if (get_pref($link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) {
+ $date_sort_field = "updated";
+ } else {
+ $date_sort_field = "date_entered";
+ }
+
switch ($order_by) {
case "date":
if (get_pref($link, 'REVERSE_HEADLINES', $owner_uid)) {
- $override_order = "date_entered";
+ $override_order = "$date_sort_field";
} else {
- $override_order = "date_entered DESC";
+ $override_order = "$date_sort_field DESC";
}
break;
case "title":
if (get_pref($link, 'REVERSE_HEADLINES', $owner_uid)) {
- $override_order = "title DESC, date_entered";
+ $override_order = "title DESC, $date_sort_field";
} else {
- $override_order = "title, date_entered DESC";
+ $override_order = "title, $date_sort_field DESC";
}
break;
case "score":
if (get_pref($link, 'REVERSE_HEADLINES', $owner_uid)) {
- $override_order = "score, date_entered";
+ $override_order = "score, $date_sort_field";
} else {
- $override_order = "score DESC, date_entered DESC";
+ $override_order = "score DESC, $date_sort_field DESC";
}
break;
}
diff --git a/functions.php b/functions.php
index 835398cd6..a5d3a7cf6 100644
--- a/functions.php
+++ b/functions.php
@@ -3460,10 +3460,16 @@
$query_strategy_part = "id > 0"; // dumb
}
+ if (get_pref($link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) {
+ $date_sort_field = "updated";
+ } else {
+ $date_sort_field = "date_entered";
+ }
+
if (get_pref($link, 'REVERSE_HEADLINES', $owner_uid)) {
- $order_by = "date_entered";
+ $order_by = "$date_sort_field";
} else {
- $order_by = "date_entered DESC";
+ $order_by = "$date_sort_field DESC";
}
if ($view_mode != "noscores") {
@@ -3593,9 +3599,15 @@
if (!$limit) $limit = 30;
+ if (get_pref($link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) {
+ $date_sort_field = "updated";
+ } else {
+ $date_sort_field = "date_entered";
+ }
+
$qfh_ret = queryFeedHeadlines($link, $feed,
$limit, $view_mode, $is_cat, $search, $search_mode,
- $match_on, "date_entered DESC", 0, $owner_uid);
+ $match_on, "$date_sort_field DESC", 0, $owner_uid);
$result = $qfh_ret[0];
$feed_title = htmlspecialchars($qfh_ret[1]);
diff --git a/modules/pref-prefs.php b/modules/pref-prefs.php
index 5fcb93115..e291e5c11 100644
--- a/modules/pref-prefs.php
+++ b/modules/pref-prefs.php
@@ -20,7 +20,7 @@
"PURGE_UNREAD_ARTICLES", "DIGEST_ENABLE", "DIGEST_CATCHUP",
"BLACKLISTED_TAGS", "ENABLE_FEED_ICONS", "ENABLE_API_ACCESS",
"UPDATE_POST_ON_CHECKSUM_CHANGE", "DEFAULT_UPDATE_INTERVAL",
- "MARK_UNREAD_ON_UPDATE", "USER_TIMEZONE");
+ "MARK_UNREAD_ON_UPDATE", "USER_TIMEZONE", "SORT_HEADLINES_BY_FEED_DATE");
if (FORCE_ARTICLE_PURGE != 0) {
array_push($prefs_blacklist, "PURGE_OLD_DAYS");
diff --git a/sanity_check.php b/sanity_check.php
index 20ef276c0..79291ef37 100644
--- a/sanity_check.php
+++ b/sanity_check.php
@@ -2,7 +2,7 @@
require_once "functions.php";
define('EXPECTED_CONFIG_VERSION', 19);
- define('SCHEMA_VERSION', 72);
+ define('SCHEMA_VERSION', 73);
if (!file_exists("config.php")) {
print "<b>Fatal Error</b>: You forgot to copy
diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql
index 527957038..e34082380 100644
--- a/schema/ttrss_schema_mysql.sql
+++ b/schema/ttrss_schema_mysql.sql
@@ -245,7 +245,7 @@ create table ttrss_tags (id integer primary key auto_increment,
create table ttrss_version (schema_version int not null) TYPE=InnoDB DEFAULT CHARSET=UTF8;
-insert into ttrss_version values (72);
+insert into ttrss_version values (73);
create table ttrss_enclosures (id integer primary key auto_increment,
content_url text not null,
@@ -406,6 +406,9 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',3,
+ 'Use feed-specified date to sort headlines instead of local import date.');
+
create table ttrss_user_prefs (
owner_uid integer not null,
pref_name varchar(250),
diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql
index 29c82c0d2..fc1265005 100644
--- a/schema/ttrss_schema_pgsql.sql
+++ b/schema/ttrss_schema_pgsql.sql
@@ -217,7 +217,7 @@ create index ttrss_tags_owner_uid_index on ttrss_tags(owner_uid);
create table ttrss_version (schema_version int not null);
-insert into ttrss_version values (72);
+insert into ttrss_version values (73);
create table ttrss_enclosures (id serial not null primary key,
content_url text not null,
@@ -370,6 +370,9 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',3,
+ 'Use feed-specified date to sort headlines instead of local import date.');
+
create table ttrss_user_prefs (
owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
pref_name varchar(250) not null references ttrss_prefs(pref_name) ON DELETE CASCADE,
diff --git a/schema/versions/mysql/73.sql b/schema/versions/mysql/73.sql
new file mode 100644
index 000000000..051578d22
--- /dev/null
+++ b/schema/versions/mysql/73.sql
@@ -0,0 +1,8 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',3,
+ 'Use feed-specified date to sort headlines instead of local import date.');
+
+update ttrss_version set schema_version = 73;
+
+commit;
diff --git a/schema/versions/pgsql/73.sql b/schema/versions/pgsql/73.sql
new file mode 100644
index 000000000..051578d22
--- /dev/null
+++ b/schema/versions/pgsql/73.sql
@@ -0,0 +1,8 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',3,
+ 'Use feed-specified date to sort headlines instead of local import date.');
+
+update ttrss_version set schema_version = 73;
+
+commit;