*/
function localize_item(&$item){
- if ($item['verb']=="http://activitystrea.ms/schema/1.0/like" ||
- $item['verb']=="http://activitystrea.ms/schema/1.0/dislike"){
+ if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){
$r = q("SELECT * from `item`,`contact` WHERE
`item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';",
$author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
$objauthor = '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]';
- $post_type = (($obj['resource-id']) ? t('photo') : t('status'));
+ switch($obj['verb']){
+ case ACTIVITY_POST:
+ switch ($obj['object-type']){
+ case ACTIVITY_OBJ_EVENT:
+ $post_type = t('event');
+ break;
+ default:
+ $post_type = t('status');
+ }
+ break;
+ default:
+ if($obj['resource-id']){
+ $post_type = t('photo');
+ $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
+ $rr['plink'] = $m[1];
+ } else {
+ $post_type = t('status');
+ }
+ }
+
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
switch($item['verb']){
- case "http://activitystrea.ms/schema/1.0/like":
+ case ACTIVITY_LIKE :
$bodyverb = t('%1$s likes %2$s\'s %3$s');
break;
- case "http://activitystrea.ms/schema/1.0/dislike":
+ case ACTIVITY_DISLIKE:
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
break;
}
$item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
}
- if ($item['verb']=='http://activitystrea.ms/schema/1.0/make-friend'){
+ if ($item['verb']=== ACTIVITY_FRIEND){
- if ($item['object-type']=="" || $item['object-type']!='http://activitystrea.ms/schema/1.0/person') return;
+ if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
$Aname = $item['author-name'];
$Alink = $item['author-link'];
$page_writeable = can_write_wall($a,$profile_owner);
}
+ if($mode === 'community') {
+ $profile_owner = 0;
+ $page_writeable = false;
+ }
+
if($update)
$return_url = $_SESSION['return_url'];
else
$noshare_tpl = get_markup_template('like_noshare.tpl');
$tpl = get_markup_template('wall_item.tpl');
$wallwall = get_markup_template('wallwall_item.tpl');
+ $droptpl = get_markup_template('wall_item_drop.tpl');
+ $fakedrop = get_markup_template('wall_fake_drop.tpl');
$alike = array();
$dlike = array();
if(count($items)) {
- if($mode === 'network-new' || $mode === 'search') {
+ if($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
// "New Item View" on network page or search page results
// - just loop through the items and format them minimally for display
$tpl = get_markup_template('search_item.tpl');
- $droptpl = get_markup_template('wall_fake_drop.tpl');
foreach($items as $item) {
$owner_name = '';
$sparkle = '';
- if($mode === 'search') {
+ if($mode === 'search' || $mode === 'community') {
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
&& ($item['id'] != $item['parent']))
continue;
}
$drop = '';
- $dropping = false;
-
- if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
- $dropping = true;
- $drop = replace_macros((($dropping)? $droptpl : $fakedrop), array('$id' => $item['id'], '$delete' => t('Delete')));
-
- //
localize_item($item);
+ if($mode === 'network-new')
+ $t = $droptpl;
+ else
+ $t = $fakedrop;
- $drop = replace_macros($droptpl,array('$id' => $item['id']));
+ $drop = replace_macros($t,array('$id' => $item['id']));
$lock = '<div class="wall-item-lock"></div>';
+ $star = '';
- $body = prepare_body($item);
+ $body = prepare_body($item,true);
$o .= replace_macros($tpl,array(
'$id' => $item['item_id'],
'$thumb' => $profile_avatar,
'$title' => $item['title'],
'$body' => $body,
- '$ago' => relative_date($item['created']),
+ '$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'$location' => $location,
'$indent' => '',
'$owner_url' => $owner_url,
'$owner_photo' => $owner_photo,
'$owner_name' => $owner_name,
+ '$star' => $star,
'$drop' => $drop,
'$conv' => '<a href="' . $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'] . '">' . t('View in context') . '</a>'
));
continue;
$toplevelpost = (($item['id'] == $item['parent']) ? true : false);
-
+ $toplevelprivate = false;
// Take care of author collapsing and comment collapsing
// If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
// If there are more than two comments, squash all but the last 2.
-
+
if($toplevelpost) {
-
+ $toplevelprivate = (($toplevelpost && $item['private']) ? true : false);
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
$comments_seen = 0;
$comments_collapsed = false;
}
- else
+ else {
+ // prevent private email from leaking into public conversation
+ if((! $toplevelpost) && (! toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
+ continue;
$comments_seen ++;
-
+ }
$override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false);
$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false);
if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) {
- if($item['type'] === 'wall') {
+ if($item['wall']) {
// On the network page, I am the owner. On the display page it will be the profile owner.
// This will have been stored in $a->page_contact by our calling page.
$template = $wallwall;
$commentww = 'ww';
}
- if(($item['type'] === 'remote') && (strlen($item['owner-link'])) && ($item['owner-link'] != $item['author-link'])) {
+ if((! $item['wall']) && (strlen($item['owner-link'])) && ($item['owner-link'] != $item['author-link'])) {
// Could be anybody.
}
$edpost = (((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) || ($mode === 'notes'))
- ? '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id']
- . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>'
+ ? '<a class="editpost icon pencil" href="' . $a->get_baseurl() . '/editpost/' . $item['id']
+ . '" title="' . t('Edit') . '"></a>'
: '');
- $drop = replace_macros(get_markup_template('wall_item_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
+
+
+ $drop = '';
+ $dropping = false;
+
+ if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
+ $dropping = true;
+
+ $drop = replace_macros((($dropping)? $droptpl : $fakedrop), array('$id' => $item['id'], '$select' => t('Select'), '$delete' => t('Delete')));
+
+ $star = (($profile_owner == local_user() && $toplevelpost) ? '<a href="#" id="starred-' . $item['id'] . '" onclick="dostar(' . $item['id'] . '); return false;" class="star-item icon ' . (($item['starred']) ? 'starred' : 'unstarred') . '" title="' . t('toggle star status') . '"></a>' : '');
+
$photo = $item['photo'];
$thumb = $item['thumb'];
$profile_link = '';
$normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']);
- if(($normalised != 'mailbox') && (x($a->contacts[$normalised])))
+ if(($normalised != 'mailbox') && (x($a->contacts,$normalised)))
$profile_avatar = $a->contacts[$normalised]['thumb'];
else
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb);
// Build the HTML
- $body = prepare_body($item);
+ $body = prepare_body($item,true);
$tmp_item = replace_macros($template,array(
'$sparkle' => $sparkle,
'$title' => $item['title'],
'$body' => $body,
- '$ago' => relative_date($item['created']),
+ '$ago' => ((($item['app']) && ($item['id'] == $item['parent'])) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'$lock' => $lock,
'$location' => $location,
'$indent' => $indent,
'$owner_name' => $owner_name,
'$plink' => get_plink($item),
'$edpost' => $edpost,
+ '$star' => $star,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => $like,
'$comment' => $comment
));
+
$arr = array('item' => $item, 'output' => $tmp_item);
call_hooks('display_item', $arr);
if($blowhard_count >= 3)
$o .= '</div>';
+ if($dropping)
+ $o .= '<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();"><div id="item-delete-selected-icon" class="icon drophide" title="' . t('Delete Selected Items') . '" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div><div id="item-delete-selected-desc" >' . t('Delete Selected Items') . '</div></div><div id="item-delete-selected-end"></div>';
+
return $o;
}
-
-if(! function_exists('load_contact_links')) {
-function load_contact_links($uid) {
-
- $a = get_app();
-
- $ret = array();
-
- if(! $uid || x($a->contacts,'empty'))
- return;
-
- $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
- intval($uid)
- );
- if(count($r)) {
- foreach($r as $rr){
- $url = normalise_link($rr['url']);
- $ret[$url] = $rr;
- }
- }
- else
- $ret['empty'] = true;
- $a->contacts = $ret;
- return;
-}}
-
-
function best_link_url($item,&$sparkle) {
$a = get_app();
'$action' => 'item',
'$share' => (($x['button']) ? $x['button'] : t('Share')),
'$upload' => t('Upload photo'),
+ '$attach' => t('Attach file'),
'$weblink' => t('Insert web link'),
'$youtube' => t('Insert YouTube video'),
'$video' => t('Insert Vorbis [.ogg] video'),
));
return $o;
-}
\ No newline at end of file
+}