community tags don't show up in the tagged posts because we removed the displayed list of hashtags at the bottom (which are usually redundant since hashtags are usually present in the message text). This brings them back, but only for tags which aren't currently present in the message body (e.g. community tags)

This commit is contained in:
friendica 2014-03-31 17:03:07 -07:00
parent 03c53502cb
commit 93f90040a1
2 changed files with 31 additions and 0 deletions

View File

@ -2339,6 +2339,7 @@ function tag_deliver($uid,$item_id) {
if($j_obj && $j_obj['id'] && $j_obj['title']) {
if(is_array($j_obj['link']))
$taglink = get_rel_link($j_obj['link'],'alternate');
store_item_tag($u[0]['channel_id'],$p[0]['id'],TERM_OBJ_POST,TERM_HASHTAG,$j_obj['title'],$j_obj['id']);
$x = q("update item set edited = '%s', received = '%s', changed = '%s' where mid = '%s' and uid = %d limit 1",
dbesc(datetime_convert()),

View File

@ -1190,6 +1190,33 @@ function format_categories(&$item,$writeable) {
return $s;
}
// Add any hashtags which weren't mentioned in the message body, e.g. community tags
function format_hashtags(&$item) {
$s = '';
$terms = get_terms_oftype($item['term'],TERM_HASHTAG);
if($terms) {
$categories = array();
foreach($terms as $t) {
$term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8',false) ;
if(! trim($term))
continue;
if(strpos($item['body'], $t['url']))
continue;
if($s)
$s .= '&nbsp';
$s .= '#<a href="' . zid($t['url']) . '" >' . $term . '</a>';
}
}
return $s;
}
function format_filer(&$item) {
@ -1242,6 +1269,9 @@ function prepare_body(&$item,$attach = false) {
$writeable = ((get_observer_hash() == $item['owner_xchan']) ? true : false);
$s .= format_hashtags($item);
$s .= format_categories($item,$writeable);
if(local_user() == $item['uid'])