BBCode: Support for preview parameter in attachment, rearranged code for share
This commit is contained in:
parent
724a5192da
commit
4c9a6ed2fb
1 changed files with 337 additions and 187 deletions
|
@ -50,6 +50,15 @@ function bb_attachment($Text, $plaintext = false, $tryoembed = true) {
|
||||||
if ($matches[1] != "")
|
if ($matches[1] != "")
|
||||||
$image = $matches[1];
|
$image = $matches[1];
|
||||||
|
|
||||||
|
$preview = "";
|
||||||
|
preg_match("/preview='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$preview = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/preview="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$preview = $matches[1];
|
||||||
|
|
||||||
if ($plaintext)
|
if ($plaintext)
|
||||||
$text = sprintf('<a href="%s" target="_blank">%s</a>', $url, $title);
|
$text = sprintf('<a href="%s" target="_blank">%s</a>', $url, $title);
|
||||||
else {
|
else {
|
||||||
|
@ -62,7 +71,9 @@ function bb_attachment($Text, $plaintext = false, $tryoembed = true) {
|
||||||
$oembed = $bookmark[0];
|
$oembed = $bookmark[0];
|
||||||
|
|
||||||
if (($image != "") AND !strstr(strtolower($oembed), "<img "))
|
if (($image != "") AND !strstr(strtolower($oembed), "<img "))
|
||||||
$text .= sprintf('<img src="%s" alt="%s" />', $image, $title); // To-Do: Anführungszeichen in "alt"
|
$text .= sprintf('<img src="%s" alt="%s" class="attachment-image" />', $image, $title); // To-Do: Anführungszeichen in "alt"
|
||||||
|
elseif (($preview != "") AND !strstr(strtolower($oembed), "<img "))
|
||||||
|
$text .= sprintf('<img src="%s" alt="%s" class="attachment-preview" />', $preview, $title); // To-Do: Anführungszeichen in "alt"
|
||||||
|
|
||||||
$text .= $oembed;
|
$text .= $oembed;
|
||||||
|
|
||||||
|
@ -104,21 +115,27 @@ function bb_rearrange_link($shared) {
|
||||||
return($newshare);
|
return($newshare);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bb_remove_share_information($Text, $plaintext = false) {
|
function bb_remove_share_information($Text, $plaintext = false, $nolink = false) {
|
||||||
if ($plaintext)
|
$Text = preg_replace_callback("((.*?)\[class=(.*?)\](.*?)\[\/class\])ism",
|
||||||
$Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism","[bookmark=$1]$1[/bookmark]", $Text);
|
function ($match) use ($plaintext, $nolink){
|
||||||
|
return(bb_cleanup_share($match, $plaintext, $nolink));
|
||||||
$Text = preg_replace_callback("((.*?)\[class=(.*?)\](.*?)\[\/class\])ism","bb_cleanup_share",$Text);
|
},$Text);
|
||||||
return($Text);
|
return($Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bb_cleanup_share($shared) {
|
function bb_cleanup_share($shared, $plaintext, $nolink) {
|
||||||
if (!in_array($shared[2], array("type-link", "type-video")))
|
if (!in_array($shared[2], array("type-link", "type-video")))
|
||||||
return($shared[0]);
|
return($shared[0]);
|
||||||
|
|
||||||
|
if ($plaintext)
|
||||||
|
$shared[3] = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism","[bookmark=$1]$1[/bookmark]", $shared[3]);
|
||||||
|
|
||||||
if (!preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$shared[3], $bookmark))
|
if (!preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$shared[3], $bookmark))
|
||||||
return($shared[0]);
|
return($shared[0]);
|
||||||
|
|
||||||
|
if ($nolink)
|
||||||
|
return(trim($shared[1]));
|
||||||
|
|
||||||
$title = "";
|
$title = "";
|
||||||
$link = "";
|
$link = "";
|
||||||
|
|
||||||
|
@ -364,6 +381,7 @@ function bb_replace_images($body, $images) {
|
||||||
return $newbody;
|
return $newbody;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
/*
|
||||||
function bb_ShareAttributes($match) {
|
function bb_ShareAttributes($match) {
|
||||||
|
|
||||||
$attributes = $match[1];
|
$attributes = $match[1];
|
||||||
|
@ -601,6 +619,124 @@ function bb_ShareAttributesSimple2($match) {
|
||||||
|
|
||||||
return($text);
|
return($text);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
function bb_ShareAttributes($share, $simplehtml) {
|
||||||
|
$attributes = $share[2];
|
||||||
|
|
||||||
|
$author = "";
|
||||||
|
preg_match("/author='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$author = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
|
||||||
|
|
||||||
|
preg_match('/author="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$author = $matches[1];
|
||||||
|
|
||||||
|
$profile = "";
|
||||||
|
preg_match("/profile='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profile = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/profile="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$profile = $matches[1];
|
||||||
|
|
||||||
|
$avatar = "";
|
||||||
|
preg_match("/avatar='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$avatar = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/avatar="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$avatar = $matches[1];
|
||||||
|
|
||||||
|
$link = "";
|
||||||
|
preg_match("/link='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$link = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/link="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$link = $matches[1];
|
||||||
|
|
||||||
|
$posted = "";
|
||||||
|
|
||||||
|
$itemcache = get_config("system","itemcache");
|
||||||
|
|
||||||
|
// relative dates only make sense when they aren't cached
|
||||||
|
if ($itemcache == "") {
|
||||||
|
preg_match("/posted='(.*?)'/ism", $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$posted = $matches[1];
|
||||||
|
|
||||||
|
preg_match('/posted="(.*?)"/ism', $attributes, $matches);
|
||||||
|
if ($matches[1] != "")
|
||||||
|
$posted = $matches[1];
|
||||||
|
|
||||||
|
$reldate = (($posted) ? " " . relative_date($posted) : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
$userid = GetProfileUsername($profile,$author);
|
||||||
|
|
||||||
|
$preshare = trim($share[1]);
|
||||||
|
|
||||||
|
if ($preshare != "")
|
||||||
|
$preshare .= "<br /><br />";
|
||||||
|
|
||||||
|
switch ($simplehtml) {
|
||||||
|
case 1:
|
||||||
|
$text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$userid."</a>: <br />»".$share[3]."«";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid.": <br />".$share[3];
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$headline = '<div class="shared_header">';
|
||||||
|
$headline .= '<span><b>'.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').$userid.':</b></span>';
|
||||||
|
$headline .= "</div>";
|
||||||
|
|
||||||
|
$text = trim($share[1]);
|
||||||
|
|
||||||
|
if ($text != "")
|
||||||
|
$text .= "<hr />";
|
||||||
|
|
||||||
|
$text .= $headline.'<blockquote class="shared_content">'.trim($share[3])."</blockquote><br />";
|
||||||
|
|
||||||
|
if ($link != "")
|
||||||
|
$text .= '<br /><a href="'.$link.'">[l]</a>';
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$headline = '<div class="shared_header">';
|
||||||
|
$headline .= '<span><b>'.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
|
||||||
|
$headline .= sprintf(t('<a href="%1$s" target="_blank">%2$s</a> %3$s'), $link, $userid, $posted);
|
||||||
|
$headline .= ":</b></span></div>";
|
||||||
|
|
||||||
|
$text = trim($share[1]);
|
||||||
|
|
||||||
|
if ($text != "")
|
||||||
|
$text .= "<hr />";
|
||||||
|
|
||||||
|
$text .= $headline.'<blockquote class="shared_content">'.trim($share[3])."</blockquote><br />";
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid.": <br />".$share[3];
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$text = $preshare.">> ".$userid.": <br />".$share[3];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$headline = trim($share[1]).'<div class="shared_header">';
|
||||||
|
if ($avatar != "")
|
||||||
|
$headline .= '<img src="'.$avatar.'" height="32" width="32" >';
|
||||||
|
|
||||||
|
$headline .= sprintf(t('<span><a href="%s" target="_blank">%s</a> wrote the following <a href="%s" target="_blank">post</a>'.$reldate.':</span>'), $profile, $author, $link);
|
||||||
|
$headline .= "</div>";
|
||||||
|
$text = $headline.'<blockquote class="shared_content">'.trim($share[3])."</blockquote>";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return($text);
|
||||||
|
}
|
||||||
|
|
||||||
function GetProfileUsername($profile, $username) {
|
function GetProfileUsername($profile, $username) {
|
||||||
|
|
||||||
|
@ -687,6 +823,13 @@ function bb_RemovePictureLinks($match) {
|
||||||
return($text);
|
return($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bb_expand_links($match) {
|
||||||
|
if (stristr($match[2], $match[3]) OR ($match[2] == $match[3]))
|
||||||
|
return ($match[1]."[url]".$match[2]."[/url]");
|
||||||
|
else
|
||||||
|
return ($match[1].$match[3]." [url]".$match[2]."[/url]");
|
||||||
|
}
|
||||||
|
|
||||||
function bb_CleanPictureLinksSub($match) {
|
function bb_CleanPictureLinksSub($match) {
|
||||||
$text = Cache::get($match[1]);
|
$text = Cache::get($match[1]);
|
||||||
|
|
||||||
|
@ -836,8 +979,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
$Text = preg_replace("/#\[url\=[$URLSearchString]*\]\^\[\/url\]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/i",
|
$Text = preg_replace("/#\[url\=[$URLSearchString]*\]\^\[\/url\]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/i",
|
||||||
"[bookmark=$1]$2[/bookmark]", $Text);
|
"[bookmark=$1]$2[/bookmark]", $Text);
|
||||||
|
|
||||||
if ($simplehtml == 2) {
|
if (in_array($simplehtml, array(2, 6))) {
|
||||||
$Text = preg_replace("/[^#@]\[url\=([^\]]*)\](.*?)\[\/url\]/ism",' $2 [url]$1[/url]',$Text);
|
$Text = preg_replace_callback("/([^#@])\[url\=([^\]]*)\](.*?)\[\/url\]/ism","bb_expand_links",$Text);
|
||||||
|
//$Text = preg_replace("/[^#@]\[url\=([^\]]*)\](.*?)\[\/url\]/ism",' $2 [url]$1[/url]',$Text);
|
||||||
$Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",' $2 [url]$1[/url]',$Text);
|
$Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",' $2 [url]$1[/url]',$Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1012,6 +1156,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
|
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
|
||||||
|
|
||||||
// Shared content
|
// Shared content
|
||||||
|
$Text = preg_replace_callback("/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism",
|
||||||
|
function ($match) use ($simplehtml){
|
||||||
|
return(bb_ShareAttributes($match, $simplehtml));
|
||||||
|
},$Text);
|
||||||
|
/*
|
||||||
if (!$simplehtml)
|
if (!$simplehtml)
|
||||||
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
|
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
|
||||||
elseif ($simplehtml == 1)
|
elseif ($simplehtml == 1)
|
||||||
|
@ -1022,6 +1171,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
$Text = preg_replace_callback("/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesDiaspora",$Text);
|
$Text = preg_replace_callback("/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesDiaspora",$Text);
|
||||||
elseif ($simplehtml == 4)
|
elseif ($simplehtml == 4)
|
||||||
$Text = preg_replace_callback("/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesForExport",$Text);
|
$Text = preg_replace_callback("/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesForExport",$Text);
|
||||||
|
*/
|
||||||
|
|
||||||
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
|
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
|
||||||
$Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
|
$Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
|
||||||
|
|
Loading…
Reference in a new issue