diff --git a/classes/feeds.php b/classes/feeds.php index 86dd750ecba707eaa7439d3736895b04e466a553..eb08fc45246db03eafdfe44d9337364e9468bea1 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -2352,6 +2352,13 @@ class Feeds extends Handler_Protected { break; } + if (!$query) { + foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE) as $p) { + list ($query, $skip_first_id) = $p->hook_headlines_custom_sort_override($order); + + if ($query) break; + } + } return [$query, $skip_first_id]; } } diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 0ab979c4bc28e9496e3835a4c62f9fd8c5ee4ca7..4fec13000eda02746ac4b649ec07b2b160108e59 100755 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -66,6 +66,8 @@ class PluginHost { const HOOK_FEED_TREE = 43; const HOOK_IFRAME_WHITELISTED = 44; const HOOK_ENCLOSURE_IMPORTED = 45; + const HOOK_HEADLINES_CUSTOM_SORT_MAP = 46; + const HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE = 47; const KIND_ALL = 1; const KIND_SYSTEM = 2; diff --git a/index.php b/index.php index f1a8d0f0c0d472c96712f5789df43b8ebcbc4949..543d2b008120c265bbd7398a40d867c3205ce4b1 100644 --- a/index.php +++ b/index.php @@ -198,6 +198,14 @@ <option value="feed_dates"><?php echo __('Newest first') ?></option> <option value="date_reverse"><?php echo __('Oldest first') ?></option> <option value="title"><?php echo __('Title') ?></option> + + <?php foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINES_CUSTOM_SORT_MAP) as $p) { + $sort_map = $p->hook_headlines_custom_sort_map(); + + foreach ($sort_map as $sort_value => $sort_title) { + print "<option value=\"" . htmlspecialchars($sort_value) . "\">$sort_title</option>"; + } + } ?> </select> <div dojoType="fox.form.ComboButton" onclick="Feeds.catchupCurrent()">