X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=irc%2Firc.php;h=ef9c3fdaccc22d778d0039a69730f64e2607a19f;hb=9317b8c0aeccd0ef68271be1e20e5dd371c37e15;hp=fa90029b670737aacdf4589e5013fa0b74f33da4;hpb=47e812e199eb1d7d1a66fa25d2f84b65bfc805c4;p=friendica-addons.git diff --git a/irc/irc.php b/irc/irc.php index fa90029b..ef9c3fda 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -3,21 +3,75 @@ * Name: IRC Chat Plugin * Description: add an Internet Relay Chat chatroom * Version: 1.0 -* Author: tony baldwin +* 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'][] = ''; +$b['app_menu'][] = ''; } @@ -28,13 +82,38 @@ 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') . '

    '; + foreach($chats as $chat) { + $a->page['aside'] .= '
  • ' . '#' . $chat . '
  • '; + } + $a->page['aside'] .= '
'; + + /* 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 */ + $o .= <<< EOT +

IRC chat

+

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

+ +EOT; - // add the chatroom frame and some html - $o .= '

IRC chat

'; - $o .= '' +return $o; }