return $post;
}
+ /**
+ * Remove [attachment] BBCode and replaces it with a regular [url]
+ *
+ * @param string $body
+ *
+ * @return string with replaced body
+ */
+ public static function removeAttachment($body)
+ {
+ return preg_replace_callback("/\[attachment (.*)\](.*?)\[\/attachment\]/ism",
+ function ($match) {
+ $attach_data = self::getAttachmentData($match[0]);
+ if (empty($attach_data['url'])) {
+ return $match[0];
+ } elseif (empty($attach_data['title'])) {
+ return '[url]' . $attach_data['url'] . '[/url]';
+ } else {
+ return '[url=' . $attach_data['url'] . ']' . $attach_data['title'] . '[/url]';
+ }
+ }, $body);
+ }
+
/**
* @brief Converts a BBCode text into plaintext
*
{
$attachments = [];
+ $attach_data = BBCode::getAttachmentData($item['body']);
+ if (!empty($attach_data['url'])) {
+ $attachment = ['type' => 'Page',
+ 'mediaType' => 'text/html',
+ 'url' => $attach_data['url']];
+
+ if (!empty($attach_data['title'])) {
+ $attachment['name'] = $attach_data['title'];
+ }
+
+ if (!empty($attach_data['description'])) {
+ $attachment['summary'] = $attach_data['description'];
+ }
+
+ if (!empty($attach_data['image'])) {
+ $imgdata = Images::getInfoFromURLCached($attach_data['image']);
+ if ($imgdata) {
+ $attachment['icon'] = ['type' => 'Image',
+ 'mediaType' => $imgdata['mime'],
+ 'width' => $imgdata[0],
+ 'height' => $imgdata[1],
+ 'url' => $attach_data['image']];
+ }
+ }
+
+ $attachments[] = $attachment;
+ }
+
$arr = explode('[/attach],', $item['attach']);
if (count($arr)) {
foreach ($arr as $r) {
} else {
$regexp = "/[@!]\[url\=([^\[\]]*)\].*?\[\/url\]/ism";
$body = preg_replace_callback($regexp, ['self', 'mentionCallback'], $body);
-
$data['content'] = BBCode::convert($body, false, 9);
}
$regexp = "/[@!]\[url\=([^\[\]]*)\].*?\[\/url\]/ism";
$richbody = preg_replace_callback($regexp, ['self', 'mentionCallback'], $item['body']);
+ $richbody = BBCode::removeAttachment($richbody);
$data['contentMap']['text/html'] = BBCode::convert($richbody, false);
$data['contentMap']['text/markdown'] = BBCode::toMarkdown($item["body"]);