forked from friendica/friendica-addons
added admin interface for irc to set popular chans, auto connect chans
This commit is contained in:
parent
9bcfb4fd6d
commit
219447cc53
3 changed files with 77 additions and 21 deletions
15
irc/irc.css
Normal file
15
irc/irc.css
Normal file
|
@ -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;
|
||||||
|
}
|
68
irc/irc.php
68
irc/irc.php
|
@ -10,17 +10,66 @@
|
||||||
* you will then have "irc chatroom" listed at yoursite/apps
|
* you will then have "irc chatroom" listed at yoursite/apps
|
||||||
* and the app will run at yoursite/irc
|
* and the app will run at yoursite/irc
|
||||||
* documentation at http://tonybaldwin.me/hax/doku.php?id=friendica: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() {
|
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() {
|
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) {
|
function irc_app_menu($a,&$b) {
|
||||||
$b['app_menu'][] = '<div class="app-title"><a href="irc">' . t('IRC Chatroom') . '</a></div>';
|
$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';
|
$baseurl = $a->get_baseurl() . '/addon/irc';
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
$sitechats = get_config('irc','channels');
|
/* set the list of popular channels */
|
||||||
|
$sitechats = get_config('irc','sitechats');
|
||||||
if($sitechats)
|
if($sitechats)
|
||||||
$chats = explode(',',$sitechats);
|
$chats = explode(',',$sitechats);
|
||||||
else
|
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>';
|
$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>';
|
$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
|
/* 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
|
|
||||||
*/
|
|
||||||
$o .= <<< EOT
|
$o .= <<< EOT
|
||||||
<h2>IRC chat</h2>
|
<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>
|
<p><a href="http://tldp.org/HOWTO/IRC/beginners.html" target="_blank">A beginner's guide to using IRC. [en]</a></p>
|
||||||
|
|
|
@ -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');
|
$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);
|
$planet = array_rand($planets,1);
|
||||||
$item['location'] = $planets[$planet];
|
$item['location'] = $planets[$planet];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue