X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=irc%2Firc.php;h=1ce4ee14deb65fbde30a51009b8da6df49165ef2;hb=d87e6982f986027e681ec18c13afc30807a09908;hp=cf86a446e7626e848762e207386b49ce2473aefa;hpb=ce21d9375a04410f11f79c9303bd86ebc29ab4da;p=friendica-addons.git diff --git a/irc/irc.php b/irc/irc.php index cf86a446..1ce4ee14 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -6,18 +6,72 @@ * Author: tony baldwin */ +/* enable in admin->plugins + * you will then have "irc chatroom" listed at yoursite/apps + * and the app will run at yoursite/irc + * documentation at http://tonybaldwin.me/hax/doku.php?id=friendica:irc + * admin can set popular chans, auto connect chans in settings->plugin settings + */ function irc_install() { -register_hook('app_menu', 'addon/irc/irc.php', 'irc_app_menu'); + register_hook('app_menu', 'addon/irc/irc.php', 'irc_app_menu'); + register_hook('plugin_settings', 'addon/irc/irc.php', 'irc_addon_settings'); + register_hook('plugin_settings_post', 'addon/irc/irc.php', 'irc_addon_settings_post'); } function irc_uninstall() { -unregister_hook('app_menu', 'addon/irc/irc.php', 'irc_app_menu'); + unregister_hook('app_menu', 'addon/irc/irc.php', 'irc_app_menu'); + unregister_hook('plugin_settings', 'addon/irc/irc.php', 'irc_addon_settings'); } + +function irc_addon_settings(&$a,&$s) { + + + if(! is_site_admin()) + return; + + /* Add our stylesheet to the page so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* setting popular channels, auto connect channels */ + $sitechats = get_config('irc','sitechats'); /* popular channels */ + $autochans = get_config('irc','autochans'); /* auto connect chans */ + + $s .= '
'; + $s .= '

' . t('IRC Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + + return; + +} + +function irc_addon_settings_post(&$a,&$b) { + if(! is_site_admin()) + return; + + if($_POST['irc-submit']) { + set_config('irc','autochans',trim($_POST['autochans'])); + set_config('irc','sitechats',trim($_POST['sitechats'])); + /* stupid pop-up thing */ + info( t('IRC settings saved.') . EOL); + } +} + function irc_app_menu($a,&$b) { -$b['app_menu'][] = '
' . t('irc Chatroom') . '
'; +$b['app_menu'][] = '
' . t('IRC Chatroom') . '
'; } @@ -28,15 +82,35 @@ return; function irc_content(&$a) { -$baseurl = $a->get_baseurl() . '/addon/irc'; -$o = ''; + $baseurl = $a->get_baseurl() . '/addon/irc'; + $o = ''; + + /* set the list of popular channels */ + $sitechats = get_config('irc','sitechats'); + if($sitechats) + $chats = explode(',',$sitechats); + else + $chats = array('friendica','chat','chatback','hottub','ircbar','dateroom','debian'); + + + $a->page['aside'] .= '

' . t('Popular Channels') . '

'; + /* setting the channel(s) to auto connect */ + $autochans = get_config('irc','autochans'); + if($autochans) + $channels = $autochans; + else + $channels = ((x($_GET,'channels')) ? $_GET['channels'] : 'friendica'); - // add the chatroom frame and some html +/* add the chatroom frame and some html */ $o .= <<< EOT

IRC chat

-

a beginner's guid to using IRC.

- +

A beginner's guide to using IRC. [en]

+ EOT; return $o;