2010-09-09 05:14:17 +02:00
< ? php
function display_content ( & $a ) {
2011-04-22 02:29:47 +02:00
if (( get_config ( 'system' , 'block_public' )) && ( ! local_user ()) && ( ! remote_user ())) {
notice ( t ( 'Public access denied.' ) . EOL );
return ;
}
2011-04-13 02:58:16 +02:00
require_once ( " include/bbcode.php " );
require_once ( 'include/security.php' );
require_once ( 'include/conversation.php' );
2010-11-03 06:21:49 +01:00
$o = '<div id="live-display"></div>' . " \r \n " ;
2010-12-12 23:33:04 +01:00
$nick = (( $a -> argc > 1 ) ? $a -> argv [ 1 ] : '' );
profile_load ( $a , $nick );
2010-09-09 05:14:17 +02:00
$item_id = (( $a -> argc > 2 ) ? intval ( $a -> argv [ 2 ]) : 0 );
if ( ! $item_id ) {
$a -> error = 404 ;
notice ( t ( 'Item not found.' ) . EOL );
return ;
}
$groups = array ();
$contact = null ;
$remote_contact = false ;
if ( remote_user ()) {
$contact_id = $_SESSION [ 'visitor_id' ];
$groups = init_groups_visitor ( $contact_id );
$r = q ( " SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
intval ( $contact_id ),
intval ( $a -> profile [ 'uid' ])
);
if ( count ( $r )) {
$contact = $r [ 0 ];
$remote_contact = true ;
}
}
if ( ! $remote_contact ) {
if ( local_user ()) {
$contact_id = $_SESSION [ 'cid' ];
$contact = $a -> contact ;
}
}
2011-04-12 01:42:41 +02:00
$r = q ( " SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1 " ,
intval ( $a -> profile [ 'uid' ])
);
if ( count ( $r ))
$a -> page_contact = $r [ 0 ];
2010-09-09 05:14:17 +02:00
2011-07-06 06:11:38 +02:00
$is_owner = (( local_user ()) && ( local_user () == $a -> profile [ 'profile_uid' ]) ? true : false );
if ( $a -> profile [ 'hidewall' ] && ( ! $is_owner ) && ( ! $remote_contact )) {
notice ( t ( 'Access to this profile has been restricted.' ) . EOL );
return ;
}
2011-07-01 02:35:35 +02:00
$sql_extra = permissions_sql ( $a -> profile [ 'uid' ], $remote_contact , $groups );
2010-09-09 05:14:17 +02:00
$r = q ( " SELECT `item`.*, `item`.`id` AS `item_id`,
2010-09-29 07:12:27 +02:00
`contact` . `name` , `contact` . `photo` , `contact` . `url` , `contact` . `rel` ,
2011-04-11 12:22:09 +02:00
`contact` . `network` , `contact` . `thumb` , `contact` . `self` , `contact` . `writable` ,
2010-09-09 05:14:17 +02:00
`contact` . `id` AS `cid` , `contact` . `uid` AS `contact-uid`
FROM `item` LEFT JOIN `contact` ON `contact` . `id` = `item` . `contact-id`
WHERE `item` . `uid` = % d AND `item` . `visible` = 1 AND `item` . `deleted` = 0
AND `contact` . `blocked` = 0 AND `contact` . `pending` = 0
2011-01-19 23:19:40 +01:00
AND `item` . `parent` = ( SELECT `parent` FROM `item` WHERE ( `id` = '%s' OR `uri` = '%s' ))
2010-09-09 05:14:17 +02:00
$sql_extra
2010-09-17 12:10:19 +02:00
ORDER BY `parent` DESC , `gravity` ASC , `id` ASC " ,
2010-09-09 05:14:17 +02:00
intval ( $a -> profile [ 'uid' ]),
2010-09-10 03:49:19 +02:00
dbesc ( $item_id ),
dbesc ( $item_id )
2010-09-09 05:14:17 +02:00
);
if ( count ( $r )) {
2010-09-17 12:10:19 +02:00
2010-11-03 06:21:49 +01:00
if (( local_user ()) && ( local_user () == $a -> profile [ 'uid' ])) {
q ( " UPDATE `item` SET `unseen` = 0
WHERE `parent` = % d AND `unseen` = 1 " ,
intval ( $r [ 0 ][ 'parent' ])
);
}
2010-09-28 04:48:45 +02:00
2011-04-11 10:31:04 +02:00
$o .= conversation ( $a , $r , 'display' , false );
2010-09-09 05:14:17 +02:00
}
2010-09-17 12:10:19 +02:00
else {
$r = q ( " SELECT `id` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1 " ,
dbesc ( $item_id ),
dbesc ( $item_id )
);
if ( count ( $r )) {
if ( $r [ 0 ][ 'deleted' ]) {
notice ( t ( 'Item has been removed.' ) . EOL );
}
else {
notice ( t ( 'Permission denied.' ) . EOL );
}
}
else {
notice ( t ( 'Item not found.' ) . EOL );
}
}
2011-01-23 23:56:14 +01:00
$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>' ;
2010-09-09 05:14:17 +02:00
return $o ;
2010-09-17 12:10:19 +02:00
}