X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fconversation.php;h=fae57c5655a76352c0835204ca95961508ba6400;hb=bef8f95ef3e638cb843810ed68cd9617e6e2cc48;hp=64ad5d0b1fd13538dd0933692714f1dfb14f7dfb;hpb=60e0f79b9f9e94b19cc412eac41e5d8f8fec2383;p=friendica.git diff --git a/include/conversation.php b/include/conversation.php index 64ad5d0b1f..fae57c5655 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -4,7 +4,7 @@ * Render actions localized */ function localize_item(&$item){ - + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){ $r = q("SELECT * from `item`,`contact` WHERE @@ -79,7 +79,43 @@ function localize_item(&$item){ $item['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$Bphoto; } - + if ($item['verb']===ACTIVITY_TAG){ + $r = q("SELECT * from `item`,`contact` WHERE + `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';", + dbesc($item['parent-uri'])); + if(count($r)==0) return; + $obj=$r[0]; + + $author = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; + $objauthor = '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]'; + + 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]'; + + $parsedobj = parse_xml_string($xmlhead.$item['object']); + + $tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content); + $item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag ); + + } } @@ -136,14 +172,15 @@ function conversation(&$a, $items, $mode, $update) { $cmnt_tpl = get_markup_template('comment_item.tpl'); $tpl = get_markup_template('wall_item.tpl'); $wallwall = get_markup_template('wallwall_item.tpl'); + $hide_comments_tpl = get_markup_template('hide_comments.tpl'); $alike = array(); $dlike = array(); // array with html for each thread (parent+comments) - $treads = array(); - $treadsid = -1; + $threads = array(); + $threadsid = -1; if(count($items)) { @@ -155,7 +192,7 @@ function conversation(&$a, $items, $mode, $update) { $tpl = get_markup_template('search_item.tpl'); foreach($items as $item) { - $treadsid++; + $threadsid++; $comment = ''; $owner_url = ''; @@ -171,8 +208,11 @@ function conversation(&$a, $items, $mode, $update) { } else $nickname = $a->user['nickname']; + $profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']); + if($item['author-link'] && (! $item['author-name'])) + $profile_name = $item['author-link']; $sp = false; $profile_link = best_link_url($item,$sp); @@ -254,7 +294,8 @@ function conversation(&$a, $items, $mode, $update) { $arr = array('item' => $item, 'output' => $tmp_item); call_hooks('display_item', $arr); - $treads[$treadsid] .= $arr['output']; + $threads[$threadsid]['id'] = $item['item_id']; + $threads[$threadsid]['html'] .= $arr['output']; } @@ -336,8 +377,10 @@ function conversation(&$a, $items, $mode, $update) { $comments_seen = 0; $comments_collapsed = false; - $treadsid++; - $treads[$treadsid] = ""; + $threadsid++; + $threads[$threadsid]['id'] = $item['item_id']; + $threads[$threadsid]['html'] = ""; + } else { // prevent private email from leaking into public conversation @@ -349,17 +392,25 @@ function conversation(&$a, $items, $mode, $update) { $override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); $show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false); + if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) { if(! $comments_collapsed) { - $treads[$treadsid] .= '' - . ' in the hide_comments template + // is supplied below in code. + + $threads[$threadsid]['html'] .= replace_macros($hide_comments_tpl,array( + '$id' => $item['parent'], + '$num_comments' => sprintf( tt('%d comment','%d comments',$comments[$item['parent']]), + $comments[$item['parent']]), + '$display' => 'none', + '$hide_text' => t('show more') + )); $comments_collapsed = true; } } if(($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) { - $treads[$treadsid] .= ''; + $threads[$threadsid]['html'] .= ''; } $redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ; @@ -466,6 +517,8 @@ function conversation(&$a, $items, $mode, $update) { 'classdo' => (($item['starred']) ? "hidden" : ""), 'classundo' => (($item['starred']) ? "" : "hidden"), 'starred' => t('starred'), + 'tagger' => t("add tag"), + 'classtagger' => "", ); } @@ -480,6 +533,10 @@ function conversation(&$a, $items, $mode, $update) { $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); + if($item['author-link'] && (! $item['author-name'])) + $profile_name = $item['author-link']; + + $sp = false; $profile_link = best_link_url($item,$sp); if($sp) @@ -520,12 +577,22 @@ function conversation(&$a, $items, $mode, $update) { // localize_item($item); + + $tags=array(); + foreach(explode(',',$item['tag']) as $tag){ + $tag = trim($tag); + if ($tag!="") $tags[] = bbcode($tag); + } + + // Build the HTML $body = prepare_body($item,true); - + $tmp_item = replace_macros($template,array( + '$type' => implode("",array_slice(split("/",$item['verb']),-1)), + '$tags' => $tags, '$body' => template_escape($body), '$id' => $item['item_id'], '$linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), @@ -540,7 +607,7 @@ function conversation(&$a, $items, $mode, $update) { '$osparkle' => $osparkle, '$sparkle' => $sparkle, '$title' => template_escape($item['title']), - '$ago' => ((($item['app']) && ($item['id'] == $item['parent'])) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), + '$ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), '$lock' => $lock, '$location' => template_escape($location), '$indent' => $indent, @@ -564,20 +631,15 @@ function conversation(&$a, $items, $mode, $update) { $arr = array('item' => $item, 'output' => $tmp_item); call_hooks('display_item', $arr); - $treads[$treadsid] .= $arr['output']; + $threads[$threadsid]['html'] .= $arr['output']; } } } - // if author collapsing is in force but didn't get closed, close it off now. - - /*if($blowhard_count >= 3) - $treads[$treadsid] .= '';*/ - $page_template = get_markup_template("conversation.tpl"); $o .= replace_macros($page_template, array( - '$treads' => $treads, + '$threads' => $threads, '$dropping' => ($dropping?t('Delete Selected Items'):False), )); @@ -740,14 +802,15 @@ function status_editor($a,$x, $notes_cid = 0) { $tpl = get_markup_template('jot-header.tpl'); $a->page['htmlhead'] .= replace_macros($tpl, array( + '$newpost' => 'true', '$baseurl' => $a->get_baseurl(), '$geotag' => $geotag, '$nickname' => $x['nickname'], '$ispublic' => t('Visible to everybody'), '$linkurl' => t('Please enter a link URL:'), - '$utubeurl' => t('Please enter a YouTube link:'), - '$vidurl' => t("Please enter a video\x28.ogg\x29 link/URL:"), - '$audurl' => t("Please enter an audio\x28.ogg\x29 link/URL:"), + '$vidurl' => t("Please enter a video link/URL:"), + '$audurl' => t("Please enter an audio link/URL:"), + '$term' => t('Tag term:'), '$whereareu' => t('Where are you right now?'), '$title' => t('Enter a title for this item') )); @@ -795,9 +858,8 @@ function status_editor($a,$x, $notes_cid = 0) { '$upload' => t('Upload photo'), '$attach' => t('Attach file'), '$weblink' => t('Insert web link'), - '$youtube' => t('Insert YouTube video'), - '$video' => t('Insert Vorbis [.ogg] video'), - '$audio' => t('Insert Vorbis [.ogg] audio'), + '$video' => t('Insert video link'), + '$audio' => t('Insert audio link'), '$setloc' => t('Set your location'), '$noloc' => t('Clear browser location'), '$title' => t('Set title'),