diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-11-27 15:44:45 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-11-27 15:44:45 -0500 |
commit | d8b0423d152ca27682b001f2c4d386d9c5dd361e (patch) | |
tree | 8b4919d5296b857bcf74e81c8cc06729ddfce5e5 /app/Formatter/UserMentionFormatter.php | |
parent | 04ff67e26b880dde8bfb6462f312cf434457cd46 (diff) |
Add suggest menu for user mentions in text editor
Diffstat (limited to 'app/Formatter/UserMentionFormatter.php')
-rw-r--r-- | app/Formatter/UserMentionFormatter.php | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/app/Formatter/UserMentionFormatter.php b/app/Formatter/UserMentionFormatter.php new file mode 100644 index 00000000..395fc463 --- /dev/null +++ b/app/Formatter/UserMentionFormatter.php @@ -0,0 +1,60 @@ +<?php + +namespace Kanboard\Formatter; + +/** + * Class UserMentionFormatter + * + * @package Kanboard\Formatter + * @author Frederic Guillot + */ +class UserMentionFormatter extends BaseFormatter +{ + protected $users = array(); + + /** + * Set users + * + * @param array $users + * @return $this + */ + public function withUsers(array $users) { + $this->users = $users; + return $this; + } + + /** + * Apply formatter + * + * @access public + * @return array + */ + public function format() + { + $result = array(); + + foreach ($this->users as $user) { + $html = $this->helper->avatar->small( + $user['id'], + $user['username'], + $user['name'], + $user['email'], + $user['avatar_path'], + 'avatar-inline' + ); + + $html .= ' '.$this->helper->text->e($user['username']); + + if (! empty($user['name'])) { + $html .= ' <small>'.$this->helper->text->e($user['name']).'</small>'; + } + + $result[] = array( + 'value' => $user['username'], + 'html' => $html, + ); + } + + return $result; + } +}
\ No newline at end of file |