From 219447cc53d20f69dd6c2c4eedfb0eef22adb89a Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Thu, 12 Apr 2012 23:33:26 -0400 Subject: [PATCH] added admin interface for irc to set popular chans, auto connect chans --- irc/irc.css | 15 +++++++++ irc/irc.php | 74 +++++++++++++++++++++++++++++++++++++-------- planets/planets.php | 9 +----- 3 files changed, 77 insertions(+), 21 deletions(-) create mode 100644 irc/irc.css diff --git a/irc/irc.css b/irc/irc.css new file mode 100644 index 00000000..76aa2159 --- /dev/null +++ b/irc/irc.css @@ -0,0 +1,15 @@ +/* irc css */ +#irc-chans, { + float: left; + width: 200px; + margin-top: 10px; +} + +#irc-checkbox { + float: left; + margin-top: 10px; +} + +#irc-submit { + margin-top: 15px; +} diff --git a/irc/irc.php b/irc/irc.php index 065e4808..1ce4ee14 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -10,17 +10,66 @@ * 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') . '
'; } @@ -36,11 +85,12 @@ function irc_content(&$a) { $baseurl = $a->get_baseurl() . '/addon/irc'; $o = ''; - $sitechats = get_config('irc','channels'); + /* 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','teentalk'); + $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'); - - - -$channels = ((x($_GET,'channels')) ? $_GET['channels'] : 'friendica'); - -/* add the chatroom frame and some html - * by altering the "channels=friendica" part of the URL, you can add/remove channels. - * At free-haven.org, I have "?channels=friendica,free-haven", for instance, to open #friendica and #free-haven - */ +/* add the chatroom frame and some html */ $o .= <<< EOT

IRC chat

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

diff --git a/planets/planets.php b/planets/planets.php index 1c6ed43b..d1b59eeb 100755 --- a/planets/planets.php +++ b/planets/planets.php @@ -108,14 +108,7 @@ function planets_post_hook($a, &$item) { */ $planets = array('Alderaan','Tatooine','Dagoba','Polis Massa','Coruscant','Hoth','Endor','Kamino','Rattatak','Mustafar','Iego','Geonosis','Felucia','Dantooine','Ansion','Artaru','Bespin','Boz Pity','Cato Neimoidia','Christophsis','Kashyyk','Kessel','Malastare','Mygeeto','Nar Shaddaa','Ord Mantell','Saleucami','Subterrel','Death Star','Teth','Tund','Utapau','Yavin'); -# $zones = timezone_identifiers_list(); -# foreach($zones as $zone) { -# if((strpos($zone,'/')) && (! stristr($zone,'US/')) && (! stristr($zone,'Etc/'))) -# $planets[] = str_replace('_', ' ',substr($zone,strpos($zone,'/') + 1)); -# } -# -# if(! count($planets)) -# return; + $planet = array_rand($planets,1); $item['location'] = $planets[$planet];