2013-05-12 17:46:29 +00:00
< ? php
/*
* Name : WebRTC Application
* Description : add a webrtc instance for video / audio
2023-12-10 16:23:45 +00:00
* Version : 1.1
2013-06-14 17:40:10 +00:00
* Author : Stephen Mahood < https :// friends . mayfirst . org / profile / marxistvegan >
* Author : Tobias Diekershoff < https :// f . diekershoff . de / profile / tobias >
2023-12-10 16:23:45 +00:00
* Author : Matthias Ebers < https :// loma . ml / profile / feb >
2013-05-12 17:46:29 +00:00
*/
2022-06-23 05:16:22 +00:00
use Friendica\App ;
2018-12-26 07:28:16 +00:00
use Friendica\Core\Hook ;
2018-10-31 14:55:15 +00:00
use Friendica\Core\Renderer ;
2020-01-18 21:07:06 +00:00
use Friendica\DI ;
2017-11-06 23:55:24 +00:00
2013-05-12 17:46:29 +00:00
function webrtc_install () {
2022-06-23 05:16:22 +00:00
Hook :: register ( 'app_menu' , 'addon/webrtc/webrtc.php' , 'webrtc_app_menu' );
2013-05-12 17:46:29 +00:00
}
2023-01-14 02:16:09 +00:00
function webrtc_app_menu ( array & $b )
2022-06-23 05:16:22 +00:00
{
2020-01-18 19:52:33 +00:00
$b [ 'app_menu' ][] = '<div class="app-title"><a href="webrtc">' . DI :: l10n () -> t ( 'WebRTC Videochat' ) . '</a></div>' ;
2013-05-12 17:46:29 +00:00
}
2023-01-14 02:16:09 +00:00
function webrtc_addon_admin ( string & $o )
2022-06-23 05:16:22 +00:00
{
2022-06-30 11:32:13 +00:00
$t = Renderer :: getMarkupTemplate ( 'admin.tpl' , 'addon/webrtc/' );
$o = Renderer :: replaceMacros ( $t , [
'$submit' => DI :: l10n () -> t ( 'Save Settings' ),
'$webrtcurl' => [
'webrtcurl' ,
DI :: l10n () -> t ( 'WebRTC Base URL' ),
DI :: config () -> get ( 'webrtc' , 'webrtcurl' ),
DI :: l10n () -> t ( 'Page your users will create a WebRTC chat room on. For example you could use https://live.mayfirst.org .' ),
],
2018-01-15 13:15:33 +00:00
]);
2013-05-12 17:46:29 +00:00
}
2022-06-24 21:27:58 +00:00
2023-01-14 02:16:09 +00:00
function webrtc_addon_admin_post ()
2022-06-23 05:16:22 +00:00
{
2022-06-30 11:32:13 +00:00
DI :: config () -> set ( 'webrtc' , 'webrtcurl' , trim ( $_POST [ 'webrtcurl' ] ? ? '' ));
2013-05-12 17:46:29 +00:00
}
2022-06-24 21:27:58 +00:00
/**
* This is a statement rather than an actual function definition . The simple
* existence of this method is checked to figure out if the addon offers a
* module .
*/
function webrtc_module () {}
2013-05-12 17:46:29 +00:00
2023-01-14 02:16:09 +00:00
function webrtc_content () : string
2022-06-23 05:16:22 +00:00
{
$o = '' ;
2013-05-12 17:46:29 +00:00
2022-06-23 05:16:22 +00:00
/* landingpage to create chatrooms */
$webrtcurl = DI :: config () -> get ( 'webrtc' , 'webrtcurl' );
2013-05-12 17:46:29 +00:00
2023-12-10 16:23:45 +00:00
/* open the landing page in a new browser window without controls */
$o .= ' < script >
window . open ( " ' . $webrtcurl . ' " , " _blank " , " toolbar=no,scrollbars=no,resizable=no,top=100,left=100,width=740,height=740 " );
</ script > ' ;
2022-06-23 05:16:22 +00:00
$o .= '<h2>' . DI :: l10n () -> t ( 'Video Chat' ) . '</h2>' ;
$o .= '<p>' . DI :: l10n () -> t ( 'WebRTC is a video and audio conferencing tool that works in all modern browsers. Just create a new chat room and send the link to someone you want to chat with.' ) . '</p>' ;
2013-05-12 18:19:23 +00:00
if ( $webrtcurl == '' ) {
2022-06-23 05:16:22 +00:00
$o .= '<p>' . DI :: l10n () -> t ( 'Please contact your friendica admin and send a reminder to configure the WebRTC addon.' ) . '</p>' ;
2013-05-12 18:19:23 +00:00
}
2022-06-23 05:16:22 +00:00
return $o ;
2013-05-12 17:46:29 +00:00
}