- if ($abstract != "") {
- $post["text"] = $abstract;
-
- if ($post["type"] == "text") {
- $post["type"] = "link";
- $post["url"] = $b["plink"];
- }
- }
-
- $html = self::convert($post["text"].$post["after"], false, $htmlmode);
- $msg = HTML::toPlaintext($html, 0, true);
- $msg = trim(html_entity_decode($msg, ENT_QUOTES, 'UTF-8'));
-
- $link = "";
- if ($includedlinks) {
- if ($post["type"] == "link") {
- $link = $post["url"];
- } elseif ($post["type"] == "text") {
- $link = $post["url"];
- } elseif ($post["type"] == "video") {
- $link = $post["url"];
- } elseif ($post["type"] == "photo") {
- $link = $post["image"];
- }
-
- if (($msg == "") && isset($post["title"])) {
- $msg = trim($post["title"]);
- }
-
- if (($msg == "") && isset($post["description"])) {
- $msg = trim($post["description"]);
- }
-
- // If the link is already contained in the post, then it neeedn't to be added again
- // But: if the link is beyond the limit, then it has to be added.
- if (($link != "") && strstr($msg, $link)) {
- $pos = strpos($msg, $link);
-
- // Will the text be shortened in the link?
- // Or is the link the last item in the post?
- if (($limit > 0) && ($pos < $limit) && (($pos + 23 > $limit) || ($pos + strlen($link) == strlen($msg)))) {
- $msg = trim(str_replace($link, "", $msg));
- } elseif (($limit == 0) || ($pos < $limit)) {
- // The limit has to be increased since it will be shortened - but not now
- // Only do it with Twitter (htmlmode = 8)
- if (($limit > 0) && (strlen($link) > 23) && ($htmlmode == 8)) {
- $limit = $limit - 23 + strlen($link);
- }
-
- $link = "";
-
- if ($post["type"] == "text") {
- unset($post["url"]);
- }
- }
- }
- }
-
- if ($limit > 0) {
- // Reduce multiple spaces
- // When posted to a network with limited space, we try to gain space where possible
- while (strpos($msg, " ") !== false) {
- $msg = str_replace(" ", " ", $msg);
- }
-
- // Twitter is using its own limiter, so we always assume that shortened links will have this length
- if (iconv_strlen($link, "UTF-8") > 0) {
- $limit = $limit - 23;
- }