\App::$query_string);
	
		call_hooks('network_content_init', $arr);
	
		$channel = \App::get_channel();
		$item_normal = item_normal();
		$item_normal_update = item_normal_update();
	
		$datequery = $datequery2 = '';
	
		$group = 0;
	
		$nouveau    = false;
	
		$datequery  = ((x($_GET,'dend') && is_a_date_arg($_GET['dend'])) ? notags($_GET['dend']) : '');
		$datequery2 = ((x($_GET,'dbegin') && is_a_date_arg($_GET['dbegin'])) ? notags($_GET['dbegin']) : '');
		$nouveau    = ((x($_GET,'new')) ? intval($_GET['new']) : 0);
		$static     = ((x($_GET,'static')) ? intval($_GET['static']) : 0); 
		$gid        = ((x($_GET,'gid')) ? intval($_GET['gid']) : 0);
		$category   = ((x($_REQUEST,'cat')) ? $_REQUEST['cat'] : '');
		$hashtags   = ((x($_REQUEST,'tag')) ? $_REQUEST['tag'] : '');
		$verb       = ((x($_REQUEST,'verb')) ? $_REQUEST['verb'] : '');
	
		$search = (($_GET['search']) ? $_GET['search'] : '');
		if($search) {
			$_GET['netsearch'] = escape_tags($search);
			if(strpos($search,'@') === 0) {
				$r = q("select abook_id from abook left join xchan on abook_xchan = xchan_hash where xchan_name = '%s' and abook_channel = %d limit 1",
					dbesc(substr($search,1)),
					intval(local_channel())
				);
				if($r) {
					$_GET['cid'] = $r[0]['abook_id'];
					$search = $_GET['search'] = '';
				}
			}
			elseif(strpos($search,'#') === 0) {
				$hashtags = substr($search,1);
				$search = $_GET['search'] = '';
			}
		}
	
		if($datequery)
			$_GET['order'] = 'post';
	
	
		// filter by collection (e.g. group)
	
		if($gid) {
			$r = q("SELECT * FROM groups WHERE id = %d AND uid = %d LIMIT 1",
				intval($gid),
				intval(local_channel())
			);
			if(! $r) {
				if($update)
					killme();
				notice( t('No such group') . EOL );
				goaway(z_root() . '/network');
				// NOTREACHED
			}
	
			$group      = $gid;
			$group_hash = $r[0]['hash'];
			$def_acl    = array('allow_gid' => '<' . $r[0]['hash'] . '>');
		}
	
	
		$default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0);
		$default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99);
	
		// if no tabs are selected, defaults to comments
	
		$cid      = ((x($_GET,'cid'))   ? intval($_GET['cid'])   : 0);
		$star     = ((x($_GET,'star'))  ? intval($_GET['star'])  : 0);
		$order    = ((x($_GET,'order')) ? notags($_GET['order']) : 'comment');
		$liked    = ((x($_GET,'liked')) ? intval($_GET['liked']) : 0);
		$conv     = ((x($_GET,'conv'))  ? intval($_GET['conv'])  : 0);
		$spam     = ((x($_GET,'spam'))  ? intval($_GET['spam'])  : 0);
		$cmin     = ((array_key_exists('cmin',$_GET))  ? intval($_GET['cmin'])  : $default_cmin);
		$cmax     = ((array_key_exists('cmax',$_GET))  ? intval($_GET['cmax'])  : $default_cmax);
		$file     = ((x($_GET,'file'))  ? $_GET['file']          : '');
		$xchan    = ((x($_GET,'xchan')) ? $_GET['xchan']         : '');
		$net      = ((x($_GET,'net'))   ? $_GET['net']           : '');
		
		$deftag = '';
	
		if(x($_GET,'search') || x($_GET,'file'))
			$nouveau = true;
		if($cid) {
			$r = q("SELECT abook_xchan FROM abook WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
				intval($cid),
				intval(local_channel())
			);
			if(! $r) {
				if($update) {
					killme();
				}
				notice( t('No such channel') . EOL );
				goaway(z_root() . '/network');
				// NOTREACHED
			}
			if($_GET['pf'] === '1')
				$deftag = '@' . t('forum') . '+' . intval($cid) . '+';
			else
				$def_acl = [ 'allow_cid' => '<' . $r[0]['abook_xchan'] . '>', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
		}
	
		if(! $update) {
			$tabs = network_tabs();
			$o .= $tabs;
	
			// search terms header
			if($search) {
				$o .= replace_macros(get_markup_template("section_title.tpl"),array(
					'$title' => t('Search Results For:') . ' ' . htmlspecialchars($search, ENT_COMPAT,'UTF-8')
				));
			}
	
			nav_set_selected('Grid');
			$channel_acl = array(
				'allow_cid' => $channel['channel_allow_cid'], 
				'allow_gid' => $channel['channel_allow_gid'], 
				'deny_cid'  => $channel['channel_deny_cid'], 
				'deny_gid'  => $channel['channel_deny_gid']
			);
			$private_editing = ((($group || $cid) && (! intval($_GET['pf']))) ? true : false);
	
			$x = array(
				'is_owner'         => true,
				'allow_location'   => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
				'default_location' => $channel['channel_location'],
				'nickname'         => $channel['channel_address'],
				'lockstate'        => (($private_editing || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
				'acl'              => populate_acl((($private_editing) ? $def_acl : $channel_acl), true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
				'permissions'      => (($private_editing) ? $def_acl : $channel_acl),
				'bang'             => (($private_editing) ? '!' : ''),
				'visitor'          => true,
				'profile_uid'      => local_channel(),
				'editor_autocomplete' => true,
				'bbco_autocomplete' => 'bbcode',
				'bbcode' => true,
				'jotnets' => true
			);
			if($deftag)
				$x['pretext'] = $deftag;
	
	
			$status_editor = status_editor($a,$x);
			$o .= $status_editor;
			$static = channel_manual_conv_update(local_channel());
	
		}
	
	
		// We don't have to deal with ACL's on this page. You're looking at everything
		// that belongs to you, hence you can see all of it. We will filter by group if
		// desired.
	
	
		$sql_options  = (($star)
			? " and item_starred = 1 "
			: '');
	
		$sql_nets = '';
		$distinct = '';
		$item_thread_top = ' AND item_thread_top = 1 ';
	
		$sql_extra = $sql_options;
	
		if($group) {
			$contact_str = '';
			$contacts = group_get_members($group);
			if($contacts) {
				foreach($contacts as $c) {
					if($contact_str)
						$contact_str .= ',';
					$contact_str .= "'" . $c['xchan'] . "'";
				}
			}
			else {
				$contact_str = ' 0 ';
				info( t('Privacy group is empty'));
			}
			$distinct = ' distinct ';
			$item_thread_top = '';
			$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND (( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str )) or allow_gid like '" . protect_sprintf('%<' . dbesc($group_hash) . '>%') . "' ) and id = parent $item_normal ) ";
	
			$x = group_rec_byhash(local_channel(), $group_hash);
	
			if($x) {
				$title = replace_macros(get_markup_template("section_title.tpl"),array(
					'$title' => t('Privacy group: ') . $x['gname']
				));
			}
	
			$o = $tabs;
			$o .= $title;
			$o .= $status_editor;
	
		}
	
		elseif($cid) {
	
			$r = q("SELECT abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash where abook_id = %d and abook_channel = %d and abook_blocked = 0 limit 1",
				intval($cid),
				intval(local_channel())
			);
			if($r) {
				$distinct = ' distinct ';
				$item_thread_top = '';
				$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_channel()) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) $item_normal ) ";
				$title = replace_macros(get_markup_template("section_title.tpl"),array(
					'$title' => ' ' . $r[0]['xchan_name'] . ''
				));
				$o = $tabs;
				$o .= $title;
				$o .= $status_editor;
			}
			else {
				notice( t('Invalid connection.') . EOL);
				goaway(z_root() . '/network');
			}
		}
		elseif($xchan) {
			$r = q("select * from xchan where xchan_hash = '%s'",
				dbesc($xchan)
			);
			if($r) {
				$distinct = ' distinct ';
				$item_thread_top = '';
				$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_channel()) . " AND ( author_xchan = '" . dbesc($xchan) . "' or owner_xchan = '" . dbesc($xchan) . "' ) $item_normal ) ";
				$title = replace_macros(get_markup_template("section_title.tpl"),array(
					'$title' => '
 ' . $r[0]['xchan_name'] . ''
				));
				$o = $tabs;
				$o .= $title;
				$o .= $status_editor;
			}
			else {
				notice( t('Invalid channel.') . EOL);
				goaway(z_root() . '/network');
			}
		}
	
		if(x($category)) {
			$sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
		}
		if(x($hashtags)) {
			$sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
		}
	
		if(! $update) {
			// The special div is needed for liveUpdate to kick in for this page.
			// We only launch liveUpdate if you aren't filtering in some incompatible
			// way and also you aren't writing a comment (discovered in javascript).
	
			$maxheight = get_pconfig(local_channel(),'system','network_divmore_height');
			if(! $maxheight)
				$maxheight = 400;
	
	
			$o .= '