]> git.mxchange.org Git - friendica-addons.git/commitdiff
Merge remote branch 'upstream/master'
authorMichael <icarus@dabo.de>
Sat, 14 Apr 2012 11:03:51 +0000 (13:03 +0200)
committerMichael <icarus@dabo.de>
Sat, 14 Apr 2012 11:03:51 +0000 (13:03 +0200)
irc.tgz
irc/irc.css [new file with mode: 0644]
irc/irc.php
planets.tgz
planets/planets.php

diff --git a/irc.tgz b/irc.tgz
index cb86460599f429d1304f82ec46525225d70f591f..a07e38ee95da2f3cdafbd0180ba32b798bb023da 100644 (file)
Binary files a/irc.tgz and b/irc.tgz differ
diff --git a/irc/irc.css b/irc/irc.css
new file mode 100644 (file)
index 0000000..76aa215
--- /dev/null
@@ -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;
+}
index 065e48080d81a4726ead6048b19dcab7327e71ae..1ce4ee14deb65fbde30a51009b8da6df49165ef2 100644 (file)
  * 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'] .= '<link rel="stylesheet"  type="text/css" href="' . $a->get_baseurl() . '/addon/irc/irc.css' . '" media="all" />' . "\r\n";
+
+    /* setting popular channels, auto connect channels */
+       $sitechats = get_config('irc','sitechats'); /* popular channels */
+       $autochans = get_config('irc','autochans');  /* auto connect chans */
+
+       $s .= '<div class="settings-block">';
+       $s .= '<h3>' . t('IRC Settings') . '</h3>';
+       $s .= '<div id="irc-chans">';
+       $s .= '<label id="irc-auto-label" for="autochans">' . t('Channel(s) to auto connect (comma separated)') . '</label>';
+       $s .= '<input id="autochans" type="text" name="autochans" value="' . $autochans .'" />';
+       $s .= '</div><div class="clear"></div>';
+
+       $s .= '<div id="irc-chans">';
+       $s .= '<label id="irc-pop-label" for="sitechats">' . t('Popular Channels (comma separated)') . '</label>';
+       $s .= '<input id="sitechats" type="text" name="sitechats" value="' . $sitechats.'" />';
+       $s .= '</div><div class="clear"></div>';
+
+       $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="irc-submit" name="irc-submit" class="settings-submit" value="' . t('Submit') . '" /></div></div>';
+
+       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'][] = '<div class="app-title"><a href="irc">' . t('IRC Chatroom') . '</a></div>';
 }
@@ -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'] .= '<div class="widget"><h3>' . t('Popular Channels') . '</h3><ul>';
@@ -49,16 +99,14 @@ function irc_content(&$a) {
        }
        $a->page['aside'] .= '</ul></div>';
 
+        /* 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
 <h2>IRC chat</h2>
 <p><a href="http://tldp.org/HOWTO/IRC/beginners.html" target="_blank">A beginner's guide to using IRC. [en]</a></p>
index 1be40b9d8be114549222bf0cbb2a0273a76cd9bd..2ce9788fbe7a51535fc1dccde33c8c92cfef7ab0 100644 (file)
Binary files a/planets.tgz and b/planets.tgz differ
index 1c6ed43b94ac8624a2e691e3fc3c99f51ab3f8f3..0df91d7c3aa2ea60250ff9971cff9deb3b3dfa4f 100755 (executable)
@@ -4,22 +4,7 @@
  * Description: Sample Friendica plugin/addon. Set a random planet from the Emprire when posting.
  * Version: 1.0
  * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
- * Author: Darth Baldwin <darthvader@death.star>
- * 
- * 
- * 
- *
- * Addons are registered with the system in the
- * .htconfig.php file.
- *
- * $a->config['system']['addon'] = 'plugin1,plugin2,etc.';
- *
- * When registration is detected, the system calls the plugin
- * name_install() function, located in 'addon/name/name.php',
- * where 'name' is the name of the addon.
- * If the addon is removed from the configuration list, the 
- * system will call the name_uninstall() function.
- *
+ * Author: Tony Baldwin <https://free-haven.org/profile/tony>
  */
 
 
@@ -108,14 +93,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];