diff --git a/include/conversation.php b/include/conversation.php index 54008fb5d4..f6da5d858a 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1451,7 +1451,9 @@ function conv_sort(array $item_list, $order) } } - if (stristr($order, 'received')) { + if (stristr($order, 'pinned_received')) { + usort($parents, 'sort_thr_pinned_received'); + } elseif (stristr($order, 'received')) { usort($parents, 'sort_thr_received'); } elseif (stristr($order, 'commented')) { usort($parents, 'sort_thr_commented'); @@ -1488,6 +1490,24 @@ function conv_sort(array $item_list, $order) return $parents; } +/** + * @brief usort() callback to sort item arrays by pinned and the received key + * + * @param array $a + * @param array $b + * @return int + */ +function sort_thr_pinned_received(array $a, array $b) +{ + if ($b['pinned'] && !$a['pinned']) { + return 1; + } elseif (!$b['pinned'] && $a['pinned']) { + return -1; + } + + return strcmp($b['received'], $a['received']); +} + /** * @brief usort() callback to sort item arrays by the received key * @@ -1497,12 +1517,6 @@ function conv_sort(array $item_list, $order) */ function sort_thr_received(array $a, array $b) { - if ($b['pinned'] && !$a['pinned']) { - return 1; - } elseif (!$b['pinned'] && $a['pinned']) { - return -1; - } - return strcmp($b['received'], $a['received']); } @@ -1515,12 +1529,6 @@ function sort_thr_received(array $a, array $b) */ function sort_thr_received_rev(array $a, array $b) { - if ($b['pinned'] && !$a['pinned']) { - return -1; - } elseif (!$b['pinned'] && $a['pinned']) { - return 1; - } - return strcmp($a['received'], $b['received']); } diff --git a/src/Module/Profile.php b/src/Module/Profile.php index ac345fad24..cd0ee66bb9 100644 --- a/src/Module/Profile.php +++ b/src/Module/Profile.php @@ -355,7 +355,7 @@ class Profile extends BaseModule $items = array_merge($items, $pinned); } - $o .= conversation($a, $items, $pager, 'profile', $update, false, 'received', $a->profile['profile_uid']); + $o .= conversation($a, $items, $pager, 'profile', $update, false, 'pinned_received', $a->profile['profile_uid']); if (!$update) { $o .= $pager->renderMinimal(count($items));