aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/items.php6
-rw-r--r--include/message.php13
-rw-r--r--include/poller.php5
-rw-r--r--mod/message.php12
-rw-r--r--view/theme/redbasic/css/style.css2
-rwxr-xr-xview/tpl/prv_message.tpl7
6 files changed, 32 insertions, 13 deletions
diff --git a/include/items.php b/include/items.php
index 5fcbb0cc5..520ea7230 100755
--- a/include/items.php
+++ b/include/items.php
@@ -910,6 +910,7 @@ function encode_mail($item) {
$x['message_id'] = $item['mid'];
$x['message_parent'] = $item['parent_mid'];
$x['created'] = $item['created'];
+ $x['expires'] = $item['expires'];
$x['title'] = $item['title'];
$x['body'] = $item['body'];
$x['from'] = encode_item_xchan($item['from']);
@@ -939,6 +940,10 @@ function get_mail_elements($x) {
$arr['title'] = (($x['title'])? htmlentities($x['title'],ENT_COMPAT,'UTF-8',false) : '');
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
+ if((! array_key_exists('expires',$x)) || ($x['expires'] === '0000-00-00 00:00:00'))
+ $arr['expires'] = '0000-00-00 00:00:00';
+ else
+ $arr['expires'] = datetime_convert('UTC','UTC',$x['expires']);
$arr['mail_flags'] = 0;
@@ -2465,6 +2470,7 @@ function mail_store($arr) {
$arr['from_xchan'] = ((x($arr,'from_xchan')) ? notags(trim($arr['from_xchan'])) : '');
$arr['to_xchan'] = ((x($arr,'to_xchan')) ? notags(trim($arr['to_xchan'])) : '');
$arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
+ $arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : '0000-00-00 00:00:00');
$arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
$arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
$arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
diff --git a/include/message.php b/include/message.php
index e54a6cd83..3bcd5e209 100644
--- a/include/message.php
+++ b/include/message.php
@@ -8,7 +8,7 @@ require_once('include/attach.php');
// send a private message
-function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=''){
+function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='',$expires = ''){
$ret = array('success' => false);
@@ -22,6 +22,10 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
if(! strlen($subject))
$subject = t('[no subject]');
+// if(! $expires)
+// $expires = '0000-00-00 00:00:00';
+// else
+// $expires = datetime_convert(date_default_timezone_get(),'UTC',$expires);
if($uid) {
$r = q("select * from channel where channel_id = %d limit 1",
@@ -111,8 +115,8 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
- $r = q("INSERT INTO mail ( account_id, mail_flags, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created )
- VALUES ( %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
+ $r = q("INSERT INTO mail ( account_id, mail_flags, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created, expires )
+ VALUES ( %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
intval($channel['channel_account_id']),
intval(MAIL_OBSCURED),
intval($channel['channel_id']),
@@ -123,7 +127,8 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
dbesc($jattach),
dbesc($mid),
dbesc($replyto),
- dbesc(datetime_convert())
+ dbesc(datetime_convert()),
+ dbesc($expires)
);
// verify the save
diff --git a/include/poller.php b/include/poller.php
index f3a997913..b1f89955c 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -42,6 +42,11 @@ function poller_run($argv, $argc){
intval(ACCOUNT_EXPIRED),
intval(ACCOUNT_EXPIRED)
);
+
+ // expire any expired mail
+
+ q("delete from mail where expires != '0000-00-00 00:00:00' and expires < UTC_TIMESTAMP() ");
+
// Ensure that every channel pings a directory server once a month. This way we can discover
// channels and sites that quietly vanished and prevent the directory from accumulating stale
diff --git a/mod/message.php b/mod/message.php
index a4d73e6b0..e31d903a7 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -40,6 +40,7 @@ function message_post(&$a) {
$body = ((x($_REQUEST,'body')) ? escape_tags(trim($_REQUEST['body'])) : '');
$recipient = ((x($_REQUEST,'messageto')) ? notags(trim($_REQUEST['messageto'])) : '');
$rstr = ((x($_REQUEST,'messagerecip')) ? notags(trim($_REQUEST['messagerecip'])) : '');
+ $expires = ((x($_REQUEST,'expires')) ? datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expires']) : '0000-00-00 00:00:00');
// If we have a raw string for a recipient which hasn't been auto-filled,
// it means they probably aren't in our address book, hence we don't know
@@ -111,7 +112,7 @@ function message_post(&$a) {
// We have a local_user, let send_message use the session channel and save a lookup
- $ret = send_message(0, $recipient, $body, $subject, $replyto);
+ $ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
if(! $ret['success']) {
notice($ret['message']);
@@ -322,7 +323,8 @@ function message_content(&$a) {
'$attach' => t('Attach file'),
'$insert' => t('Insert web link'),
'$wait' => t('Please wait'),
- '$submit' => t('Submit')
+ '$submit' => t('Submit'),
+ '$expires' => t('Expires: (leave blank for never)')
));
return $o;
@@ -463,8 +465,6 @@ function message_content(&$a) {
}
- logger('mails: ' . print_r($mails,true), LOGGER_DATA);
-
$recp = (($message['from_xchan'] === $channel['channel_hash']) ? 'to' : 'from');
// FIXME - move this HTML to template
@@ -498,8 +498,8 @@ function message_content(&$a) {
'$attach' => t('Attach file'),
'$insert' => t('Insert web link'),
'$submit' => t('Submit'),
- '$wait' => t('Please wait')
-
+ '$wait' => t('Please wait'),
+ '$expires' => t('Expires: (leave blank for never)')
));
return $o;
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 32d33ad70..c5d41d7ba 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -1693,7 +1693,7 @@ tr.mceLast {
}
-#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label {
+#prvmail-to-label, #prvmail-subject-label, #prvmail-expires-label, #prvmail-message-label {
margin-bottom: 10px;
margin-top: 20px;
}
diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl
index d65bc3570..494eec48c 100755
--- a/view/tpl/prv_message.tpl
+++ b/view/tpl/prv_message.tpl
@@ -17,12 +17,15 @@
<div id="prvmail-subject-label">{{$subject}}</div>
<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
+<div id="prvmail-expires-label">{{$expires}}</div>
+<input type="text" size="64" maxlength="255" id="prvmail-expires" name="expires" value="" tabindex="12" />
+
<div id="prvmail-message-label">{{$yourmessage}}</div>
-<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
+<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="13">{{$text}}</textarea>
<div id="prvmail-submit-wrapper" >
- <input type="submit" id="prvmail-submit" name="submit" value="{{$submit}}" tabindex="13" />
+ <input type="submit" id="prvmail-submit" name="submit" value="{{$submit}}" tabindex="14" />
<div id="prvmail-upload-wrapper" >
<i id="prvmail-upload" class="icon-camera jot-icons" title="{{$upload}}"></i>
</div>