]> git.mxchange.org Git - friendica.git/commitdiff
Issue 2880: Editing post doesn't destroy mentions or hashtags anymore
authorMichael <heluecht@pirati.ca>
Sat, 19 May 2018 14:55:27 +0000 (14:55 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 19 May 2018 14:55:27 +0000 (14:55 +0000)
include/text.php
mod/item.php
src/Model/Item.php

index 4c9a8864d595d6dca9d10c9f221d5a9e4627542b..6830f91e0f8ae15b4edc683bdad09b968bf47ca2 100644 (file)
@@ -14,6 +14,7 @@ use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
 use Friendica\Core\System;
 use Friendica\Database\DBM;
+use Friendica\Model\Contact;
 use Friendica\Model\Event;
 use Friendica\Model\Item;
 use Friendica\Model\Profile;
@@ -1965,6 +1966,10 @@ function undo_post_tagging($s) {
        $cnt = preg_match_all('/([!#@])\[url=(.*?)\](.*?)\[\/url\]/ism', $s, $matches, PREG_SET_ORDER);
        if ($cnt) {
                foreach ($matches as $mtch) {
+                       if (in_array($mtch[1], ['!', '@'])) {
+                               $contact = Contact::getDetailsByURL($mtch[2]);
+                               $mtch[3] = empty($contact['addr']) ? $mtch[2] : $contact['addr'];
+                       }
                        $s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);
                }
        }
index 1bbc08527953cc76cad4b2f680670ddb14317fc8..a3ed63cd978276b832ac0bc5f9947efe65d7888b 100644 (file)
@@ -661,6 +661,11 @@ function item_post(App $a) {
                $datarray['edit'] = true;
        }
 
+       // Check for hashtags in the body and repair or add hashtag links
+       if ($preview || $orig_post) {
+               Item::setHashtags($datarray);
+       }
+
        // preview mode - prepare the body for display and send it via json
        if ($preview) {
                require_once 'include/conversation.php';
index 0a480d755bdf224997f23aca92a9d84025e4f920..309ddd858d4b2ee767538caae7fec858e6a4df6d 100644 (file)
@@ -1250,7 +1250,7 @@ class Item extends BaseObject
                }
        }
 
-       private static function setHashtags(&$item)
+       public static function setHashtags(&$item)
        {
 
                $tags = get_tags($item["body"]);