516a472e91ca91fedcb274d19288774c2a291d24
[friendica-addons.git] / newmemberwidget / newmemberwidget.php
1 <?php
2
3 /***
4  * Name: New Member Widget
5  * Description: Adds a widget for new members into the sidebar of the network page. The widget will be displayed for the 1st 14days of a account existance and contains a link to the new member page and a free-form text the admin can define.
6  * Version: 1
7  * Author: Tobias Diekershoff <https://f.diekershoff.de/profile/tobias>
8  ***/
9
10 require_once('include/bbcode.php');
11
12 use Friendica\Core\Addon;
13 use Friendica\Core\Config;
14
15 function newmemberwidget_install () {
16     Addon::registerHook( 'network_mod_init', 'addon/newmemberwidget/newmemberwidget.php', 'newmemberwidget_network_mod_init');
17     logger('newmemberwidget installed');
18 }
19 function newmemberwidget_uninstall () {
20     Addon::unregisterHook( 'network_mod_init', 'addon/newmemberwidget/newmemberwidget.php', 'newmemberwidget_network_mod_init');
21 }
22
23 function newmemberwidget_network_mod_init ( $a, $b) {
24     if (x($_SESSION['new_member'])) {
25         $t = '<div id="newmember_widget" class="widget">'.EOL;
26         $t .= '<h3>'.t('New Member').'</h3>'.EOL;
27         $t .= '<a href="newmember" id="newmemberwidget-tips">' . t('Tips for New Members') . '</a><br />'.EOL;
28         if (Config::get('newmemberwidget','linkglobalsupport')==1)
29             $t .= '<a href="https://forum.friendi.ca/profile/helpers" target="_new">'.t('Global Support Forum').'</a><br />'.EOL;
30         if (Config::get('newmemberwidget','linklocalsupport')==1)
31             $t .= '<a href="'.$a->get_baseurl().'/profile/'.Config::get('newmemberwidget','localsupport').'" target="_new">'.t('Local Support Forum').'</a><br />'.EOL;
32         $ft = Config::get('newmemberwidget','freetext');
33         if (!trim($ft)=="")
34             $t .= '<p>'.bbcode(trim($ft)).'</p>';
35         $t .= '</div><div class="clear"></div>';
36         $a->page['aside'] = $t . $a->page['aside'];
37     }
38 }
39
40 function newmemberwidget_addon_admin_post( &$a ) {
41     $ft = ((x($_POST, 'freetext')) ? trim($_POST['freetext']) : "");
42     $lsn = ((x($_POST, 'localsupportname')) ? notags(trim($_POST['localsupportname'])) : "");
43     $gs = intval($_POST['linkglobalsupport']);
44     $ls = intval($_POST['linklocalsupport']);
45     Config::set ( 'newmemberwidget', 'freetext',           trim($ft));
46     Config::set ( 'newmemberwidget', 'linkglobalsupport',  $gs);
47     Config::set ( 'newmemberwidget', 'linklocalsupport',   $ls);
48     Config::set ( 'newmemberwidget', 'localsupport',       trim($lsn));
49 }
50
51 function newmemberwidget_addon_admin(&$a, &$o){
52     $t = get_markup_template('admin.tpl','addon/newmemberwidget');
53     $o = replace_macros($t, [
54         '$submit' => t('Save Settings'),
55         '$freetext' => [ "freetext", t("Message"), Config::get( "newmemberwidget", "freetext" ), t("Your message for new members. You can use bbcode here.")],
56         '$linkglobalsupport' => [ "linkglobalsupport", t('Add a link to global support forum'), Config::get( 'newmemberwidget', 'linkglobalsupport'), t('Should a link to the global support forum be displayed?')." (<a href='https://forum.friendi.ca/profile/helpers'>@helpers</a>)"],
57         '$linklocalsupport' => [ "linklocalsupport", t('Add a link to the local support forum'), Config::get( 'newmemberwidget', 'linklocalsupport'), t('If you have a local support forum and want to have a link displayed in the widget, check this box.')],
58         '$localsupportname' => [ "localsupportname", t('Name of the local support group'), Config::get( 'newmemberwidget', 'localsupport'), t('If you checked the above, specify the <em>nickname</em> of the local support group here (i.e. helpers)')],
59     ]);
60 }
61