+ return($post);
+}
+
+function shortenmsg($msg, $limit, $twitter = false) {
+ /// @TODO
+ /// For Twitter URLs aren't shortened, but they have to be calculated as if.
+
+ $lines = explode("\n", $msg);
+ $msg = "";
+ $recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
+ $ellipsis = html_entity_decode("…", ENT_QUOTES, 'UTF-8');
+ foreach ($lines AS $row=>$line) {
+ if (iconv_strlen(trim($msg."\n".$line), "UTF-8") <= $limit)
+ $msg = trim($msg."\n".$line);
+ // Is the new message empty by now or is it a reshared message?
+ elseif (($msg == "") OR (($row == 1) AND (substr($msg, 0, 4) == $recycle)))
+ $msg = iconv_substr(iconv_substr(trim($msg."\n".$line), 0, $limit, "UTF-8"), 0, -3, "UTF-8").$ellipsis;
+ else
+ break;
+ }
+ return($msg);
+}
+
+/**
+ * @brief Convert a message into plaintext for connectors to other networks
+ *
+ * @param App $a The application class
+ * @param array $b The message array that is about to be posted
+ * @param int $limit The maximum number of characters when posting to that network
+ * @param bool $includedlinks Has an attached link to be included into the message?
+ * @param int $htmlmode This triggers the behaviour of the bbcode conversion
+ * @param string $target_network Name of the network where the post should go to.
+ *
+ * @return string The converted message
+ */
+function plaintext(App $a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
+
+ // Remove the hash tags
+ $URLSearchString = "^\[\]";
+ $body = preg_replace("/([#@])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$1$3', $b["body"]);
+
+ // Add an URL element if the text contains a raw link
+ $body = preg_replace("/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url]$2[/url]', $body);
+
+ // Remove the abstract
+ $body = remove_abstract($body);
+
+ // At first look at data that is attached via "type-..." stuff
+ // This will hopefully replaced with a dedicated bbcode later
+ //$post = get_attached_data($b["body"]);
+ $post = get_attached_data($body);
+