2012-04-01 07:59:35 +00:00
< ? php
2018-01-15 02:22:39 +00:00
/**
2021-03-29 06:40:20 +00:00
* @ copyright Copyright ( C ) 2010 - 2021 , the Friendica project
2020-02-09 15:18:46 +00:00
*
* @ license GNU AGPL version 3 or any later version
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*
2018-01-15 02:22:39 +00:00
*/
2020-02-09 15:18:46 +00:00
2017-04-30 04:07:00 +00:00
use Friendica\App ;
2018-10-29 21:20:46 +00:00
use Friendica\Core\Logger ;
2018-10-31 14:35:50 +00:00
use Friendica\Core\Renderer ;
2018-07-21 12:40:21 +00:00
use Friendica\Database\DBA ;
2019-12-15 23:28:31 +00:00
use Friendica\DI ;
2018-01-15 17:14:09 +00:00
use Friendica\Model\Mail ;
2018-01-15 02:22:39 +00:00
use Friendica\Model\Profile ;
2018-11-08 15:14:37 +00:00
use Friendica\Util\Strings ;
2017-04-30 04:07:00 +00:00
2017-01-09 12:14:55 +00:00
function wallmessage_post ( App $a ) {
2012-04-01 07:59:35 +00:00
2018-01-15 02:22:39 +00:00
$replyto = Profile :: getMyURL ();
2018-01-22 14:16:25 +00:00
if ( ! $replyto ) {
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Permission denied.' ));
2012-04-01 07:59:35 +00:00
return ;
}
2018-11-30 14:06:22 +00:00
$subject = ( ! empty ( $_REQUEST [ 'subject' ]) ? Strings :: escapeTags ( trim ( $_REQUEST [ 'subject' ])) : '' );
$body = ( ! empty ( $_REQUEST [ 'body' ]) ? Strings :: escapeHtml ( trim ( $_REQUEST [ 'body' ])) : '' );
2012-04-01 07:59:35 +00:00
2021-07-25 13:08:22 +00:00
$recipient = (( DI :: args () -> getArgc () > 1 ) ? Strings :: escapeTags ( DI :: args () -> getArgv ()[ 1 ]) : '' );
2018-01-22 14:16:25 +00:00
if (( ! $recipient ) || ( ! $body )) {
2012-04-01 07:59:35 +00:00
return ;
}
$r = q ( " select * from user where nickname = '%s' limit 1 " ,
2018-07-21 13:10:13 +00:00
DBA :: escape ( $recipient )
2012-04-01 07:59:35 +00:00
);
2018-07-21 12:46:04 +00:00
if ( ! DBA :: isResult ( $r )) {
2018-10-29 21:20:46 +00:00
Logger :: log ( 'wallmessage: no recipient' );
2012-04-01 07:59:35 +00:00
return ;
}
$user = $r [ 0 ];
2018-01-22 14:16:25 +00:00
if ( ! intval ( $user [ 'unkmail' ])) {
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Permission denied.' ));
2012-04-01 07:59:35 +00:00
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' ])
);
2018-01-22 14:16:25 +00:00
if ( $r [ 0 ][ 'total' ] > $user [ 'cntunkmail' ]) {
2020-01-18 19:52:34 +00:00
notice ( DI :: l10n () -> t ( 'Number of daily wall messages for %s exceeded. Message failed.' , $user [ 'username' ]));
2012-04-01 07:59:35 +00:00
return ;
}
2018-01-15 17:14:09 +00:00
$ret = Mail :: sendWall ( $user , $body , $subject , $replyto );
2012-04-01 07:59:35 +00:00
2018-01-22 14:16:25 +00:00
switch ( $ret ) {
2012-04-01 07:59:35 +00:00
case - 1 :
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'No recipient selected.' ));
2012-04-01 07:59:35 +00:00
break ;
case - 2 :
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Unable to check your home location.' ));
2012-04-01 07:59:35 +00:00
break ;
case - 3 :
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Message could not be sent.' ));
2012-04-01 07:59:35 +00:00
break ;
case - 4 :
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Message collection failure.' ));
2012-04-01 07:59:35 +00:00
break ;
}
2012-05-26 01:29:06 +00:00
2019-12-15 23:28:31 +00:00
DI :: baseUrl () -> redirect ( 'profile/' . $user [ 'nickname' ]);
2016-02-05 20:52:39 +00:00
}
2012-04-01 07:59:35 +00:00
2016-02-07 14:11:34 +00:00
2017-01-09 12:14:55 +00:00
function wallmessage_content ( App $a ) {
2012-04-01 07:59:35 +00:00
2018-01-15 02:22:39 +00:00
if ( ! Profile :: getMyURL ()) {
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Permission denied.' ));
2012-04-01 07:59:35 +00:00
return ;
}
2021-07-25 13:08:22 +00:00
$recipient = (( DI :: args () -> getArgc () > 1 ) ? DI :: args () -> getArgv ()[ 1 ] : '' );
2012-04-01 07:59:35 +00:00
2018-01-22 14:16:25 +00:00
if ( ! $recipient ) {
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'No recipient.' ));
2012-04-01 07:59:35 +00:00
return ;
}
$r = q ( " select * from user where nickname = '%s' limit 1 " ,
2018-07-21 13:10:13 +00:00
DBA :: escape ( $recipient )
2012-04-01 07:59:35 +00:00
);
2018-07-21 12:46:04 +00:00
if ( ! DBA :: isResult ( $r )) {
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'No recipient.' ));
2018-10-29 21:20:46 +00:00
Logger :: log ( 'wallmessage: no recipient' );
2012-04-01 07:59:35 +00:00
return ;
}
$user = $r [ 0 ];
2018-01-22 14:16:25 +00:00
if ( ! intval ( $user [ 'unkmail' ])) {
2020-07-23 06:25:01 +00:00
notice ( DI :: l10n () -> t ( 'Permission denied.' ));
2012-04-01 07:59:35 +00:00
return ;
}
2017-03-21 16:02:59 +00: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 07:59:35 +00:00
intval ( $user [ 'uid' ])
);
2018-01-22 14:16:25 +00:00
if ( $r [ 0 ][ 'total' ] > $user [ 'cntunkmail' ]) {
2020-01-18 19:52:34 +00:00
notice ( DI :: l10n () -> t ( 'Number of daily wall messages for %s exceeded. Message failed.' , $user [ 'username' ]));
2012-04-01 07:59:35 +00:00
return ;
}
2018-10-31 14:44:06 +00:00
$tpl = Renderer :: getMarkupTemplate ( 'wallmsg-header.tpl' );
2019-12-30 19:02:09 +00:00
DI :: page ()[ 'htmlhead' ] .= Renderer :: replaceMacros ( $tpl , [
2019-12-30 22:00:08 +00:00
'$baseurl' => DI :: baseUrl () -> get ( true ),
2012-07-28 15:57:16 +00:00
'$nickname' => $user [ 'nickname' ],
2020-01-18 19:52:34 +00:00
'$linkurl' => DI :: l10n () -> t ( 'Please enter a link URL:' )
2018-01-15 13:05:12 +00:00
]);
2012-07-28 15:57:16 +00:00
2018-10-31 14:44:06 +00:00
$tpl = Renderer :: getMarkupTemplate ( 'wallmessage.tpl' );
2018-10-31 14:35:50 +00:00
$o = Renderer :: replaceMacros ( $tpl , [
2020-01-18 19:52:34 +00:00
'$header' => DI :: l10n () -> t ( 'Send Private Message' ),
'$subheader' => DI :: l10n () -> 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' => DI :: l10n () -> t ( 'To:' ),
'$subject' => DI :: l10n () -> t ( 'Subject:' ),
2018-12-25 16:37:32 +00:00
'$recipname' => $user [ 'username' ],
'$nickname' => $user [ 'nickname' ],
2019-10-15 13:01:17 +00:00
'$subjtxt' => $_REQUEST [ 'subject' ] ? ? '' ,
'$text' => $_REQUEST [ 'body' ] ? ? '' ,
2018-12-25 16:37:32 +00:00
'$readonly' => '' ,
2020-01-18 19:52:34 +00:00
'$yourmessage' => DI :: l10n () -> t ( 'Your message:' ),
2018-12-25 16:37:32 +00:00
'$parent' => '' ,
2020-01-18 19:52:34 +00:00
'$upload' => DI :: l10n () -> t ( 'Upload photo' ),
'$insert' => DI :: l10n () -> t ( 'Insert web link' ),
'$wait' => DI :: l10n () -> t ( 'Please wait' )
2018-01-15 13:05:12 +00:00
]);
2012-07-28 15:57:16 +00:00
return $o ;
}