Merge pull request #8792 from MrPetovan/task/share-block-guid
[frio] Add local post link to share block when guid attribute is present
This commit is contained in:
		
				commit
				
					
						7fd2c00171
					
				
			
		
					 7 changed files with 42 additions and 23 deletions
				
			
		|  | @ -2046,7 +2046,7 @@ function api_statuses_repeat($type) | |||
| 			$pos = strpos($item['body'], "[share"); | ||||
| 			$post = substr($item['body'], $pos); | ||||
| 		} else { | ||||
| 			$post = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], $item['guid'], $item['created'], $item['plink']); | ||||
| 			$post = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], $item['plink'], $item['created'], $item['guid']); | ||||
| 
 | ||||
| 			if (!empty($item['title'])) { | ||||
| 				$post .= '[h3]' . $item['title'] . "[/h3]\n"; | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ function share_init(App $a) { | |||
| 		$pos = strpos($item['body'], "[share"); | ||||
| 		$o = substr($item['body'], $pos); | ||||
| 	} else { | ||||
| 		$o = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], $item['guid'], $item['created'], $item['plink']); | ||||
| 		$o = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], $item['plink'], $item['created'], $item['guid']); | ||||
| 
 | ||||
| 		if ($item['title']) { | ||||
| 			$o .= '[h3]'.$item['title'].'[/h3]'."\n"; | ||||
|  |  | |||
|  | @ -978,7 +978,7 @@ class BBCode | |||
| 			function ($match) use ($callback) { | ||||
| 				$attribute_string = $match[2]; | ||||
| 				$attributes = []; | ||||
| 				foreach (['author', 'profile', 'avatar', 'link', 'posted'] as $field) { | ||||
| 				foreach (['author', 'profile', 'avatar', 'link', 'posted', 'guid'] as $field) { | ||||
| 					preg_match("/$field=(['\"])(.+?)\\1/ism", $attribute_string, $matches); | ||||
| 					$attributes[$field] = html_entity_decode($matches[2] ?? '', ENT_QUOTES, 'UTF-8'); | ||||
| 				} | ||||
|  | @ -1088,6 +1088,7 @@ class BBCode | |||
| 					'$link'         => $attributes['link'], | ||||
| 					'$link_title'   => DI::l10n()->t('link to source'), | ||||
| 					'$posted'       => $attributes['posted'], | ||||
| 					'$guid'         => $attributes['guid'], | ||||
| 					'$network_name' => ContactSelector::networkToName($contact['network'], $attributes['profile']), | ||||
| 					'$network_icon' => ContactSelector::networkToIcon($contact['network'], $attributes['profile']), | ||||
| 					'$content'      => self::setMentions(trim($content), 0, $contact['network']), | ||||
|  | @ -2229,30 +2230,28 @@ class BBCode | |||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @param $author | ||||
| 	 * @param $profile | ||||
| 	 * @param $avatar | ||||
| 	 * @param $guid | ||||
| 	 * @param $posted | ||||
| 	 * @param $link | ||||
| 	 * @param string      $author  Author display name | ||||
| 	 * @param string      $profile Author profile URL | ||||
| 	 * @param string      $avatar  Author profile picture URL | ||||
| 	 * @param string      $link    Post source URL | ||||
| 	 * @param string      $posted  Post created date | ||||
| 	 * @param string|null $guid    Post guid (if any) | ||||
| 	 * @return string | ||||
| 	 * @TODO Rewrite to handle over whole record array | ||||
| 	 */ | ||||
| 	public static function getShareOpeningTag($author, $profile, $avatar, $guid, $posted, $link) | ||||
| 	public static function getShareOpeningTag(string $author, string $profile, string $avatar, string $link, string $posted, string $guid = null) | ||||
| 	{ | ||||
| 		$header = "[share author='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $author). | ||||
| 			"' profile='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $profile). | ||||
| 			"' avatar='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $avatar); | ||||
| 		$header = "[share author='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $author) . | ||||
| 			"' profile='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $profile) . | ||||
| 			"' avatar='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $avatar) . | ||||
| 			"' link='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $link) . | ||||
| 			"' posted='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $posted); | ||||
| 
 | ||||
| 		if ($guid) { | ||||
| 			$header .= "' guid='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $guid); | ||||
| 		} | ||||
| 
 | ||||
| 		if ($posted) { | ||||
| 			$header .= "' posted='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $posted); | ||||
| 		} | ||||
| 
 | ||||
| 		$header .= "' link='" . str_replace(["'", "[", "]"], ["'", "[", "]"], $link)."']"; | ||||
| 		$header  .= "']"; | ||||
| 
 | ||||
| 		return $header; | ||||
| 	} | ||||
|  |  | |||
|  | @ -864,7 +864,7 @@ class Transmitter | |||
| 
 | ||||
| 				// Disguise forum posts as reshares. Will later be converted to a real announce
 | ||||
| 				$item['body'] = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], | ||||
| 					$item['guid'], $item['created'], $item['plink']) . $item['body'] . '[/share]'; | ||||
| 					$item['plink'], $item['created'], $item['guid']) . $item['body'] . '[/share]'; | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
|  | @ -2799,9 +2799,9 @@ class Diaspora | |||
| 			$original_item["author-name"], | ||||
| 			$original_item["author-link"], | ||||
| 			$original_item["author-avatar"], | ||||
| 			$original_item["guid"], | ||||
| 			$orig_url, | ||||
| 			$original_item["created"], | ||||
| 			$orig_url | ||||
| 			$original_item["guid"] | ||||
| 		); | ||||
| 
 | ||||
