2010-07-16 20:16:50 -04:00
< ? php
function network_init ( & $a ) {
2011-01-20 17:25:44 -05:00
if ( ! local_user ()) {
2011-01-20 18:30:45 -05:00
notice ( t ( 'Permission denied.' ) . EOL );
2011-01-20 17:25:44 -05:00
return ;
}
2011-01-20 14:19:20 -05:00
2010-07-25 19:27:22 -04:00
require_once ( 'include/group.php' );
2010-10-31 19:38:22 -04:00
if ( ! x ( $a -> page , 'aside' ))
$a -> page [ 'aside' ] = '' ;
2011-01-19 20:56:36 -05:00
$a -> page [ 'aside' ] .= '<div id="network-new-link">' ;
if (( $a -> argc > 1 && $a -> argv [ 1 ] === 'new' ) || ( $a -> argc > 2 && $a -> argv [ 2 ] === 'new' ))
$a -> page [ 'aside' ] .= '<a href="' . $a -> get_baseurl () . '/' . str_replace ( '/new' , '' , $a -> cmd ) . '">' . t ( 'Normal View' ) . '</a>' ;
else
$a -> page [ 'aside' ] .= '<a href="' . $a -> get_baseurl () . '/' . $a -> cmd . '/new' . '">' . t ( 'New Item View' ) . '</a>' ;
$a -> page [ 'aside' ] .= '</div>' ;
2010-07-25 19:27:22 -04:00
$a -> page [ 'aside' ] .= group_side ( 'network' , 'network' );
2010-07-16 20:16:50 -04:00
}
2010-09-20 22:34:44 -04:00
function network_content ( & $a , $update = 0 ) {
2010-07-16 20:16:50 -04:00
if ( ! local_user ())
2011-01-20 17:25:44 -05:00
return login ( false );
2010-10-31 19:38:22 -04:00
$o = '' ;
2010-07-16 20:16:50 -04:00
require_once ( " include/bbcode.php " );
$contact_id = $a -> cid ;
2010-07-25 19:27:22 -04:00
$group = 0 ;
2010-07-20 08:21:19 -04:00
2011-02-01 23:23:58 -05:00
$nouveau = false ;
2011-02-17 02:05:48 -05:00
if ( $update && ( x ( $_SESSION , 'netargs' ))) {
$nouveau = $_SESSION [ 'netargs' ][ 'nouveau' ];
$group = $_SESSION [ 'netargs' ][ 'group' ];
2011-02-17 02:10:18 -05:00
if ( strlen ( $group ))
$group_acl = array ( 'allow_gid' => '<' . $group . '>' );
2011-02-17 02:05:48 -05:00
$a -> pager [ 'page' ] = $_SESSION [ 'netargs' ][ 'page' ];
$a -> set_pager_itemspage ( 50 );
}
2010-07-24 18:21:33 -04:00
if ( ! $update ) {
2010-09-19 00:11:18 -04:00
$o .= '<script> $(document).ready(function() { $(\'#nav-network-link\').addClass(\'nav-selected\'); });</script>' ;
2011-01-19 20:56:36 -05:00
if (( $a -> argc > 2 ) && $a -> argv [ 2 ] === 'new' )
$nouveau = true ;
2010-07-25 19:27:22 -04:00
// pull out the group here because the updater might have different args
2010-09-17 06:43:03 -04:00
if ( $a -> argc > 1 ) {
2011-01-19 20:56:36 -05:00
if ( $a -> argv [ 1 ] === 'new' )
$nouveau = true ;
else {
$group = intval ( $a -> argv [ 1 ]);
$group_acl = array ( 'allow_gid' => '<' . $group . '>' );
}
2010-09-17 06:43:03 -04:00
}
2011-01-19 20:56:36 -05:00
2011-02-17 02:05:48 -05:00
2011-02-17 02:18:43 -05:00
$_SESSION [ 'netargs' ] = array ( 'nouveau' => $nouveau , 'group' => $group , 'page' => $a -> pager [ 'page' ]);
2010-07-26 07:22:19 -04:00
$_SESSION [ 'return_url' ] = $a -> cmd ;
2010-10-19 23:52:05 -04:00
$geotag = (( $a -> user [ 'allow_location' ]) ? load_view_file ( 'view/jot_geotag.tpl' ) : '' );
2010-09-22 21:00:19 -04:00
$tpl = load_view_file ( 'view/jot-header.tpl' );
2010-07-16 20:16:50 -04:00
2010-10-19 23:52:05 -04:00
$a -> page [ 'htmlhead' ] .= replace_macros ( $tpl , array (
'$baseurl' => $a -> get_baseurl (),
2010-12-05 21:08:36 -05:00
'$geotag' => $geotag ,
'$nickname' => $a -> user [ 'nickname' ]
2010-10-19 23:52:05 -04:00
));
2010-07-24 18:21:33 -04:00
2010-11-16 00:02:59 -05:00
require_once ( 'include/acl_selectors.php' );
2010-07-24 18:21:33 -04:00
2010-09-22 21:00:19 -04:00
$tpl = load_view_file ( " view/jot.tpl " );
2010-09-17 06:43:03 -04:00
if (( $group ) || ( is_array ( $a -> user ) && (( strlen ( $a -> user [ 'allow_cid' ])) || ( strlen ( $a -> user [ 'allow_gid' ])) || ( strlen ( $a -> user [ 'deny_cid' ])) || ( strlen ( $a -> user [ 'deny_gid' ])))))
$lockstate = 'lock' ;
else
$lockstate = 'unlock' ;
2010-07-17 10:03:06 -04:00
2010-10-18 03:43:49 -04:00
$celeb = ((( $a -> user [ 'page-flags' ] == PAGE_SOAPBOX ) || ( $a -> user [ 'page-flags' ] == PAGE_COMMUNITY )) ? true : false );
2011-02-11 05:35:19 -05:00
$jotplugins = '' ;
$jotnets = '' ;
2011-02-06 04:08:12 -05:00
call_hooks ( 'jot_tool' , $jotplugins );
2011-02-11 05:35:19 -05:00
call_hooks ( 'jot_networks' , $jotnets );
2011-02-06 04:08:12 -05:00
$tpl = replace_macros ( $tpl , array ( '$jotplugins' => $jotplugins ));
2011-01-26 10:17:28 -05:00
2010-07-24 18:21:33 -04:00
$o .= replace_macros ( $tpl , array (
'$return_path' => $a -> cmd ,
'$baseurl' => $a -> get_baseurl (),
2010-08-21 19:31:46 -04:00
'$defloc' => $a -> user [ 'default-location' ],
2010-07-24 18:21:33 -04:00
'$visitor' => 'block' ,
2011-01-31 22:07:13 -05:00
'$emailcc' => t ( 'CC: email addresses' ),
2011-02-11 05:35:19 -05:00
'$jotnets' => $jotnets ,
2011-01-31 22:07:13 -05:00
'$emtitle' => t ( 'Example: bob@example.com, mary@example.com' ),
2010-09-17 06:43:03 -04:00
'$lockstate' => $lockstate ,
2010-10-18 03:43:49 -04:00
'$acl' => populate_acl ((( $group ) ? $group_acl : $a -> user ), $celeb ),
2010-09-17 06:43:03 -04:00
'$bang' => (( $group ) ? '!' : '' ),
2011-02-06 04:08:12 -05:00
'$profile_uid' => $_SESSION [ 'uid' ]
2010-07-24 18:21:33 -04:00
));
2010-07-16 20:16:50 -04:00
2010-07-25 19:27:22 -04:00
// The special div is needed for liveUpdate to kick in for this page.
// We only launch liveUpdate if you are on the front page, you aren't
// filtering by group and also you aren't writing a comment (the last
// criteria is discovered in javascript).
2011-02-17 02:05:48 -05:00
// if($a->pager['start'] == 0 && $a->argc == 1) {
2010-09-21 01:27:33 -04:00
$o .= '<div id="live-network"></div>' . " \r \n " ;
$o .= " <script> var profile_uid = " . $_SESSION [ 'uid' ] . " ; </script> \r \n " ;
2011-02-17 02:05:48 -05:00
// }
2010-09-21 01:27:33 -04:00
2010-07-24 18:21:33 -04:00
}
2010-07-16 20:16:50 -04:00
2010-07-25 19:27:22 -04:00
// We aren't going to try and figure out at the item, group, and page level
// which items you've seen and which you haven't. You're looking at some
// subset of items, so just mark everything seen.
2010-07-24 18:21:33 -04:00
$r = q ( " UPDATE `item` SET `unseen` = 0
WHERE `unseen` = 1 AND `uid` = % d " ,
intval ( $_SESSION [ 'uid' ])
);
2010-07-16 20:16:50 -04:00
2010-07-25 19:27:22 -04:00
// 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.
2010-07-24 09:56:02 -04:00
2010-09-17 06:10:19 -04:00
$sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE `id` = `parent` ) " ;
2010-07-16 20:16:50 -04:00
2010-07-25 19:27:22 -04:00
if ( $group ) {
2010-08-11 04:48:43 -04:00
$r = q ( " SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
2010-07-25 19:27:22 -04:00
intval ( $group ),
intval ( $_SESSION [ 'uid' ])
);
if ( ! count ( $r )) {
2011-02-17 02:10:18 -05:00
if ( $update )
killme ();
2010-08-11 18:40:18 -04:00
notice ( t ( 'No such group' ) . EOL );
2010-07-25 19:27:22 -04:00
goaway ( $a -> get_baseurl () . '/network' );
return ; // NOTREACHED
}
$contacts = expand_groups ( array ( $group ));
2011-01-03 16:53:26 -05:00
if (( is_array ( $contacts )) && count ( $contacts )) {
$contact_str = implode ( ',' , $contacts );
}
else {
$contact_str = ' 0 ' ;
notice ( t ( 'Group is empty' ));
}
2011-01-19 20:56:36 -05:00
2011-01-03 16:53:26 -05:00
$sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE `id` = `parent` AND `contact-id` IN ( $contact_str )) " ;
$o = '<h4>' . t ( 'Group: ' ) . $r [ 0 ][ 'name' ] . '</h4>' . $o ;
2010-07-25 19:27:22 -04:00
}
2010-07-16 20:16:50 -04:00
2011-01-16 19:40:09 -05:00
if (( ! $group ) && ( ! $update ))
$o .= get_birthdays ();
2010-07-16 20:16:50 -04:00
$r = q ( " SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact` . `id` = `item` . `contact-id`
WHERE `item` . `uid` = % d AND `item` . `visible` = 1 AND `item` . `deleted` = 0
2010-07-19 09:58:03 -04:00
AND `contact` . `blocked` = 0 AND `contact` . `pending` = 0
2010-07-16 20:16:50 -04:00
$sql_extra " ,
intval ( $_SESSION [ 'uid' ])
);
if ( count ( $r ))
$a -> set_pager_total ( $r [ 0 ][ 'total' ]);
2011-01-19 20:56:36 -05:00
if ( $nouveau ) {
$r = q ( " SELECT `item`.*, `item`.`id` AS `item_id`,
`contact` . `name` , `contact` . `photo` , `contact` . `url` , `contact` . `rel` ,
2011-01-19 21:31:04 -05:00
`contact` . `network` , `contact` . `thumb` , `contact` . `dfrn-id` , `contact` . `self` ,
2011-01-19 20:56:36 -05:00
`contact` . `id` AS `cid` , `contact` . `uid` AS `contact-uid`
FROM `item` , `contact`
WHERE `item` . `uid` = % d AND `item` . `visible` = 1 AND `item` . `deleted` = 0
AND `contact` . `id` = `item` . `contact-id`
AND `contact` . `blocked` = 0 AND `contact` . `pending` = 0
$sql_extra
ORDER BY `item` . `created` DESC LIMIT % d , % d " ,
intval ( $_SESSION [ 'uid' ]),
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
}
else {
$r = q ( " SELECT `item`.*, `item`.`id` AS `item_id`,
`contact` . `name` , `contact` . `photo` , `contact` . `url` , `contact` . `rel` ,
`contact` . `network` , `contact` . `thumb` , `contact` . `dfrn-id` , `contact` . `self` ,
`contact` . `id` AS `cid` , `contact` . `uid` AS `contact-uid`
FROM `item` , ( SELECT `p` . `id` , `p` . `created` FROM `item` AS `p` WHERE `p` . `parent` = `p` . `id` ) as `parentitem` , `contact`
WHERE `item` . `uid` = % d AND `item` . `visible` = 1 AND `item` . `deleted` = 0
AND `contact` . `id` = `item` . `contact-id`
AND `contact` . `blocked` = 0 AND `contact` . `pending` = 0
AND `item` . `parent` = `parentitem` . `id`
$sql_extra
ORDER BY `parentitem` . `created` DESC , `item` . `gravity` ASC , `item` . `created` ASC LIMIT % d , % d " ,
intval ( $_SESSION [ 'uid' ]),
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
}
2010-07-16 20:16:50 -04:00
2010-09-22 21:00:19 -04:00
$cmnt_tpl = load_view_file ( 'view/comment_item.tpl' );
$like_tpl = load_view_file ( 'view/like.tpl' );
$tpl = load_view_file ( 'view/wall_item.tpl' );
$wallwall = load_view_file ( 'view/wallwall_item.tpl' );
2010-07-16 20:16:50 -04:00
2010-09-17 06:10:19 -04:00
$alike = array ();
$dlike = array ();
2010-07-16 20:16:50 -04:00
if ( count ( $r )) {
2010-09-17 06:10:19 -04:00
2011-01-19 20:56:36 -05:00
if ( $nouveau ) {
$tpl = load_view_file ( 'view/search_item.tpl' );
$droptpl = load_view_file ( 'view/wall_fake_drop.tpl' );
foreach ( $r as $item ) {
$comment = '' ;
$owner_url = '' ;
$owner_photo = '' ;
$owner_name = '' ;
$sparkle = '' ;
$profile_name = (( strlen ( $item [ 'author-name' ])) ? $item [ 'author-name' ] : $item [ 'name' ]);
$profile_avatar = (( strlen ( $item [ 'author-avatar' ])) ? $item [ 'author-avatar' ] : $item [ 'thumb' ]);
$profile_link = (( strlen ( $item [ 'author-link' ])) ? $item [ 'author-link' ] : $item [ 'url' ]);
$location = (( $item [ 'location' ]) ? '<a target="map" href="http://maps.google.com/?q=' . urlencode ( $item [ 'location' ]) . '">' . $item [ 'location' ] . '</a>' : '' );
$coord = (( $item [ 'coord' ]) ? '<a target="map" href="http://maps.google.com/?q=' . urlencode ( $item [ 'coord' ]) . '">' . $item [ 'coord' ] . '</a>' : '' );
if ( $coord ) {
if ( $location )
$location .= '<br /><span class="smalltext">(' . $coord . ')</span>' ;
else
$location = '<span class="smalltext">' . $coord . '</span>' ;
}
$drop = replace_macros ( $droptpl , array ( '$id' => $item [ 'id' ]));
$lock = '<div class="wall-item-lock"></div>' ;
$o .= replace_macros ( $tpl , array (
'$id' => $item [ 'item_id' ],
'$profile_url' => $profile_link ,
'$name' => $profile_name ,
'$sparkle' => $sparkle ,
'$lock' => $lock ,
'$thumb' => $profile_avatar ,
'$title' => $item [ 'title' ],
2011-01-25 08:26:12 -05:00
'$body' => smilies ( bbcode ( $item [ 'body' ])),
2011-01-19 20:56:36 -05:00
'$ago' => relative_date ( $item [ 'created' ]),
'$location' => $location ,
'$indent' => '' ,
'$owner_url' => $owner_url ,
'$owner_photo' => $owner_photo ,
'$owner_name' => $owner_name ,
'$drop' => $drop ,
2011-01-19 21:31:04 -05:00
'$conv' => '<a href="' . $a -> get_baseurl () . '/display/' . $a -> user [ 'nickname' ] . '/' . $item [ 'id' ] . '">' . t ( 'View in context' ) . '</a>'
2011-01-19 20:56:36 -05:00
));
}
$o .= paginate ( $a );
return $o ;
}
2010-10-31 19:38:22 -04:00
foreach ( $r as $item ) {
like_puller ( $a , $item , $alike , 'like' );
like_puller ( $a , $item , $dlike , 'dislike' );
2010-09-17 06:10:19 -04:00
}
2010-07-17 02:14:37 -04:00
foreach ( $r as $item ) {
2010-07-16 20:16:50 -04:00
$comment = '' ;
2010-07-17 02:14:37 -04:00
$template = $tpl ;
$commentww = '' ;
2010-10-30 16:25:37 -04:00
$owner_url = $owner_photo = $owner_name = '' ;
2010-11-21 20:36:01 -05:00
2010-07-17 10:03:06 -04:00
$profile_url = $item [ 'url' ];
2010-11-21 20:36:01 -05:00
2010-07-17 10:03:06 -04:00
$redirect_url = $a -> get_baseurl () . '/redir/' . $item [ 'cid' ] ;
2010-10-31 19:38:22 -04:00
if ((( activity_match ( $item [ 'verb' ], ACTIVITY_LIKE )) || ( activity_match ( $item [ 'verb' ], ACTIVITY_DISLIKE ))) && ( $item [ 'id' ] != $item [ 'parent' ]))
2010-09-17 06:10:19 -04:00
continue ;
2010-07-17 10:03:06 -04:00
2010-12-07 23:47:53 -05:00
$lock = ((( $item [ 'private' ]) || (( $item [ 'uid' ] == local_user ()) && ( strlen ( $item [ 'allow_cid' ]) || strlen ( $item [ 'allow_gid' ])
|| strlen ( $item [ 'deny_cid' ]) || strlen ( $item [ 'deny_gid' ]))))
2010-09-30 01:11:26 -04:00
? '<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="' . t ( 'Private Message' ) . '" onclick="lockview(event,' . $item [ 'id' ] . ');" /></div>'
2010-09-29 01:12:27 -04:00
: '<div class="wall-item-lock"></div>' );
2010-12-07 23:47:53 -05:00
2010-07-17 10:03:06 -04:00
// Top-level wall post not written by the wall owner (wall-to-wall)
// First figure out who owns it.
2010-09-27 22:48:45 -04:00
$osparkle = '' ;
2010-07-17 02:14:37 -04:00
if (( $item [ 'parent' ] == $item [ 'item_id' ]) && ( ! $item [ 'self' ])) {
2010-09-17 06:10:19 -04:00
2010-09-26 20:24:20 -04:00
if ( $item [ 'type' ] === 'wall' ) {
2010-07-17 10:03:06 -04:00
// I do. Put me on the left of the wall-to-wall notice.
2010-07-17 02:14:37 -04:00
$owner_url = $a -> contact [ 'url' ];
$owner_photo = $a -> contact [ 'thumb' ];
$owner_name = $a -> contact [ 'name' ];
$template = $wallwall ;
$commentww = 'ww' ;
}
2010-10-24 23:39:24 -04:00
if (( $item [ 'type' ] === 'remote' ) && ( strlen ( $item [ 'owner-link' ])) && ( $item [ 'owner-link' ] != $item [ 'author-link' ])) {
2010-07-17 10:03:06 -04:00
// Could be anybody.
2010-07-17 02:14:37 -04:00
$owner_url = $item [ 'owner-link' ];
$owner_photo = $item [ 'owner-avatar' ];
$owner_name = $item [ 'owner-name' ];
$template = $wallwall ;
2010-07-17 10:03:06 -04:00
$commentww = 'ww' ;
// If it is our contact, use a friendly redirect link
2011-01-19 22:51:34 -05:00
if (( link_compare ( $item [ 'owner-link' ], $item [ 'url' ]))
2010-10-18 03:43:49 -04:00
&& ( $item [ 'network' ] === 'dfrn' )) {
2010-07-17 10:03:06 -04:00
$owner_url = $redirect_url ;
2010-09-27 22:48:45 -04:00
$osparkle = ' sparkle' ;
}
2010-07-17 10:03:06 -04:00
2010-07-17 02:14:37 -04:00
}
}
2010-07-16 20:16:50 -04:00
2010-07-25 02:20:20 -04:00
if ( $update )
$return_url = $_SESSION [ 'return_url' ];
else
$return_url = $_SESSION [ 'return_url' ] = $a -> cmd ;
2010-09-17 06:10:19 -04:00
$likebuttons = '' ;
if ( $item [ 'id' ] == $item [ 'parent' ]) {
$likebuttons = replace_macros ( $like_tpl , array ( '$id' => $item [ 'id' ]));
}
2010-07-25 02:20:20 -04:00
2010-07-17 02:14:37 -04:00
if ( $item [ 'last-child' ]) {
2010-07-16 20:16:50 -04:00
$comment = replace_macros ( $cmnt_tpl , array (
2011-02-17 00:17:49 -05:00
'$return_path' => '' ,
2011-02-17 02:05:48 -05:00
'$jsreload' => '' , // $_SESSION['return_url'],
2010-07-26 01:51:45 -04:00
'$type' => 'net-comment' ,
2010-07-17 02:14:37 -04:00
'$id' => $item [ 'item_id' ],
'$parent' => $item [ 'parent' ],
'$profile_uid' => $_SESSION [ 'uid' ],
2010-08-11 00:22:36 -04:00
'$mylink' => $a -> contact [ 'url' ],
2010-09-27 22:58:37 -04:00
'$mytitle' => t ( 'This is you' ),
2010-08-11 00:22:36 -04:00
'$myphoto' => $a -> contact [ 'thumb' ],
2010-07-17 02:14:37 -04:00
'$ww' => $commentww
2010-07-16 20:16:50 -04:00
));
}
2010-09-22 21:00:19 -04:00
$drop = replace_macros ( load_view_file ( 'view/wall_item_drop.tpl' ), array ( '$id' => $item [ 'id' ]));
2010-07-26 01:51:45 -04:00
2010-07-16 20:16:50 -04:00
2010-10-18 03:43:49 -04:00
if (( $item [ 'network' ] === 'dfrn' ) && ( ! $item [ 'self' ] )) {
2010-07-17 10:03:06 -04:00
$profile_url = $redirect_url ;
2010-09-27 22:48:45 -04:00
$sparkle = ' sparkle' ;
}
2010-07-16 20:16:50 -04:00
$photo = $item [ 'photo' ];
$thumb = $item [ 'thumb' ];
2010-07-17 02:14:37 -04:00
2010-07-17 10:03:06 -04:00
// Post was remotely authored.
2011-01-19 22:51:34 -05:00
$diff_author = (( link_compare ( $item [ 'url' ], $item [ 'author-link' ])) ? false : true );
2010-11-21 20:44:59 -05:00
$profile_name = ((( strlen ( $item [ 'author-name' ])) && $diff_author ) ? $item [ 'author-name' ] : $item [ 'name' ]);
$profile_avatar = ((( strlen ( $item [ 'author-avatar' ])) && $diff_author ) ? $item [ 'author-avatar' ] : $thumb );
2010-07-16 20:16:50 -04:00
2010-07-17 10:03:06 -04:00
$profile_link = $profile_url ;
// Can we use our special contact URL for this author?
2010-07-19 02:23:18 -04:00
if ( strlen ( $item [ 'author-link' ])) {
2011-01-19 22:51:34 -05:00
if (( link_compare ( $item [ 'author-link' ], $item [ 'url' ])) && ( $item [ 'network' ] === 'dfrn' ) && ( ! $item [ 'self' ])) {
2010-07-17 10:03:06 -04:00
$profile_link = $redirect_url ;
2010-09-27 22:48:45 -04:00
$sparkle = ' sparkle' ;
}
else {
2010-07-19 02:23:18 -04:00
$profile_link = $item [ 'author-link' ];
2010-09-27 22:48:45 -04:00
$sparkle = '' ;
}
2010-07-17 10:03:06 -04:00
}
2010-09-17 06:10:19 -04:00
2010-10-31 19:38:22 -04:00
$like = (( x ( $alike , $item [ 'id' ])) ? format_like ( $alike [ $item [ 'id' ]], $alike [ $item [ 'id' ] . '-l' ], 'like' , $item [ 'id' ]) : '' );
$dislike = (( x ( $dlike , $item [ 'id' ])) ? format_like ( $dlike [ $item [ 'id' ]], $dlike [ $item [ 'id' ] . '-l' ], 'dislike' , $item [ 'id' ]) : '' );
2010-09-17 06:10:19 -04:00
2010-10-19 23:52:05 -04:00
$location = (( $item [ 'location' ]) ? '<a target="map" href="http://maps.google.com/?q=' . urlencode ( $item [ 'location' ]) . '">' . $item [ 'location' ] . '</a>' : '' );
$coord = (( $item [ 'coord' ]) ? '<a target="map" href="http://maps.google.com/?q=' . urlencode ( $item [ 'coord' ]) . '">' . $item [ 'coord' ] . '</a>' : '' );
if ( $coord ) {
if ( $location )
$location .= '<br /><span class="smalltext">(' . $coord . ')</span>' ;
else
$location = '<span class="smalltext">' . $coord . '</span>' ;
}
2010-09-17 06:10:19 -04:00
2010-12-07 19:27:30 -05:00
$indent = (( $item [ 'parent' ] != $item [ 'item_id' ]) ? ' comment' : '' );
if ( strcmp ( datetime_convert ( 'UTC' , 'UTC' , $item [ 'created' ]), datetime_convert ( 'UTC' , 'UTC' , 'now - 12 hours' )) > 0 )
$indent .= ' shiny' ;
2010-07-17 10:03:06 -04:00
// Build the HTML
2010-07-16 20:16:50 -04:00
2010-12-25 20:46:25 -05:00
$tmp_item = replace_macros ( $template , array (
2010-07-16 20:16:50 -04:00
'$id' => $item [ 'item_id' ],
2011-01-03 16:53:26 -05:00
'$title' => t ( 'View $name\'s profile' ),
2010-07-16 20:16:50 -04:00
'$profile_url' => $profile_link ,
'$name' => $profile_name ,
'$thumb' => $profile_avatar ,
2010-09-27 22:48:45 -04:00
'$osparkle' => $osparkle ,
'$sparkle' => $sparkle ,
2010-07-27 22:27:14 -04:00
'$title' => $item [ 'title' ],
2010-12-08 20:05:51 -05:00
'$body' => smilies ( bbcode ( $item [ 'body' ])),
2010-07-16 20:16:50 -04:00
'$ago' => relative_date ( $item [ 'created' ]),
2010-09-29 01:12:27 -04:00
'$lock' => $lock ,
2010-10-19 23:52:05 -04:00
'$location' => $location ,
2010-12-07 19:27:30 -05:00
'$indent' => $indent ,
2010-07-16 20:16:50 -04:00
'$owner_url' => $owner_url ,
'$owner_photo' => $owner_photo ,
'$owner_name' => $owner_name ,
2011-02-16 05:07:11 -05:00
'$plink' => get_plink ( $item ),
2010-07-26 01:51:45 -04:00
'$drop' => $drop ,
2010-09-17 06:10:19 -04:00
'$vote' => $likebuttons ,
'$like' => $like ,
'$dislike' => $dislike ,
2010-07-16 20:16:50 -04:00
'$comment' => $comment
));
2010-12-25 20:46:25 -05:00
$arr = array ( 'item' => $item , 'output' => $tmp_item );
call_hooks ( 'display_item' , $arr );
$o .= $arr [ 'output' ];
2010-07-16 20:16:50 -04:00
}
}
2010-07-24 18:21:33 -04:00
2011-01-23 17:56:14 -05:00
if ( ! $update ) {
2010-07-24 18:21:33 -04:00
$o .= paginate ( $a );
2011-01-23 17:56:14 -05: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-07-24 18:21:33 -04:00
2010-07-16 20:16:50 -04:00
return $o ;
}