diff options
Diffstat (limited to 'mod/chat.php')
-rw-r--r-- | mod/chat.php | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/mod/chat.php b/mod/chat.php deleted file mode 100644 index 375d069be..000000000 --- a/mod/chat.php +++ /dev/null @@ -1,255 +0,0 @@ -<?php /** @file */ - -require_once('include/chat.php'); -require_once('include/bookmarks.php'); - -function chat_init(&$a) { - - $which = null; - if(argc() > 1) - $which = argv(1); - if(! $which) { - if(local_channel()) { - $channel = App::get_channel(); - if($channel && $channel['channel_address']) - $which = $channel['channel_address']; - } - } - if(! $which) { - notice( t('You must be logged in to see this page.') . EOL ); - return; - } - - $profile = 0; - $channel = App::get_channel(); - - if((local_channel()) && (argc() > 2) && (argv(2) === 'view')) { - $which = $channel['channel_address']; - $profile = argv(1); - } - - App::$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . z_root() . '/feed/' . $which .'" />' . "\r\n" ; - - // Run profile_load() here to make sure the theme is set before - // we start loading content - - profile_load($a,$which,$profile); - -} - -function chat_post(&$a) { - - if($_POST['room_name']) - $room = strip_tags(trim($_POST['room_name'])); - - if((! $room) || (! local_channel())) - return; - - $channel = App::get_channel(); - - - if($_POST['action'] === 'drop') { - logger('delete chatroom'); - chatroom_destroy($channel,array('cr_name' => $room)); - goaway(z_root() . '/chat/' . $channel['channel_address']); - } - - $acl = new Zotlabs\Access\AccessList($channel); - $acl->set_from_array($_REQUEST); - - $arr = $acl->get(); - $arr['name'] = $room; - $arr['expire'] = intval($_POST['chat_expire']); - if(intval($arr['expire']) < 0) - $arr['expire'] = 0; - - chatroom_create($channel,$arr); - - $x = q("select * from chatroom where cr_name = '%s' and cr_uid = %d limit 1", - dbesc($room), - intval(local_channel()) - ); - - build_sync_packet(0, array('chatroom' => $x)); - - if($x) - goaway(z_root() . '/chat/' . $channel['channel_address'] . '/' . $x[0]['cr_id']); - - // that failed. Try again perhaps? - - goaway(z_root() . '/chat/' . $channel['channel_address'] . '/new'); - - -} - - -function chat_content(&$a) { - - if(local_channel()) - $channel = App::get_channel(); - - $ob = App::get_observer(); - $observer = get_observer_hash(); - if(! $observer) { - notice( t('Permission denied.') . EOL); - return; - } - - if(! perm_is_allowed(App::$profile['profile_uid'],$observer,'chat')) { - notice( t('Permission denied.') . EOL); - return; - } - - if((argc() > 3) && intval(argv(2)) && (argv(3) === 'leave')) { - chatroom_leave($observer,argv(2),$_SERVER['REMOTE_ADDR']); - goaway(z_root() . '/channel/' . argv(1)); - } - - - if((argc() > 3) && intval(argv(2)) && (argv(3) === 'status')) { - $ret = array('success' => false); - $room_id = intval(argv(2)); - if(! $room_id || ! $observer) - return; - - $r = q("select * from chatroom where cr_id = %d limit 1", - intval($room_id) - ); - if(! $r) { - json_return_and_die($ret); - } - require_once('include/security.php'); - $sql_extra = permissions_sql($r[0]['cr_uid']); - - $x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1", - intval($room_id), - intval($r[0]['cr_uid']) - ); - if(! $x) { - json_return_and_die($ret); - } - $y = q("select count(*) as total from chatpresence where cp_room = %d", - intval($room_id) - ); - if($y) { - $ret['success'] = true; - $ret['chatroom'] = $r[0]['cr_name']; - $ret['inroom'] = $y[0]['total']; - } - - // figure out how to present a timestamp of the last activity, since we don't know the observer's timezone. - - $z = q("select created from chat where chat_room = %d order by created desc limit 1", - intval($room_id) - ); - if($z) { - $ret['last'] = $z[0]['created']; - } - json_return_and_die($ret); - } - - - if(argc() > 2 && intval(argv(2))) { - - $room_id = intval(argv(2)); - $bookmark_link = get_bookmark_link($ob); - - $x = chatroom_enter($observer,$room_id,'online',$_SERVER['REMOTE_ADDR']); - if(! $x) - return; - $x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1", - intval($room_id), - intval(App::$profile['profile_uid']) - ); - - if($x) { - $acl = new Zotlabs\Access\AccessList(false); - $acl->set($x[0]); - - $private = $acl->is_private(); - $room_name = $x[0]['cr_name']; - if($bookmark_link) - $bookmark_link .= '&url=' . z_root() . '/chat/' . argv(1) . '/' . argv(2) . '&title=' . urlencode($x[0]['cr_name']) . (($private) ? '&private=1' : '') . '&ischat=1'; - } - else { - notice( t('Room not found') . EOL); - return; - } - - $cipher = get_pconfig(local_channel(),'system','default_cipher'); - if(! $cipher) - $cipher = 'aes256'; - - - $o = replace_macros(get_markup_template('chat.tpl'),array( - '$is_owner' => ((local_channel() && local_channel() == $x[0]['cr_uid']) ? true : false), - '$room_name' => $room_name, - '$room_id' => $room_id, - '$baseurl' => z_root(), - '$nickname' => argv(1), - '$submit' => t('Submit'), - '$leave' => t('Leave Room'), - '$drop' => t('Delete Room'), - '$away' => t('I am away right now'), - '$online' => t('I am online'), - '$bookmark_link' => $bookmark_link, - '$bookmark' => t('Bookmark this room'), - '$feature_encrypt' => ((feature_enabled(local_channel(),'content_encrypt')) ? true : false), - '$cipher' => $cipher, - '$linkurl' => t('Please enter a link URL:'), - '$encrypt' => t('Encrypt text'), - '$insert' => t('Insert web link') - )); - return $o; - } - - - require_once('include/conversation.php'); - - $o = profile_tabs($a,((local_channel() && local_channel() == App::$profile['profile_uid']) ? true : false),App::$profile['channel_address']); - - if(! feature_enabled(App::$profile['profile_uid'],'ajaxchat')) { - notice( t('Feature disabled.') . EOL); - return $o; - } - - - $acl = new Zotlabs\Access\AccessList($channel); - $channel_acl = $acl->get(); - - $lockstate = (($channel_acl['allow_cid'] || $channel_acl['allow_gid'] || $channel_acl['deny_cid'] || $channel_acl['deny_gid']) ? 'lock' : 'unlock'); - require_once('include/acl_selectors.php'); - - $chatroom_new = ''; - if(local_channel()) { - $chatroom_new = replace_macros(get_markup_template('chatroom_new.tpl'),array( - '$header' => t('New Chatroom'), - '$name' => array('room_name',t('Chatroom name'),'', ''), - '$chat_expire' => array('chat_expire',t('Expiration of chats (minutes)'),120,''), - '$permissions' => t('Permissions'), - '$acl' => populate_acl($channel_acl,false), - '$lockstate' => $lockstate, - '$submit' => t('Submit') - - )); - } - - $rooms = chatroom_list(App::$profile['profile_uid']); - - $o .= replace_macros(get_markup_template('chatrooms.tpl'), array( - '$header' => sprintf( t('%1$s\'s Chatrooms'), App::$profile['name']), - '$name' => t('Name'), - '$baseurl' => z_root(), - '$nickname' => App::$profile['channel_address'], - '$rooms' => $rooms, - '$norooms' => t('No chatrooms available'), - '$newroom' => t('Create New'), - '$is_owner' => ((local_channel() && local_channel() == App::$profile['profile_uid']) ? 1 : 0), - '$chatroom_new' => $chatroom_new, - '$expire' => t('Expiration'), - '$expire_unit' => t('min') //minutes - )); - - return $o; - -} |