2012-04-01 03:59:35 -04:00
< ? php
require_once ( 'include/message.php' );
2017-01-09 07:14:55 -05:00
function wallmessage_post ( App $a ) {
2012-04-01 03:59:35 -04:00
$replyto = get_my_url ();
2017-01-26 09:23:30 -05:00
if ( ! $replyto ) {
2012-04-01 03:59:35 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
$subject = (( x ( $_REQUEST , 'subject' )) ? notags ( trim ( $_REQUEST [ 'subject' ])) : '' );
$body = (( x ( $_REQUEST , 'body' )) ? escape_tags ( trim ( $_REQUEST [ 'body' ])) : '' );
$recipient = (( $a -> argc > 1 ) ? notags ( $a -> argv [ 1 ]) : '' );
2017-01-26 09:23:30 -05:00
if (( ! $recipient ) || ( ! $body )) {
2012-04-01 03:59:35 -04:00
return ;
}
$r = q ( " select * from user where nickname = '%s' limit 1 " ,
dbesc ( $recipient )
);
2016-12-20 04:10:33 -05:00
if ( ! dbm :: is_result ( $r )) {
2012-04-01 03:59:35 -04:00
logger ( 'wallmessage: no recipient' );
return ;
}
$user = $r [ 0 ];
2017-01-26 09:23:30 -05:00
if ( ! intval ( $user [ 'unkmail' ])) {
2012-04-01 03:59:35 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
$r = q ( " select count(*) as total from mail where uid = %d and created > UTC_TIMESTAMP() - INTERVAL 1 day and unknown = 1 " ,
intval ( $user [ 'uid' ])
);
2017-01-26 09:23:30 -05:00
if ( $r [ 0 ][ 'total' ] > $user [ 'cntunkmail' ]) {
2012-04-01 03:59:35 -04:00
notice ( sprintf ( t ( 'Number of daily wall messages for %s exceeded. Message failed.' , $user [ 'username' ])));
return ;
}
$ret = send_wallmessage ( $user , $body , $subject , $replyto );
switch ( $ret ){
case - 1 :
notice ( t ( 'No recipient selected.' ) . EOL );
break ;
case - 2 :
notice ( t ( 'Unable to check your home location.' ) . EOL );
break ;
case - 3 :
notice ( t ( 'Message could not be sent.' ) . EOL );
break ;
case - 4 :
notice ( t ( 'Message collection failure.' ) . EOL );
break ;
default :
info ( t ( 'Message sent.' ) . EOL );
}
2012-05-25 21:29:06 -04:00
2016-05-29 13:35:23 -04:00
goaway ( 'profile/' . $user [ 'nickname' ]);
2016-02-05 15:52:39 -05:00
}
2012-04-01 03:59:35 -04:00
2016-02-07 09:11:34 -05:00
2017-01-09 07:14:55 -05:00
function wallmessage_content ( App $a ) {
2012-04-01 03:59:35 -04:00
2017-01-26 09:23:30 -05:00
if ( ! get_my_url ()) {
2012-04-01 03:59:35 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
$recipient = (( $a -> argc > 1 ) ? $a -> argv [ 1 ] : '' );
2017-01-26 09:23:30 -05:00
if ( ! $recipient ) {
2012-04-01 03:59:35 -04:00
notice ( t ( 'No recipient.' ) . EOL );
return ;
}
$r = q ( " select * from user where nickname = '%s' limit 1 " ,
dbesc ( $recipient )
);
2016-12-20 04:10:33 -05:00
if ( ! dbm :: is_result ( $r )) {
2012-04-01 03:59:35 -04:00
notice ( t ( 'No recipient.' ) . EOL );
logger ( 'wallmessage: no recipient' );
return ;
}
$user = $r [ 0 ];
2017-01-26 09:23:30 -05:00
if ( ! intval ( $user [ 'unkmail' ])) {
2012-04-01 03:59:35 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
2017-01-26 09:23:30 -05:00
$r = q ( " SELECT COUNT(*) AS `total` FROM `mail` WHERE `uid` = %d AND `created` > UTC_TIMESTAMP() - INTERVAL 1 DAY AND `unknown` = 1 " ,
2012-04-01 03:59:35 -04:00
intval ( $user [ 'uid' ])
);
2017-01-26 09:23:30 -05:00
if ( ! dbm :: is_result ( $r )) {
///@TODO Output message to use of failed query
return ;
} elseif ( $r [ 0 ][ 'total' ] > $user [ 'cntunkmail' ]) {
2012-04-01 03:59:35 -04:00
notice ( sprintf ( t ( 'Number of daily wall messages for %s exceeded. Message failed.' , $user [ 'username' ])));
return ;
}
$tpl = get_markup_template ( 'wallmsg-header.tpl' );
2012-07-28 11:57:16 -04:00
$a -> page [ 'htmlhead' ] .= replace_macros ( $tpl , array (
'$baseurl' => $a -> get_baseurl ( true ),
'$nickname' => $user [ 'nickname' ],
'$linkurl' => t ( 'Please enter a link URL:' )
));
$tpl = get_markup_template ( 'wallmsg-end.tpl' );
$a -> page [ 'end' ] .= replace_macros ( $tpl , array (
'$baseurl' => $a -> get_baseurl ( true ),
'$nickname' => $user [ 'nickname' ],
'$linkurl' => t ( 'Please enter a link URL:' )
));
2012-04-01 03:59:35 -04:00
2012-07-28 11:57:16 -04:00
$tpl = get_markup_template ( 'wallmessage.tpl' );
$o .= replace_macros ( $tpl , array (
'$header' => t ( 'Send Private Message' ),
'$subheader' => sprintf ( t ( 'If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders.' ), $user [ 'username' ]),
'$to' => t ( 'To:' ),
'$subject' => t ( 'Subject:' ),
'$recipname' => $user [ 'username' ],
'$nickname' => $user [ 'nickname' ],
'$subjtxt' => (( x ( $_REQUEST , 'subject' )) ? strip_tags ( $_REQUEST [ 'subject' ]) : '' ),
'$text' => (( x ( $_REQUEST , 'body' )) ? escape_tags ( htmlspecialchars ( $_REQUEST [ 'body' ])) : '' ),
'$readonly' => '' ,
'$yourmessage' => t ( 'Your message:' ),
'$select' => $select ,
'$parent' => '' ,
'$upload' => t ( 'Upload photo' ),
'$insert' => t ( 'Insert web link' ),
'$wait' => t ( 'Please wait' )
));
return $o ;
}