X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=include%2Fconversation.php;h=bd9b11bee6b141aef57ec20cd5af00dca7faefbe;hb=5bb8ed4b8b5310acc8556ef2fba7b3958284b2a6;hp=1b1d09d6b57c7c2f377d50262db143813c00d7d4;hpb=c583d1620955b8d170b8cbf7a106cefeecad56c8;p=friendica.git diff --git a/include/conversation.php b/include/conversation.php old mode 100644 new mode 100755 index 1b1d09d6b5..bd9b11bee6 --- a/include/conversation.php +++ b/include/conversation.php @@ -4,6 +4,33 @@ * Render actions localized */ function localize_item(&$item){ + + $Text = $item['body']; + + + // find private image (w/data url) if present and convert image + // link to a magic-auth redirect. + + $saved_image = ''; + $img_start = strpos($Text,'[img]data:'); + $img_end = strpos($Text,'[/img]'); + + if($img_start !== false && $img_end !== false && $img_end > $img_start) { + $start_fragment = substr($Text,0,$img_start); + $img_start += strlen('[img]'); + $saved_image = substr($Text,$img_start,$img_end - $img_start); + $end_fragment = substr($Text,$img_end + strlen('[/img]')); + $Text = $start_fragment . '[!#saved_image#!]' . $end_fragment; + $search = '/\[url\=(.*?)\]\[!#saved_image#!\]\[\/url\]' . '/is'; + $replace = '[url=' . z_path() . '/redir/' . $item['contact-id'] + . '?f=1&url=' . '$1' . '][!#saved_image#!][/url]' ; + + $Text = preg_replace($search,$replace,$Text); + + if(strlen($saved_image)) + $item['body'] = str_replace('[!#saved_image#!]', '[img]' . $saved_image . '[/img]',$Text); + } + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){ @@ -116,6 +143,34 @@ function localize_item(&$item){ $item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag ); } + if ($item['verb']=== ACTIVITY_FAVORITE){ + + if ($item['object-type']== "") + return; + + $Aname = $item['author-name']; + $Alink = $item['author-link']; + + $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; + + $obj = parse_xml_string($xmlhead.$item['object']); + if(strlen($obj->id)) { + $r = q("select * from item where uri = '%s' and uid = %d limit 1", + dbesc($obj->id), + intval($item['uid']) + ); + if(count($r) && $r[0]['plink']) { + $target = $r[0]; + $Bname = $target['author-name']; + $Blink = $target['author-link']; + $A = '[url=' . $Alink . ']' . $Aname . '[/url]'; + $B = '[url=' . $Blink . ']' . $Bname . '[/url]'; + $P = '[url=' . $target['plink'] . ']' . t('post/item') . '[/url]'; + $item['body'] = sprintf( t('%1$s marked %2$s\'s %3$s as favorite'), $A, $B, $P)."\n"; + + } + } + } } @@ -129,13 +184,15 @@ function localize_item(&$item){ * that are based on unique features of the calling module. * */ -function conversation(&$a, $items, $mode, $update) { +function conversation(&$a, $items, $mode, $update, $preview = false) { require_once('bbcode.php'); $profile_owner = 0; $page_writeable = false; + $previewing = (($preview) ? ' preview ' : ''); + if($mode === 'network') { $profile_owner = local_user(); $page_writeable = true; @@ -168,6 +225,10 @@ function conversation(&$a, $items, $mode, $update) { load_contact_links(local_user()); + $cb = array('items' => $items, 'mode' => $mode, 'update' => $update, 'preview' => $preview); + call_hooks('conversation_start',$cb); + + $items = $cb['items']; $cmnt_tpl = get_markup_template('comment_item.tpl'); $tpl = get_markup_template('wall_item.tpl'); @@ -176,7 +237,7 @@ function conversation(&$a, $items, $mode, $update) { $alike = array(); $dlike = array(); - + $o = ""; // array with html for each thread (parent+comments) $threads = array(); @@ -228,15 +289,10 @@ function conversation(&$a, $items, $mode, $update) { else $profile_avatar = ((strlen($item['author-avatar'])) ? $item['author-avatar'] : $item['thumb']); - $location = (($item['location']) ? '' . $item['location'] . '' : ''); - $coord = (($item['coord']) ? '' . $item['coord'] . '' : ''); - if($coord) { - if($location) - $location .= '
(' . $coord . ')'; - else - $location = '' . $coord . ''; - } + $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); + call_hooks('render_location',$locate); + $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate)); localize_item($item); if($mode === 'network-new') @@ -261,7 +317,7 @@ function conversation(&$a, $items, $mode, $update) { $body = prepare_body($item,true); $tmp_item = replace_macros($tpl,array( - '$id' => $item['item_id'], + '$id' => (($preview) ? 'P0' : $item['item_id']), '$linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), '$profile_url' => $profile_link, '$item_photo_menu' => item_photo_menu($item), @@ -287,7 +343,8 @@ function conversation(&$a, $items, $mode, $update) { '$like' => '', '$dislike' => '', '$comment' => '', - '$conv' => array('href'=> $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context')), + '$conv' => (($preview) ? '' : array('href'=> $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))), + '$previewing' => $previewing, '$wait' => t('Please wait'), )); @@ -316,7 +373,8 @@ function conversation(&$a, $items, $mode, $update) { $comments[$item['parent']] = 1; else $comments[$item['parent']] += 1; - } + } elseif(! x($comments,$item['parent'])) + $comments[$item['parent']] = 0; // avoid notices later on } // map all the like/dislike activities for each parent item @@ -351,6 +409,7 @@ function conversation(&$a, $items, $mode, $update) { $toplevelprivate = false; // Take care of author collapsing and comment collapsing + // (author collapsing is currently disabled) // 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. @@ -358,7 +417,9 @@ function conversation(&$a, $items, $mode, $update) { $toplevelprivate = (($toplevelpost && $item['private']) ? true : false); $item_writeable = (($item['writable'] || $item['self']) ? true : false); - /*if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) { + // DISABLED + /* + if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) { $blowhard_count ++; if($blowhard_count == 3) { $o .= '