Issue 11425: Additional sorting by creation date

This commit is contained in:
Michael 2022-04-20 21:03:33 +00:00
commit 2236e5cfb0
5 changed files with 81 additions and 44 deletions

View file

@ -1162,6 +1162,8 @@ class Conversation
usort($parents, [$this, 'sortThrReceived']);
} elseif (stristr($order, 'commented')) {
usort($parents, [$this, 'sortThrCommented']);
} elseif (stristr($order, 'created')) {
usort($parents, [$this, 'sortThrCreated']);
}
/*
@ -1266,4 +1268,16 @@ class Conversation
{
return strcmp($b['commented'], $a['commented']);
}
/**
* usort() callback to sort item arrays by the created key
*
* @param array $a
* @param array $b
* @return int
*/
private function sortThrCreated(array $a, array $b)
{
return strcmp($b['created'], $a['created']);
}
}

View file

@ -193,6 +193,8 @@ class Network extends BaseModule
if (self::$order === 'received') {
$ordering = '`received`';
} elseif (self::$order === 'created') {
$ordering = '`created`';
} else {
$ordering = '`commented`';
}
@ -265,6 +267,14 @@ class Network extends BaseModule
'id' => 'post-order-tab',
'accesskey' => 't',
],
[
'label' => DI::l10n()->t('Latest Creation'),
'url' => $cmd . '?' . http_build_query(['order' => 'created']),
'sel' => $selectedTab == 'created' ? 'active' : '',
'title' => DI::l10n()->t('Sort by post creation date'),
'id' => 'creation-order-tab',
'accesskey' => 'q',
],
[
'label' => DI::l10n()->t('Personal'),
'url' => $cmd . '?' . http_build_query(['mention' => true]),
@ -322,6 +332,8 @@ class Network extends BaseModule
self::$mention = false;
} elseif (in_array(self::$selectedTab, ['received', 'star', 'mention'])) {
self::$order = 'received';
} elseif (in_array(self::$selectedTab, ['created'])) {
self::$order = 'created';
}
self::$selectedTab = self::$selectedTab ?? self::$order;

View file

@ -68,6 +68,8 @@ class Network extends NetworkModule
if (self::$order === 'received') {
$ordering = '`received`';
} elseif (self::$order === 'created') {
$ordering = '`created`';
} else {
$ordering = '`commented`';
}