From 74f7f09fb16181519e9fa0691137af135266ab58 Mon Sep 17 00:00:00 2001 From: Retro_Guy Date: Tue, 11 Jan 2022 23:19:54 +0000 Subject: [PATCH] Add 'subscribe' feature for groups, and config to manage --- Rocksolid_Light/rocksolid/article-flat.php | 16 +++-- Rocksolid_Light/rocksolid/newsportal.php | 78 +++++++++++++++------- Rocksolid_Light/rocksolid/overboard.php | 10 ++- Rocksolid_Light/rocksolid/thread.php | 11 ++- Rocksolid_Light/spoolnews/user.php | 27 ++++++++ 5 files changed, 111 insertions(+), 31 deletions(-) diff --git a/Rocksolid_Light/rocksolid/article-flat.php b/Rocksolid_Light/rocksolid/article-flat.php index 2b3111c..407f573 100644 --- a/Rocksolid_Light/rocksolid/article-flat.php +++ b/Rocksolid_Light/rocksolid/article-flat.php @@ -12,7 +12,11 @@ $logfile=$logdir.'/newsportal.log'; $accessfile=$logdir.'/access.log'; throttle_hits(); - + if(isset($_COOKIE['mail_name'])) { + $user = strtolower($_COOKIE['mail_name']); + $userfile=$spooldir.'/'.$user.'-articleviews.dat'; + $userdata = unserialize(file_get_contents($userfile)); + } // register parameters $id=$_REQUEST["id"]; $group=_rawurldecode($_REQUEST["group"]); @@ -23,7 +27,7 @@ header("Location: $newurl"); die(); } - + if(strpos($id, '@') !== false) { if($CONFIG['article_database'] == '1') { $database = $spooldir.'/articles-overview.db3'; @@ -54,8 +58,12 @@ $location = $_SERVER['REQUEST_URI'].$_SERVER['REQUEST_STRING']; $_SESSION['return_page'] = $location.'#'.$id; - file_put_contents($accessfile, "\n".format_log_date()." ".$config_name." ".$group.":".$id, FILE_APPEND); - + file_put_contents($accessfile, "\n".format_log_date()." ".$config_name." ".$group.":".$id, FILE_APPEND); + if($user) { + $userdata[$group] = time(); + file_put_contents($userfile, serialize($userdata)); + } + if(isset($frames_on) && $frames_on === true) { ?> '; diff --git a/Rocksolid_Light/spoolnews/user.php b/Rocksolid_Light/spoolnews/user.php index fb08899..4ef9f1d 100644 --- a/Rocksolid_Light/spoolnews/user.php +++ b/Rocksolid_Light/spoolnews/user.php @@ -117,6 +117,9 @@ echo ''; $user = strtolower($_POST['username']); $_SESSION['username'] = $user; unset($user_config); + $userfile=$spooldir.'/'.$user.'-articleviews.dat'; + $userdata = unserialize(file_get_contents($userfile)); + ksort($userdata); // Apply Config if(isset($_POST['command']) && $_POST['command'] == 'SaveConfig') { @@ -126,6 +129,20 @@ echo ''; $user_config['theme'] = $_POST['listbox']; file_put_contents($config_dir.'/userconfig/'.$user.'.config', serialize($user_config)); $_SESSION['theme'] = $user_config['theme']; + $mysubs = explode("\n", $_POST['subscribed']); + foreach($mysubs as $sub) { + if(trim($sub) == '') { + continue; + } + $sub = trim($sub); + if(!isset($userdata[$sub])) { + $userdata[$sub] = 0; + } + $newsubs[$sub] = $userdata[$sub]; + } + file_put_contents($spooldir.'/'.$user.'-articleviews.dat', serialize($newsubs)); + $userdata = unserialize(file_get_contents($userfile)); + ksort($userdata); echo 'Configuration Saved for '.$_POST[username]; } else { $user_config = unserialize(file_get_contents($config_dir.'/userconfig/'.$user.'.config')); @@ -144,6 +161,7 @@ echo ''; } } sort($themes); + // Show Config echo '

Configuration:

'; echo ''; @@ -174,6 +192,14 @@ echo '
'; echo ''; echo ''; echo ''; +// Subscriptions + echo 'Subscribed:'; + echo ''; + echo ''; /* // Timezone echo 'Timezone offset (+/- hours from UTC):'; @@ -182,6 +208,7 @@ echo ''; */ echo ''; echo ''; + echo 'Cancel'; echo ''; echo ''; echo '';