From 27bdf4a60c2eeb557c4402180ab18624d57ce62e Mon Sep 17 00:00:00 2001 From: Retro_Guy Date: Wed, 26 Jan 2022 02:01:59 +0000 Subject: [PATCH] Only show new messages when clicking 'new' for subscribed users --- Rocksolid_Light/rocksolid/newsportal.php | 2 +- Rocksolid_Light/rocksolid/overboard.php | 63 ++++++++++++++++++------ 2 files changed, 48 insertions(+), 17 deletions(-) diff --git a/Rocksolid_Light/rocksolid/newsportal.php b/Rocksolid_Light/rocksolid/newsportal.php index 3674ca8..85e59cd 100644 --- a/Rocksolid_Light/rocksolid/newsportal.php +++ b/Rocksolid_Light/rocksolid/newsportal.php @@ -668,7 +668,7 @@ function groups_show($gruppen) { } if(isset($userdata[$g->name])) { if($userdata[$g->name] < $lastarticleinfo->date) { - $groupdisplay.='(new) '; + $groupdisplay.='(new) '; } } $groupdisplay.=get_date_interval(date("D, j M Y H:i T",$lastarticleinfo->date)); diff --git a/Rocksolid_Light/rocksolid/overboard.php b/Rocksolid_Light/rocksolid/overboard.php index d78a495..2b952da 100755 --- a/Rocksolid_Light/rocksolid/overboard.php +++ b/Rocksolid_Light/rocksolid/overboard.php @@ -79,6 +79,15 @@ $groupconfig=$file_groups; $cachefile=$spooldir."/".$config_name."-overboard.dat"; $oldest = (time() - (86400 * $article_age)); +if (isset($_GET['time'])) { + $user_time = $_GET['time']; + if(is_numeric($user_time)) { + if(($user_time > time()) || ($user_time < $oldest)) { + unset($user_time); + } + } +} + if (isset($_GET['thisgroup'])) { $grouplist = array(); $grouplist[0] = _rawurldecode(_rawurldecode($_GET['thisgroup'])); @@ -99,19 +108,21 @@ if(is_file($cachefile)) { $stats = stat($cachefile); $oldest = $stats[9]; $cached_overboard = unserialize(file_get_contents($cachefile)); - if($stats[9] > (time() - $cachetime)) { - echo ''; - foreach($cached_overboard as $result) { - if(($results % 2) != 0){ - echo '
'; - } else { - echo '
'; + if(!isset($user_time)) { + if($stats[9] > (time() - $cachetime)) { + echo ''; + foreach($cached_overboard as $result) { + if(($results % 2) != 0){ + echo '
'; + } else { + echo '
'; + } + echo $result; + $results++; } - echo $result; - $results++; + show_overboard_footer($stats, $results, true); + exit(0); } - show_overboard_footer($stats, $results, true); - exit(0); } } //ob_start(); @@ -332,17 +343,23 @@ foreach($files as $article) { if(isset($cached_overboard) && isset($this_overboard)) { $new_overboard = array_merge($this_overboard, $cached_overboard); $new_overboard = array_slice($new_overboard, 0, $maxdisplay); - file_put_contents($cachefile, serialize($new_overboard)); + if (!isset($user_time)) { + file_put_contents($cachefile, serialize($new_overboard)); + } } elseif(isset($this_overboard)) { $new_overboard = $this_overboard; - file_put_contents($cachefile, serialize($new_overboard)); + if (!isset($user_time)) { + file_put_contents($cachefile, serialize($new_overboard)); + } } else { $new_overboard = $cached_overboard; } if(isset($cachedate)) { - touch($cachefile, $cachedate); + if (!isset($user_time)) { + touch($cachefile, $cachedate); + } } - $results = 0; + $results = 1; foreach($new_overboard as $result) { @@ -352,6 +369,14 @@ foreach($files as $article) { echo '
'; } echo $result; + if (isset($user_time)) { + preg_match('/Posted:.*/i', $result, $posted_date); + $get_date = explode(': ', $posted_date[0]); + $showme = strtotime(trim(substr($get_date[1], 0, -2))); + if(($showme > time()) || ($showme < $user_time)) { + break; + } + } if($results++ > ($maxdisplay - 2)) break; } @@ -416,8 +441,14 @@ if (isset($_GET['thisgroup'])) { } function show_overboard_footer($stats, $results, $iscached) { + global $user_time; + if(isset($user_time)) { + $recent = 'new'; + } else { + $recent = 'recent'; + } echo '
'; - echo "

".$results." recent articles found.

\r\n"; + echo "

".$results." ".$recent." articles found.

\r\n"; #echo "
Rocksolid Overboard version ".$version; include "tail.inc"; if($iscached) {