X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fitem.php;h=de6bce972ce2d08ad9dfad63caca8bcf4fff1039;hb=4832bc74f55e7d3e6f66d281f5de3a071fe1e071;hp=cc1e628c80c2b0fe3470c07fd068f8a1485e8743;hpb=da1b47a029e678aee8b99ee11eec972dfb9a1a2b;p=friendica.git diff --git a/mod/item.php b/mod/item.php index cc1e628c80..de6bce972c 100644 --- a/mod/item.php +++ b/mod/item.php @@ -77,15 +77,15 @@ function item_post(&$a) { ); } // if this isn't the real parent of the conversation, find it - // We are now threading the comments, the parent may have a parent - /*if($r !== false && count($r)) { + if($r !== false && count($r)) { $parid = $r[0]['parent']; + $parent_uri = $r[0]['uri']; if($r[0]['id'] != $r[0]['parent']) { $r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1", intval($parid) ); } - }*/ + } if(($r === false) || (! count($r))) { notice( t('Unable to locate original post.') . EOL); @@ -97,7 +97,7 @@ function item_post(&$a) { $parent = $r[0]['id']; // multi-level threading - preserve the info but re-parent to our single level threading - if(($parid) && ($parid != $parent)) + //if(($parid) && ($parid != $parent)) $thr_parent = $parent_uri; if($parent_item['contact-id'] && $uid) { @@ -306,6 +306,7 @@ function item_post(&$a) { $author = null; $self = false; + $contact_id = 0; if((local_user()) && (local_user() == $profile_uid)) { $self = true; @@ -314,9 +315,19 @@ function item_post(&$a) { ); } elseif(remote_user()) { - $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", - intval(remote_user()) - ); + if(is_array($_SESSION['remote'])) { + foreach($_SESSION['remote'] as $v) { + if($v['uid'] == $profile_uid) { + $contact_id = $v['cid']; + break; + } + } + } + if($contact_id) { + $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", + intval($contact_id) + ); + } } if(count($r)) { @@ -362,8 +373,8 @@ function item_post(&$a) { $match = null; - if((! $preview) && preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) { - $images = $match[1]; + if((! $preview) && preg_match_all("/\[img([\=0-9x]*?)\](.*?)\[\/img\]/",$body,$match)) { + $images = $match[2]; if(count($images)) { foreach($images as $image) { if(! stristr($image,$a->get_baseurl() . '/photo/')) @@ -439,6 +450,7 @@ function item_post(&$a) { $body = bb_translate_video($body); + /** * Fold multi-line [code] sequences */ @@ -447,6 +459,8 @@ function item_post(&$a) { $body = scale_external_images($body,false); + + /** * Look for any tags and linkify them */ @@ -542,6 +556,10 @@ function item_post(&$a) { $uri = item_new_uri($a->get_hostname(),$profile_uid); + // Fallback so that we alway have a thr-parent + if(!$thr_parent) + $thr_parent = $uri; + $datarray = array(); $datarray['uid'] = $profile_uid; $datarray['type'] = $post_type; @@ -601,7 +619,7 @@ function item_post(&$a) { if($preview) { require_once('include/conversation.php'); - $o = conversation($a,array(array_merge($contact_record,$datarray)),'search',false,true); + $o = conversation($a,array(array_merge($contact_record,$datarray)),'search', false, true); logger('preview: ' . $o); echo json_encode(array('preview' => $o)); killme(); @@ -741,6 +759,7 @@ function item_post(&$a) { 'verb' => ACTIVITY_POST, 'otype' => 'item', 'parent' => $parent, + 'parent_uri' => $parent_item['uri'] )); } @@ -975,7 +994,26 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { intval($tagcid), intval($profile_uid) ); - } elseif(strstr($name,'_') || strstr($name,' ')) { //no id + } + else { + $newname = str_replace('_',' ',$name); + + //select someone from this user's contacts by name + $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1", + dbesc($newname), + intval($profile_uid) + ); + + if(! $r) { + //select someone by attag or nick and the name passed in + $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1", + dbesc($name), + dbesc($name), + intval($profile_uid) + ); + } + } +/* } elseif(strstr($name,'_') || strstr($name,' ')) { //no id //get the real name $newname = str_replace('_',' ',$name); //select someone from this user's contacts by name @@ -990,7 +1028,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { dbesc($name), intval($profile_uid) ); - } + }*/ //$r is set, if someone could be selected if(count($r)) { $profile = $r[0]['url'];