X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=irc%2Firc.php;h=bd7444a9eb9bd414488df7f0ff8ad664e8030a1f;hb=94f1e2307190420211e5a1ba1f54f1b46d0b8962;hp=1e05195099fa03172726bff3f6b9ba7ebe30aa38;hpb=403022498d0bdb22bb4201f1cc2fe63033ac2d28;p=friendica-addons.git
diff --git a/irc/irc.php b/irc/irc.php
index 1e051950..bd7444a9 100644
--- a/irc/irc.php
+++ b/irc/irc.php
@@ -10,19 +10,68 @@
* 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 .= '' . t('Channel(s) to auto connect (comma separated)') . ' ';
+ $s .= ' ';
+ $s .= '
';
+
+ $s .= '
';
+ $s .= '' . t('Popular Channels (comma separated)') . ' ';
+ $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'][] = '';
}
@@ -33,18 +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');
-/* 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
- */
+
+ $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.
-
+A beginner's guide to using IRC. [en]
+
EOT;
return $o;