Aloha ;)
Nicht so ohne weiteres. Ich müsste bei jedem rendern des Postings neu prüfen, ob das eine Mention ist oder nicht. Und das festzustellen ist absolut nicht billig, ich muss den longest match possible nehmen (in diesem Fall ist das der Text vom @
bis zum nächsten @
oder zur nächsten Newline) und dann successive Zeichen von hinten entfernen und prüfen, ob es einen User dazu gibt. Das würde ich nur sehr ungern immer wieder machen.
Hm, vielleicht könnte man die Mentions auch beim erstellen oder editierne des Postings speichern, als Attribut zur Nachricht. Mal Gedanken drüber machen.
Das halte ich für eine sinnvolle Methode.
Ohne Ahnung zu haben, wie du vorgehen willst, eine kleine Idee dazu: Beim Erstellen bzw. editieren wird ja so oder so die Prüfung gemacht (da die Person ja ggf benachrichtigt werden muss). Du könntest das in einem einfachen String festhalten (und den dann als Attribut speichern), indem du bei validen mentions die gesamte mention in den String aufnimmst und bei Substrings, die kein mention sind, nur das @.
Beispiel:
Text des Postings
Lorem ipsum dolor sit amet, consectetur @ adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. @Camping_RIDER @Christian Kruse Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. test@www.org
Zu speichernder String
@@Camping_RIDER@Christian Kruse@
Dann kannst du beim rendern ganz billig die @'s nacheinander durchgehen und nur dann eine mention-Klasse setzen, wenn hinter dem @ auch Zeichen in deinem String stehen; und du hast damit auch gespeichert wie lang der String ist. Noch platzsparender wärs so:
Zu speichernder String
@@13@15@
d.h. wenn du im String nur die Zeichenanzahl der validen mentions speicherst.
@edit: Oder - quasi noch fuchsiger und mit noch weniger Speicherplatz - indem du den Index des ersten Leerzeichens festhältst, das nicht mehr zum mention gehört, also
@@0@1@
Übrigens:
1.: Bei mir wird die Auswahlliste immer noch unterhalb des Editorfensters angezeigt (Google Chrome 43, Windows 7 64-bit)
2.: Wenn das mit machbarem Aufwand umzusetzen ist, sollte ein mention mMn innerhalb einer Code-Umgebung sinnvollerweise nicht möglich sein. Wenn das während der Eingabe nicht geblockt werden kann (oder der Aufwand dafür nicht vertretbar ist), sollte das spätestens bei der erstmaligen Erkennung der mentions berücksichtigt werden.
Grüße,
RIDER
--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem
eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter:
#
Facebook #
Twitter #
Steam #
YouTube #
Self-Wiki #
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[