diff --git a/extensions/mentions/src/Listeners/AddPostMentionsFormatter.php b/extensions/mentions/src/Listeners/AddPostMentionsFormatter.php
index 6d842b8e9..df6143601 100755
--- a/extensions/mentions/src/Listeners/AddPostMentionsFormatter.php
+++ b/extensions/mentions/src/Listeners/AddPostMentionsFormatter.php
@@ -19,11 +19,16 @@ class AddPostMentionsFormatter
$tagName = 'POSTMENTION';
$tag = $configurator->tags->add($tagName);
+
$tag->attributes->add('username');
$tag->attributes->add('number');
$tag->attributes->add('id')->filterChain->append('#uint');
+ $tag->attributes['id']->required = false;
+
$tag->template = '';
- $tag->filterChain->prepend([static::class, 'addId'])->addParameterByName('post');
+ $tag->filterChain->prepend([static::class, 'addId'])
+ ->addParameterByName('post')
+ ->setJS('function() { return true; }');
$configurator->Preg->match('/\B@(?[a-z0-9_-]+)#(?\d+)/i', $tagName);
}
@@ -40,8 +45,10 @@ class AddPostMentionsFormatter
->where('number', $tag->getAttribute('number'))
->pluck('id');
- $tag->setAttribute('id', $id);
+ if ($id) {
+ $tag->setAttribute('id', $id);
- return true;
+ return true;
+ }
}
}
diff --git a/extensions/mentions/src/Listeners/AddUserMentionsFormatter.php b/extensions/mentions/src/Listeners/AddUserMentionsFormatter.php
index f752f76cc..a72211071 100755
--- a/extensions/mentions/src/Listeners/AddUserMentionsFormatter.php
+++ b/extensions/mentions/src/Listeners/AddUserMentionsFormatter.php
@@ -30,8 +30,12 @@ class AddUserMentionsFormatter
$tag = $configurator->tags->add($tagName);
$tag->attributes->add('username');
$tag->attributes->add('id')->filterChain->append('#uint');
+ $tag->attributes['id']->required = false;
+
$tag->template = '@';
- $tag->filterChain->prepend([static::class, 'addId'])->addParameterByName('userRepository');
+ $tag->filterChain->prepend([static::class, 'addId'])
+ ->addParameterByName('userRepository')
+ ->setJS('function() { return true; }');
$configurator->Preg->match('/\B@(?[a-z0-9_-]+)(?!#)/i', $tagName);
}
@@ -49,8 +53,10 @@ class AddUserMentionsFormatter
public static function addId($tag, UserRepository $users)
{
- $tag->setAttribute('id', $users->getIdForUsername($tag->getAttribute('username')));
+ if ($id = $users->getIdForUsername($tag->getAttribute('username'))) {
+ $tag->setAttribute('id', $id);
- return true;
+ return true;
+ }
}
}