2014-06-01 12:39:46 +00:00
< ? php
/***
* Name : New Member Widget
2020-09-25 18:52:09 +00:00
* Description : Adds a widget for new members into the sidebar of the network page . The widget will be displayed for the first 14 days of an account ' s existence and contains a link to the new member page and free - form text the admin can define .
2014-06-01 12:39:46 +00:00
* Version : 1
* Author : Tobias Diekershoff < https :// f . diekershoff . de / profile / tobias >
***/
2022-06-23 05:16:22 +00:00
use Friendica\App ;
2018-02-15 02:43:40 +00:00
use Friendica\Content\Text\BBCode ;
2018-12-26 07:28:16 +00:00
use Friendica\Core\Hook ;
2018-10-29 23:40:18 +00:00
use Friendica\Core\Logger ;
2018-10-31 14:55:15 +00:00
use Friendica\Core\Renderer ;
2019-12-30 02:55:10 +00:00
use Friendica\DI ;
2017-11-06 23:55:24 +00:00
2018-07-10 12:30:23 +00:00
function newmemberwidget_install ()
{
2018-12-26 07:28:16 +00:00
Hook :: register ( 'network_mod_init' , 'addon/newmemberwidget/newmemberwidget.php' , 'newmemberwidget_network_mod_init' );
2021-10-21 06:04:27 +00:00
Logger :: notice ( 'newmemberwidget installed' );
2014-06-01 12:39:46 +00:00
}
2018-07-10 12:30:23 +00:00
2022-06-23 05:16:22 +00:00
function newmemberwidget_network_mod_init ( App $a , $b )
2018-07-10 12:30:23 +00:00
{
if ( empty ( $_SESSION [ 'new_member' ])) {
return ;
}
2014-06-01 12:39:46 +00:00
$t = '<div id="newmember_widget" class="widget">' . EOL ;
2020-01-18 19:52:33 +00:00
$t .= '<h3>' . DI :: l10n () -> t ( 'New Member' ) . '</h3>' . EOL ;
$t .= '<a href="newmember" id="newmemberwidget-tips">' . DI :: l10n () -> t ( 'Tips for New Members' ) . '</a><br />' . EOL ;
2018-07-10 12:30:23 +00:00
2020-01-19 20:21:12 +00:00
if ( DI :: config () -> get ( 'newmemberwidget' , 'linkglobalsupport' , false )) {
2020-01-18 19:52:33 +00:00
$t .= '<a href="https://forum.friendi.ca/profile/helpers" target="_new">' . DI :: l10n () -> t ( 'Global Support Forum' ) . '</a><br />' . EOL ;
2018-07-10 12:30:23 +00:00
}
2020-01-19 20:21:12 +00:00
if ( DI :: config () -> get ( 'newmemberwidget' , 'linklocalsupport' , false )) {
$t .= '<a href="' . DI :: baseUrl () -> get () . '/profile/' . DI :: config () -> get ( 'newmemberwidget' , 'localsupport' ) . '" target="_new">' . DI :: l10n () -> t ( 'Local Support Forum' ) . '</a><br />' . EOL ;
2018-07-10 12:30:23 +00:00
}
2020-01-19 20:21:12 +00:00
$ft = DI :: config () -> get ( 'newmemberwidget' , 'freetext' , '' );
2018-07-10 12:30:23 +00:00
if ( ! empty ( $ft )) {
$t .= '<p>' . BBCode :: convert ( trim ( $ft )) . '</p>' ;
}
2014-06-01 12:39:46 +00:00
$t .= '</div><div class="clear"></div>' ;
2019-12-30 20:53:43 +00:00
DI :: page ()[ 'aside' ] = $t . DI :: page ()[ 'aside' ];
2014-06-01 12:39:46 +00:00
}
2022-06-23 05:16:22 +00:00
function newmemberwidget_addon_admin_post ( App $a )
2018-01-22 19:03:11 +00:00
{
2018-11-30 14:11:56 +00:00
$ft = ( ! empty ( $_POST [ 'freetext' ]) ? trim ( $_POST [ 'freetext' ]) : " " );
2021-11-07 13:02:13 +00:00
$lsn = trim ( $_POST [ 'localsupportname' ] ? ? '' );
2018-01-22 19:03:11 +00:00
$gs = intval ( $_POST [ 'linkglobalsupport' ]);
$ls = intval ( $_POST [ 'linklocalsupport' ]);
2020-01-19 20:21:52 +00:00
DI :: config () -> set ( 'newmemberwidget' , 'freetext' , trim ( $ft ));
DI :: config () -> set ( 'newmemberwidget' , 'linkglobalsupport' , $gs );
DI :: config () -> set ( 'newmemberwidget' , 'linklocalsupport' , $ls );
DI :: config () -> set ( 'newmemberwidget' , 'localsupport' , trim ( $lsn ));
2014-06-01 12:39:46 +00:00
}
2022-06-23 05:16:22 +00:00
function newmemberwidget_addon_admin ( App $a , & $o )
2018-01-22 19:03:11 +00:00
{
2018-10-31 14:55:15 +00:00
$t = Renderer :: getMarkupTemplate ( 'admin.tpl' , 'addon/newmemberwidget' );
$o = Renderer :: replaceMacros ( $t , [
2020-01-18 19:52:33 +00:00
'$submit' => DI :: l10n () -> t ( 'Save Settings' ),
2020-01-19 20:21:12 +00:00
'$freetext' => [ " freetext " , DI :: l10n () -> t ( " Message " ), DI :: config () -> get ( " newmemberwidget " , " freetext " ), DI :: l10n () -> t ( " Your message for new members. You can use bbcode here. " )],
'$linkglobalsupport' => [ " linkglobalsupport " , DI :: l10n () -> t ( 'Add a link to global support forum' ), DI :: config () -> get ( 'newmemberwidget' , 'linkglobalsupport' ), DI :: l10n () -> t ( 'Should a link to the global support forum be displayed?' ) . " (<a href='https://forum.friendi.ca/profile/helpers'>@helpers</a>) " ],
'$linklocalsupport' => [ " linklocalsupport " , DI :: l10n () -> t ( 'Add a link to the local support forum' ), DI :: config () -> get ( 'newmemberwidget' , 'linklocalsupport' ), DI :: l10n () -> t ( 'If you have a local support forum and want to have a link displayed in the widget, check this box.' )],
'$localsupportname' => [ " localsupportname " , DI :: l10n () -> t ( 'Name of the local support group' ), DI :: config () -> get ( 'newmemberwidget' , 'localsupport' ), DI :: l10n () -> t ( 'If you checked the above, specify the <em>nickname</em> of the local support group here (i.e. helpers)' )],
2018-01-22 19:03:11 +00:00
]);
2014-06-01 12:39:46 +00:00
}