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 .= '