From 2e3ceadf052345e9cdf8494a2e04e2d16cf3dfb8 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Tue, 7 Jul 2015 09:33:12 +0200 Subject: [PATCH 1/9] added missing expand/inflate functionality --- irc/irc.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/irc/irc.php b/irc/irc.php index ef9c3fdac..ecc69b680 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -40,6 +40,14 @@ function irc_addon_settings(&$a,&$s) { $sitechats = get_config('irc','sitechats'); /* popular channels */ $autochans = get_config('irc','autochans'); /* auto connect chans */ + $s .= ''; + $s .= '

' . t('IRC Settings') . '

'; + $s .= '
'; + $s .= ''; return; From 5a14ebb2f408468fd8d89000786b4b88d67a0016 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Tue, 7 Jul 2015 12:47:46 +0200 Subject: [PATCH 2/9] leftovers --- irc/irc.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/irc/irc.php b/irc/irc.php index ecc69b680..a4a824afe 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -48,8 +48,6 @@ function irc_addon_settings(&$a,&$s) { $s .= '

' . t('IRC Settings') . '

'; $s .= ''; - $s .= '
'; - $s .= '

' . t('IRC Settings') . '

'; $s .= '
'; $s .= ''; $s .= ''; @@ -61,7 +59,6 @@ function irc_addon_settings(&$a,&$s) { $s .= '
'; $s .= '
'; - $s .= ''; return; From da5363b00a76f203028613ecf7be65301771c6da Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Tue, 7 Jul 2015 17:30:39 +0200 Subject: [PATCH 3/9] added README file for the IRC addon --- irc/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 irc/README.md diff --git a/irc/README.md b/irc/README.md new file mode 100644 index 000000000..87d65952e --- /dev/null +++ b/irc/README.md @@ -0,0 +1,14 @@ +IRC App +======= + +This addon will add an app to your page which will allow your users to access +the [IRC](https://en.wikipedia.org/wiki/IRC) at [freenode.net](https://freenode.net) via a webinterface from your node. The chat interface +will be loaded in an iframe from webchat.freenode.net. + +You can specify two sets of channel lists. + +1. a list of channels the interface shall automatically connect to +2. a list of popular channels which will be displayed aside the chat interface. + the channels in this list will be linked so your users can easily join them. + +If you don't specify a list of popular channels, the following will be shown: friendica, chat, chatback, hottub, ircbar, dateroom, debian From f33e56f6af94df88c99d169b4cd6a2455796ac20 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Tue, 7 Jul 2015 17:31:11 +0200 Subject: [PATCH 4/9] use smarty3 template for the admin config form --- irc/templates/admin.tpl | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 irc/templates/admin.tpl diff --git a/irc/templates/admin.tpl b/irc/templates/admin.tpl new file mode 100644 index 000000000..7a50a6f73 --- /dev/null +++ b/irc/templates/admin.tpl @@ -0,0 +1,4 @@ +{{include file="field_input.tpl" field=$autochans}} +{{include file="field_input.tpl" field=$sitechats}} +
+ From f05f0be25f22e9253d13305dd1f1f436758dc426 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Wed, 8 Jul 2015 10:01:40 +0200 Subject: [PATCH 5/9] settings form now uses smarty3 --- irc/templates/settings.tpl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 irc/templates/settings.tpl diff --git a/irc/templates/settings.tpl b/irc/templates/settings.tpl new file mode 100644 index 000000000..e463a59c4 --- /dev/null +++ b/irc/templates/settings.tpl @@ -0,0 +1,15 @@ + +

{{$header}}

+
+ From 161b7c392c1e8bd3871bd48620df863ea6794f50 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Wed, 8 Jul 2015 10:02:18 +0200 Subject: [PATCH 6/9] IRC plugin now uses smarty3 for forms, config splittet for system and logged in users, the user config wins over the system wide config --- irc/irc.php | 96 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 41 deletions(-) diff --git a/irc/irc.php b/irc/irc.php index a4a824afe..7f5f3b1be 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -1,18 +1,12 @@ +* Author: Tobias Diekershoff */ -/* 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('plugin_settings', 'addon/irc/irc.php', 'irc_addon_settings'); @@ -27,62 +21,50 @@ function irc_uninstall() { function irc_addon_settings(&$a,&$s) { - - - if(! is_site_admin()) + if(! local_user()) return; /* Add our stylesheet to the page so we can make our settings look nice */ - $a->page['htmlhead'] .= '' . "\r\n"; +// $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 */ + $sitechats = get_pconfig( local_user(), 'irc','sitechats'); /* popular channels */ + $autochans = get_pconfig( local_user(), 'irc','autochans'); /* auto connect chans */ - $s .= ''; - $s .= '

' . t('IRC Settings') . '

'; - $s .= '
'; - $s .= ''; return; } function irc_addon_settings_post(&$a,&$b) { - if(! is_site_admin()) + if(! local_user()) return; if($_POST['irc-submit']) { - set_config('irc','autochans',trim($_POST['autochans'])); - set_config('irc','sitechats',trim($_POST['sitechats'])); - /* stupid pop-up thing */ + set_pconfig( local_user(), 'irc','autochans',trim($_POST['autochans'])); + set_pconfig( local_user(), 'irc','sitechats',trim($_POST['sitechats'])); + /* upid pop-up thing */ info( t('IRC settings saved.') . EOL); } } function irc_app_menu($a,&$b) { -$b['app_menu'][] = ''; + $b['app_menu'][] = ''; } function irc_module() { -return; + return; } @@ -92,7 +74,13 @@ function irc_content(&$a) { $o = ''; /* set the list of popular channels */ - $sitechats = get_config('irc','sitechats'); + if (local_user()) { + $sitechats = get_pconfig( local_user(), 'irc', 'sitechats'); + if (!$sitechats) + $sitechats = get_config('irc', 'sitechats'); + } else { + $sitechats = get_config('irc','sitechats'); + } if($sitechats) $chats = explode(',',$sitechats); else @@ -106,7 +94,13 @@ function irc_content(&$a) { $a->page['aside'] .= ''; /* setting the channel(s) to auto connect */ - $autochans = get_config('irc','autochans'); + if (local_user()) { + $autochans = get_pconfig(local_user(), 'irc', 'autochans'); + if (!$autochans) + $autochans = get_config('irc','autochans'); + } else { + $autochans = get_config('irc','autochans'); + } if($autochans) $channels = $autochans; else @@ -116,11 +110,31 @@ function irc_content(&$a) { $o .= <<< EOT

IRC chat

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

- + EOT; return $o; } +function irc_plugin_admin_post (&$a) { + 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_plugin_admin (&$a, &$o) { + $sitechats = get_config('irc','sitechats'); /* popular channels */ + $autochans = get_config('irc','autochans'); /* auto connect chans */ + $t = get_markup_template( "admin.tpl", "addon/irc/" ); + $o = replace_macros($t, array( + '$submit' => t('Save Settings'), + '$autochans' => array( 'autochans', t('Channel(s) to auto connect (comma separated)'), $autochans, t('List of channels that shall automatically connected to when the app is launched.')), + '$sitechats' => array( 'sitechats', t('Popular Channels (comma separated)'), $sitechats, t('List of popular channels, will be displayed at the side and hotlinked for easy joining.') ) + )); +} From 6364aca4bf7f58743b4e6cdff82fff160a9cb7c9 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Wed, 8 Jul 2015 10:35:51 +0200 Subject: [PATCH 7/9] updated README --- irc/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/irc/README.md b/irc/README.md index 87d65952e..9d6181d79 100644 --- a/irc/README.md +++ b/irc/README.md @@ -12,3 +12,5 @@ You can specify two sets of channel lists. the channels in this list will be linked so your users can easily join them. If you don't specify a list of popular channels, the following will be shown: friendica, chat, chatback, hottub, ircbar, dateroom, debian + +Users can set their own list of channels in the settings. From 13e137ed4cf2a467d7f56a3ed65788ad01d8315c Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Wed, 8 Jul 2015 10:36:48 +0200 Subject: [PATCH 8/9] IRC app version 1.1 --- irc/irc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irc/irc.php b/irc/irc.php index 7f5f3b1be..b768749f1 100644 --- a/irc/irc.php +++ b/irc/irc.php @@ -2,7 +2,7 @@ /** * Name: IRC Chat Plugin * Description: add an Internet Relay Chat chatroom on freenode -* Version: 1.0 +* Version: 1.1 * Author: tony baldwin * Author: Tobias Diekershoff */ From d24bfb97deddd8a73b405517ae7335277c4bbbe4 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Wed, 8 Jul 2015 13:22:30 +0200 Subject: [PATCH 9/9] update IRC addon strings --- irc/lang/C/messages.po | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/irc/lang/C/messages.po b/irc/lang/C/messages.po index f21d3eb20..86c203aa6 100644 --- a/irc/lang/C/messages.po +++ b/irc/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"POT-Creation-Date: 2015-07-08 13:17+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,30 +17,49 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: irc.php:44 +#: irc.php:37 msgid "IRC Settings" msgstr "" -#: irc.php:46 +#: irc.php:38 +msgid "" +"Here you can change the system wide settings for the channels to " +"automatically join and access via the side bar. Note the changes you do " +"here, only effect the channel selection if you are logged in." +msgstr "" + +#: irc.php:39 irc.php:136 +msgid "Save Settings" +msgstr "" + +#: irc.php:40 irc.php:137 msgid "Channel(s) to auto connect (comma separated)" msgstr "" -#: irc.php:51 +#: irc.php:40 irc.php:137 +msgid "" +"List of channels that shall automatically connected to when the app is " +"launched." +msgstr "" + +#: irc.php:41 irc.php:138 msgid "Popular Channels (comma separated)" msgstr "" -#: irc.php:55 -msgid "Submit" +#: irc.php:41 irc.php:138 +msgid "" +"List of popular channels, will be displayed at the side and hotlinked for " +"easy joining." msgstr "" -#: irc.php:69 +#: irc.php:57 irc.php:128 msgid "IRC settings saved." msgstr "" -#: irc.php:74 +#: irc.php:62 msgid "IRC Chatroom" msgstr "" -#: irc.php:96 +#: irc.php:90 msgid "Popular Channels" msgstr ""