| 		if (!empty($original_item['title'])) { | ||||
|  | @ -3677,7 +3677,7 @@ class Diaspora | |||
| 			if ($item['author-link'] != $item['owner-link']) { | ||||
| 				require_once 'mod/share.php'; | ||||
| 				$body = BBCode::getShareOpeningTag($item['author-name'], $item['author-link'], $item['author-avatar'], | ||||
| 					"", $item['created'], $item['plink']) . $body . '[/share]'; | ||||
| 					$item['plink'], $item['created']) . $body . '[/share]'; | ||||
| 			} | ||||
| 
 | ||||
| 			// convert to markdown
 | ||||
|  |  | |||
|  | @ -192,6 +192,8 @@ return [ | |||
| 			'allow_gid'   => '', | ||||
| 			'deny_cid'    => '', | ||||
| 			'deny_gid'    => '', | ||||
| 			'guid'        => '1', | ||||
| 			'plink'       => 'http://localhost/display/1', | ||||
| 		], | ||||
| 		[ | ||||
| 			'id'          => 2, | ||||
|  | @ -209,6 +211,8 @@ return [ | |||
| 			'wall'        => 1, | ||||
| 			'starred'     => 0, | ||||
| 			'origin'      => 1, | ||||
| 			'guid'        => '2', | ||||
| 			'plink'       => 'http://localhost/display/2', | ||||
| 		], | ||||
| 		[ | ||||
| 
 | ||||
|  | @ -227,6 +231,8 @@ return [ | |||
| 			'wall'        => 1, | ||||
| 			'starred'     => 0, | ||||
| 			'origin'      => 1, | ||||
| 			'guid'        => '3', | ||||
| 			'plink'       => 'http://localhost/display/3', | ||||
| 		], | ||||
| 		[ | ||||
| 			'id'          => 4, | ||||
|  | @ -244,6 +250,8 @@ return [ | |||
| 			'wall'        => 1, | ||||
| 			'starred'     => 0, | ||||
| 			'origin'      => 1, | ||||
| 			'guid'        => '4', | ||||
| 			'plink'       => 'http://localhost/display/4', | ||||
| 		], | ||||
| 		[ | ||||
| 
 | ||||
|  | @ -266,6 +274,8 @@ return [ | |||
| 			'allow_gid'   => '', | ||||
| 			'deny_cid'    => '', | ||||
| 			'deny_gid'    => '', | ||||
| 			'guid'        => '5', | ||||
| 			'plink'       => 'http://localhost/display/5', | ||||
| 		], | ||||
| 		[ | ||||
| 			'id'          => 6, | ||||
|  | @ -283,6 +293,8 @@ return [ | |||
| 			'wall'        => 1, | ||||
| 			'starred'     => 0, | ||||
| 			'origin'      => 1, | ||||
| 			'guid'        => '6', | ||||
| 			'plink'       => 'http://localhost/display/6', | ||||
| 		], | ||||
| 	], | ||||
| 	'notify' => [ | ||||
|  |  | |||
|  | @ -18,7 +18,15 @@ | |||
| 				</a> | ||||
| 			{{/if}} | ||||
| 		</div> | ||||
| 		<div class="shared-wall-item-ago"><small><span class="shared-time">{{$posted}}</span></small></div> | ||||
| 		<div class="shared-wall-item-ago"><small> | ||||
| 			{{if $guid}} | ||||
| 			<a href="/display/{{$guid}}"> | ||||
| 			{{/if}} | ||||
| 				<span class="shared-time">{{$posted}}</span> | ||||
| 			{{if $guid}} | ||||
| 			</a> | ||||
| 			{{/if}} | ||||
| 		</small></div> | ||||
| 	</div> | ||||
| 	<blockquote class="shared_content">{{$content nofilter}}</blockquote> | ||||
| </div> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue