2011-07-04 23:57:07 -04:00
< ? php
function community_content ( & $a , $update = 0 ) {
$o = '' ;
if (( get_config ( 'system' , 'block_public' )) && ( ! local_user ()) && ( ! remote_user ())) {
notice ( t ( 'Public access denied.' ) . EOL );
return ;
}
2011-07-05 00:13:10 -04:00
if ( get_config ( 'system' , 'no_community_page' )) {
2011-07-04 23:57:07 -04:00
notice ( t ( 'Not available.' ) . EOL );
return ;
}
require_once ( " include/bbcode.php " );
require_once ( 'include/security.php' );
require_once ( 'include/conversation.php' );
if ( x ( $_SESSION , 'theme' ))
unset ( $_SESSION [ 'theme' ]);
$o .= '<h3>' . t ( 'Community' ) . '</h3>' ;
if ( ! $update ) {
$o .= '<script> $(document).ready(function() { $(\'#nav-community-link\').addClass(\'nav-selected\'); });</script>' ;
$o .= '<div id="live-community"></div>' . " \r \n " ;
$o .= " <script> var profile_uid = -1; var netargs = ''; var profile_page = " . $a -> pager [ 'page' ] . " ; </script> \r \n " ;
}
if ( x ( $a -> data , 'search' ))
$search = notags ( trim ( $a -> data [ 'search' ]));
else
$search = (( x ( $_GET , 'search' )) ? notags ( trim ( rawurldecode ( $_GET [ 'search' ]))) : '' );
// Here is the way permissions work in this module...
// Only public wall posts can be shown
// OR your own posts if you are a logged in member
$r = q ( " SELECT COUNT(*) AS `total`
2011-07-06 02:23:43 -04:00
FROM `item` LEFT JOIN `contact` ON `contact` . `id` = `item` . `contact-id` LEFT JOIN `user` ON `user` . `uid` = `item` . `uid`
2011-07-04 23:57:07 -04:00
WHERE `item` . `visible` = 1 AND `item` . `deleted` = 0
AND `wall` = 1 AND `item` . `allow_cid` = '' AND `item` . `allow_gid` = ''
2011-07-06 02:23:43 -04:00
AND `item` . `deny_cid` = '' AND `item` . `deny_gid` = '' AND `user` . `hidewall` = 0
AND `contact` . `blocked` = 0 AND `contact` . `pending` = 0 "
2011-07-04 23:57:07 -04:00
);
if ( count ( $r ))
$a -> set_pager_total ( $r [ 0 ][ 'total' ]);
if ( ! $r [ 0 ][ 'total' ]) {
info ( t ( 'No results.' ) . EOL );
return $o ;
}
$r = q ( " SELECT `item`.*, `item`.`id` AS `item_id`,
`contact` . `name` , `contact` . `photo` , `contact` . `url` , `contact` . `rel` ,
`contact` . `network` , `contact` . `thumb` , `contact` . `self` , `contact` . `writable` ,
`contact` . `id` AS `cid` , `contact` . `uid` AS `contact-uid` ,
2011-07-06 02:23:43 -04:00
`user` . `nickname` , `user` . `hidewall`
2011-07-04 23:57:07 -04:00
FROM `item` LEFT JOIN `contact` ON `contact` . `id` = `item` . `contact-id`
LEFT JOIN `user` ON `user` . `uid` = `item` . `uid`
WHERE `item` . `visible` = 1 AND `item` . `deleted` = 0
AND `wall` = 1 AND `item` . `allow_cid` = '' AND `item` . `allow_gid` = ''
2011-07-06 02:23:43 -04:00
AND `item` . `deny_cid` = '' AND `item` . `deny_gid` = '' AND `user` . `hidewall` = 0
AND `contact` . `blocked` = 0 AND `contact` . `pending` = 0
2011-07-04 23:57:07 -04:00
ORDER BY `received` DESC LIMIT % d , % d " ,
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
// we behave the same in message lists as the search module
2011-07-05 00:52:21 -04:00
$o .= conversation ( $a , $r , 'community' , false );
2011-07-04 23:57:07 -04:00
$o .= paginate ( $a );
$o .= '<div class="cc-license">' . t ( 'Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.' ) . '</div>' ;
return $o ;
}