Highlight MAIL link if new mail. Change cookie path to / . Move some scripts to spoolnews/

This commit is contained in:
Retro_Guy 2021-06-21 09:04:13 +00:00
parent 4766775a64
commit 4d61a4d967
8 changed files with 96 additions and 36 deletions

View File

@ -8,6 +8,7 @@ if (basename(getcwd()) == 'mods') {
}
include($rootdir.'common/config.inc.php');
$CONFIG = include $config_file;
?>
<script type="text/javascript">
@ -49,6 +50,11 @@ if (file_exists($rootdir.'common/mods/images/rocksolidlight.png')) {
</td>
<td align="right">
<?php
if(check_unread_mail() == true) {
$unread = true;
} else {
$unread = false;
}
foreach($linklist as $link) {
if($link[0] == '#') {
continue;
@ -57,7 +63,13 @@ if (file_exists($rootdir.'common/mods/images/rocksolidlight.png')) {
if($linkitem[1] == '0') {
continue;
}
echo '<a href="'.trim($linkitem[1]).'">'.trim($linkitem[0]).'</a>&nbsp;&nbsp';
if($unread && (strpos($linkitem[1], 'spoolnews/mail.php') !== false)) {
echo '<strong>';
echo '<a href="'.trim($linkitem[1]).'">'.trim(strtoupper($linkitem[0])).'</a>&nbsp;&nbsp';
echo '</strong>';
} else {
echo '<a href="'.trim($linkitem[1]).'">'.trim($linkitem[0]).'</a>&nbsp;&nbsp';
}
}
?>
</td>
@ -132,5 +144,46 @@ foreach($menulist as $menu) {
}
echo '</tr></table>';
echo '</p>';
function check_unread_mail() {
global $CONFIG, $spooldir;
if(isset($_COOKIE['mail_name'])) {
$name = strtolower($_COOKIE['mail_name']);
$database = $spooldir.'/mail.db3';
$dbh = head_mail_db_open($database);
$query = $dbh->prepare('SELECT * FROM messages where rcpt_to=:rcpt_to');
$query->execute(['rcpt_to' => $name]);
$newmail = false;
while (($row = $query->fetch()) !== false) {
if(($row['rcpt_viewed'] != 'true') && ($row['to_hide'] !='true')) {
$newmail = true;
}
}
$dbh = null;
return $newmail;
}
}
function head_mail_db_open($database, $table='messages') {
try {
$dbh = new PDO('sqlite:'.$database);
} catch (PDOExeption $e) {
echo 'Connection failed: '.$e->getMessage();
exit;
}
$dbh->exec("CREATE TABLE IF NOT EXISTS messages(
id INTEGER PRIMARY KEY,
msgid TEXT UNIQUE,
mail_from TEXT,
mail_viewed TEXT,
rcpt_to TEXT,
rcpt_viewed TEXT,
rcpt_target TEXT,
date TEXT,
subject TEXT,
message TEXT,
from_hide TEXT,
to_hide TEXT)");
return($dbh);
}
?>
</body></html>

View File

@ -20,7 +20,7 @@ if (isset($frames_on) && $frames_on === true) {
?>
<script type="text/javascript">
if (navigator.cookieEnabled)
document.cookie = "tzo="+ (- new Date().getTimezoneOffset());
document.cookie = "tzo="+ (- new Date().getTimezoneOffset())+"; path=/";
</script>
<?php
$title.=' - '.basename(getcwd());

View File

@ -1316,6 +1316,29 @@ function get_search_snippet($body, $content_type='') {
return $mysnippet;
}
function mail_db_open($database, $table='messages') {
try {
$dbh = new PDO('sqlite:'.$database);
} catch (PDOExeption $e) {
echo 'Connection failed: '.$e->getMessage();
exit;
}
$dbh->exec("CREATE TABLE IF NOT EXISTS messages(
id INTEGER PRIMARY KEY,
msgid TEXT UNIQUE,
mail_from TEXT,
mail_viewed TEXT,
rcpt_to TEXT,
rcpt_viewed TEXT,
rcpt_target TEXT,
date TEXT,
subject TEXT,
message TEXT,
from_hide TEXT,
to_hide TEXT)");
return($dbh);
}
function rslight_db_open($database, $table='overview') {
try {
$dbh = new PDO('sqlite:'.$database);

View File

@ -1,7 +1,7 @@
# These are the links at the top right of the site
# display name:url
mail:/rocksolid/mail.php
files:/rocksolid/files.php
mail:/spoolnews/mail.php
files:/spoolnews/files.php
register:/common/register.php
nodelist:/common/nodelist.php
faq:/common/faq.txt

View File

@ -0,0 +1 @@
../rocksolid/head.inc

View File

@ -34,8 +34,9 @@ include "head.inc";
var authcookie = "<?php echo $authkey; ?>";
var savename = "<?php echo stripslashes($name); ?>";
var auth_expire = "<?php echo $auth_expire; ?>";
document.cookie = "mail_auth="+authcookie+"; max-age="+auth_expire;
document.cookie = "mail_name="+savename;
var name_expire = "7776000";
document.cookie = "mail_auth="+authcookie+"; max-age="+auth_expire+"; path=/";
document.cookie = "mail_name="+savename+"; max-age="+name_expire+"; path=/";
</script>
<?php
$logged_in = true;
@ -114,12 +115,15 @@ echo '</table>';
if(($row['mail_from'] != $user) && ($row['rcpt_to'] != $user)) {
continue;
}
$istrue = 'true';
if($row['mail_from'] == $user) {
$sql_update = $dbh->prepare('UPDATE messages SET from_hide=? WHERE id=?');
} elseif($row['rcpt_to'] == $user) {
$sql_update = $dbh->prepare('UPDATE messages SET to_hide=? WHERE id=?');
$sql_update = $dbh->prepare('UPDATE messages SET from_hide=:from_hide WHERE id=:row_id');
$sql_update->execute(array(':from_hide' => $istrue, ':row_id' => $row['id']));
}
if($row['rcpt_to'] == $user) {
$sql_update = $dbh->prepare('UPDATE messages SET to_hide=:to_hide WHERE id=:row_id');
$sql_update->execute(array(':to_hide' => $istrue, ':row_id' => $row['id']));
}
$sql_update->execute(array('true', $row['id']));
}
$dbh = null;
}
@ -162,10 +166,12 @@ echo '</table>';
echo '</div>';
if($row['mail_from'] == $user) {
$sql_update = $dbh->prepare('UPDATE messages SET mail_viewed=? WHERE msgid=?');
} elseif($row['rcpt_to'] == $user) {
$sql_update->execute(array('true', $row['msgid']));
}
if($row['rcpt_to'] == $user) {
$sql_update = $dbh->prepare('UPDATE messages SET rcpt_viewed=? WHERE msgid=?');
$sql_update->execute(array('true', $row['msgid']));
}
$sql_update->execute(array('true', $row['msgid']));
}
$dbh = null;
@ -173,7 +179,7 @@ echo '</table>';
if (isSet($_POST['sendMessage'])) {
if (isSet($_POST['to']) && $_POST['to'] != '' && isSet($_POST['from']) && $_POST['from'] != '' && isSet($_POST['message']) && $_POST['message'] != '') {
if(($to = get_config_value('aliases.conf', strtolower($_POST['to']))) == false) {
$to = $_POST['to'];
$to = strtolower($_POST['to']);
}
$userlist = scandir($config_dir.'/users/');
$found = 0;
@ -297,27 +303,4 @@ echo '</table>';
}
echo '</tbody></table><br />';
include "tail.inc";
function mail_db_open($database, $table='messages') {
try {
$dbh = new PDO('sqlite:'.$database);
} catch (PDOExeption $e) {
echo 'Connection failed: '.$e->getMessage();
exit;
}
$dbh->exec("CREATE TABLE IF NOT EXISTS messages(
id INTEGER PRIMARY KEY,
msgid TEXT UNIQUE,
mail_from TEXT,
mail_viewed TEXT,
rcpt_to TEXT,
rcpt_viewed TEXT,
rcpt_target TEXT,
date TEXT,
subject TEXT,
message TEXT,
from_hide TEXT,
to_hide TEXT)");
return($dbh);
}
?>