Mention: Umsetzungsidee
bearbeitet von
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.
Ü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](http://www.tsviewer.com/index.php?page=ts_viewer&ID=1060332) (fritz.campingrider.de) oder unter:
# [Facebook](http://www.tsviewer.com/index.php?page=ts_viewer&ID=1060332) # [Twitter](https://twitter.com/Camping_RIDER) # [Steam](http://steamcommunity.com/id/Camping_RIDER) # [YouTube](https://www.youtube.com/user/RidersFlame) # [Self-Wiki](http://wiki.selfhtml.org/wiki/Benutzer:Camping_RIDER) #
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
Classic Forum 4.1
bearbeitet von
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.
Ü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](http://www.tsviewer.com/index.php?page=ts_viewer&ID=1060332) (fritz.campingrider.de) oder unter:
# [Facebook](http://www.tsviewer.com/index.php?page=ts_viewer&ID=1060332) # [Twitter](https://twitter.com/Camping_RIDER) # [Steam](http://steamcommunity.com/id/Camping_RIDER) # [YouTube](https://www.youtube.com/user/RidersFlame) # [Self-Wiki](http://wiki.selfhtml.org/wiki/Benutzer:Camping_RIDER) #
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[